Course objectives and plans
The objective of the course is to teach the future engineers to configure,
administer and use efficiently and securely Linux desktops, servers
and high performance computational clusters.
Every week, there will be one lecture and
two or three scheduled recitations for practical hands-on exercises and
projects. Each students should attend the lecture and one of the recitations.
Introduction to the course. Basic concepts of the operating system.
Introduction, course agenda, text books, practical recitation schedule. Commands, shells and processes; users and groups;
file system and directories.
Demonstrations and laboratory exercises with Unix commands.
Week 2: System installation, configuration and upgrade
Installation stages; network installation; disk partitioning;
post-install system customization and upgrade; dpkg and APT package installation,
remove, upgrade and query; semi-automatic system installation.
Week 3: Linux Networking
Basic concepts of networking:
Network packets, TCP/IP protocol suit, address resolution protocol (ARP); IP addresses and network mask; subnets and routing; IPV4 and network classes; ports.
Configuring Linux machine on the network; arp, ifconfig and netstat commands. Network services and tools:
telnet, rsh, ftp, rcp, ssh, rsync, inetd.conf; opening and closing
Week 4: Application compilation
Compilation stages. Static and shared libraries. GNU make utility. Environment variable settings. How to build .deb packages.
Week 5: Server virtualization with KVM
Virtualization concepts. Kernel Virtual Machine (KVM). Network configurations for Virtual Machines (VMs). Deployment of Virtual Appliances.
Week 6: Network File System (NFS)
File system sharing over the network;
Remote Procedure Call (RPC) service; NFS server and client sides;
NFS installation and configuration; static mount and automount configurations;
troubleshhoting NFS; security and performance optimization.
Week 7: Startup and Run Levels. Scheduled jobs.
Bootup and login process sequence; run levels; startup scripts; Scheduling jobs with at and cron.
Week 8: Shell scripting
Syntax of bash; looping; case statement; function; command substitution; awk, grep, sed.
Week 9: Lightweight Directory Access Protocol (LDAP)
Overview of Unix Authentication and Naming services; introduction to LDAP:
domain component (dc), organizational unit (ou), common names (cn), schemas, ldif format,
services, ports and commands; Server and client sides; OpenLDAP installation and configuration; LDAP applications.
Midterm Exam (in-class, open book)
Week 10: Linux and Windows interoperability
Windows VM on Linux. Accessing system resources and applications between Linux and Windows: rdesktop, X-server.
File system sharing over the network between Linux and Windows via SMB/CIFS.
Week 11: Linux Security
System vulnerabilities; port scanning; encryption, encrypted services
and connections; PGP/GPG. Intrusion protection: tcp-wrappers, IP-firewalls (iptables), NAT and DMZ; Intrusion detection systems: tripwire; Secure system management practices.
Week 12: High Performance Computing I
HPC paradigms. Amdahl's law. Introduction to OpenMP and MPI. OpenMPI installation.
Week 13: High Performance Computing II
VM cluster configuration for MPI computations.
Final Exam (in-class, open book)