Course objectives and plans

Although it is quite a bit of material, we plan to follow the outline below.

Week 1: Introduction to Linux

Day 1: Basic concepts of the operating system

Kernel, shells, applications; multiuser system, users and groups; processes; file system and directories; login process and user configuration files. Demonstrations and laboratory exercises with elementary Unix commands.

Day 2: System installation and configuration

Disk partitions, fdisk and disk druid tools; workstation installation from a CD; system customization and upgrade; learning rpm for package installation, remove, upgrade and query; kickstart system installation.

Week 2: Introduction to Networking

Day 1: Basic concepts

Network packets, hardware address, protocols and TCP/IP; IP addresses and network mask; address resolution protocol (ARP); subnets and routing; configuring Linux machine on the network; ifconfig and netstat commands.

Day 2: Network ports, services and tools

Protocols (TCP, UDP, ICMP, SNMP) and ports; laboratory exercises with network services and tools: telnet, ftp, http; inetd.conf; opening and closing ports; packet sniffing with ethereal.

Week 3: System Security

Day 1: Securing a Linux box

Management of user accounts; changing file ownerships and permissions; TCP-wrappers, disabling vulnerable services; installing and configuring the secure shell (SSH); intrusion detection utilities, Tripwire.

Day 2: Linux firewalls

Packet filtering with ipchains; building a Linux firewall; NAT and DMZ firewall implementations.

Week 4: Network System Services

Day 1: Network File System (NFS)

File system sharing over the network: NFS installation and configuration; portmap; rpc; auto-mount configuration.

Day 2: Network Information Service (NIS)

Password/group sharing over the network: NIS installation and configuration; configuration of net-groups.

Week 5: Integrating Linux and Windows

Day 1: Dual boot

Running Windows and Linux on the same PC (dual boot); LILO and NT boot loaders; access Windows partitions from Linux and vice versa.

Day 2: Samba server

Installing and configuring Linux Samba server for network printing and file sharing; Linux NIS server for Windows domains.

Week 6: Linux Programming

Day 1: Shell scripting

Bash shell scripting; using awk and grep; interactive, batch and scheduled jobs ( at and cron); job priorities.

Day 2: Code development

C and Fortran compilers; code development, compilation and debugging with gdbx; using make and Makefiles.

Week 7: Midterm Exam Week

Day 1: System boot-up and shutdown

System run time levels; startup services; adding and removing services from the startup.

Day 2: Midterm exam

Week 8: Linux Clustering I

Day 1: Cluster for computing

Beowulf high performance Linux clusters; cluster monitoring tools; Scheduling Systems concepts.

Day 2: Parallel programming

Programming with MPI libraries; MPI tutorial.

Week 9: Linux Clustering II

Day 1: High availability web servers

Configuration of Apache web server; concepts of high availability Linux servers.

Day 2: Linux virtual server

Server director; virtual IP address; NAT, direct routing (DR) and IP tunneling (IT) concepts of LVS; redundancy.

Week 10: Group Projects

Day 1: Project assignment and discussion

Group A) Building a Beowulf Linux cluster with Codine queue system

Group B) Building a high availability Linux Virtual Server (LVS)

Day 2: Projects (Step 1)

Group A: Building the cluster network: NAT configuration, NFS, NIS.

Group B: Setting one director with IPVS and two Apache servers with NAT.

Week 11: Group Projects

Days 1 - 2: Projects (Step 2)

Group A: Installation and configuration of Codine scheduling system

Group B: Configuration of the second server director, virtual IP address configuration.

Week 12: Group Projects

Days 1 - 2: Projects (step 3)

Group A: MPI installation on the cluster; Codine configuration for MPI.

Group B: Installation of Heart-Beat redundancy system.

Week 13: Group Projects

Days 1 - 2: Projects (step 4)

Group A: Running parallel jobs on the cluster

Group B: Testing the server for redundancy and availability.

Week 14: Final Week

Days 1 - 2: Project reports and presentation