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
does not need much except having access to a GNU-ish system to use.
- Part
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
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