Details about the course

Course
Operating Systems (GNU/Linux)
Lecturer
Kapil Paranjape
Time
9:45-11:00 and 11:15-12:30 on Thursdays
Days
7th August 2003 to 27th November 2003 except 25th September, 1st October and 7th October.


Prerequisites




Books/Reading Material

  1. A. Tannenbaum: OSes Design and Implementation
  2. K. Christian: The Unix(TM) OS
  3. David A. Rusling: The Linux Kernel
  4. Tigran Aivazian: Linux Kernel 2.4 Internals
  5. Peter Jay Salzman & Ori Pomerantz: The Linux Kernel Module Programming Guide
  6. Alavoor Vasudevan: Kernel-HOWTO
  7. Bryan Henderson: Module-HOWTO
  8. Roberto Arcomano: KernelAnalysis-HOWTO
  9. Greg O'Keefe: From-PowerUp-To-Bash-Prompt-HOWTO
  10. Glibc Maintainers: GNU Libc documentation which is also available on banyan for IMSc users.


Course Outline

The first part is GNU and the second part is Linux (roughly). We may or may not get to part [*]-especially part [*] of [*]!

(I)
What operating systems are. What can we expect and what we shouldn't expect from them.
1.
The filesystem. Directories. Inodes. Links. Permissions.
2.
Sockets, pipes and the network.
3.
Program Execution. Environment and libraries. Shared libraries.

(II)
Examining the Linux kernel source code.
1.
The boot process.
2.
Hardware detection and intialisation.
3.
The virtual file system.
4.
Memory management.
5.
Scheduling and process management.
6.
Device drivers. Character devices.
7.
Device drivers. Block devices.
8.
A real file system. (ext3)
9.
Networking. (TCP/IP).
10.
Capabilities and access control.

(III)
Other approaches.
1.
Mach/OSKit. Microkernels.
2.
Hurd.
3.
Windoze.


Kapil Hari Paranjape 2003-08-27