the implementation of system calls and interrupt handlers
the physical and logical layout of the file system
inodes
the algorithm that the kernel uses for translating pathnames into inode numbers
the process hierarchy
process states
[Page 574]
how the scheduler decides to allocate the CPU
memory management
the I/O subsystem and buffering
interprocess communication via pipes and sockets
Quiz
1.
Why do system calls make use of kernel mode?
2.
Where is the name of a file stored?
3.
What information does the superblock contain?
4.
How does Linux avoid using bad blocks?
5.
Why is inode #2 special?
6.
What is the meaning of the term magic number?
7.
What is the meaning of the term context switch?
8.
If a signal is sent to a process that is suspended, where is it stored?
9.
What does the swapper do?
10.
What is the purpose of the task list?
11.
How does Linux copy a parent's data to its child?
12.
What is the meaning of the term "copy-on-write"?
13.
What is the purpose of the open file list?
Exercises
1.
Using ps, find the process on the system with the lowest process ID (PID). What is the process and why does it have this PID? [level: easy]
2.
Delayed writing normally causes a modified buffer to be flushed when its RAM is needed, not when its file is closed. An alternative method is to flush modified buffers when disk traffic is low, thereby making the best use of the idle time. Critique this strategy. [level: medium]
Projects
1.
Investigate some other operating systems such as Mac OS X and Windows XP. How do they compare to Linux? [level: medium]
2.
If you know object-oriented techniques, design a basic object-oriented kernel where system services are provided by a collection of system objects. How does the design of your kernel differ from the Linux kernel? [level: hard]