| Home | About |
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.

Week 1: 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 ports.

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)