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.
- Part I does not need much except having access to a GNU-ish system to use.
- Part II needs some familiarity with programming. (C is preferred).
Books/Reading Material
- A. Tannenbaum: OSes Design and Implementation
- K. Christian: The Unix(TM) OS
- David A. Rusling: The Linux Kernel
- Tigran Aivazian: Linux Kernel 2.4
Internals
- Peter Jay Salzman & Ori Pomerantz:
The Linux Kernel Module Programming
Guide
- Alavoor Vasudevan: Kernel-HOWTO
- Bryan Henderson: Module-HOWTO
- Roberto Arcomano: KernelAnalysis-HOWTO
- Greg O'Keefe: From-PowerUp-To-Bash-Prompt-HOWTO
- Glibc Maintainers:
GNU Libc documentation
which is also available on banyan
for IMSc users.
The first part is GNU and the second part is
Linux (roughly). We may or may not get to part III-especially
part 3 of III!
- (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