Unix kernels
In this section, we are going to talk about the architectures that Unix kernels have been developed with throughout the last 30 years. Before talking about the different types of kernels, and there are not very many, we should know that there is no standardization about the way a kernel should be designed.
The best practices that we have obtained are based on our experiences over the years, and they have led us to a high-level picture of the internal units in a Unix kernel, which results in illustrations such as Figure 10-5 in the previous chapter. Therefore, each kernel is somewhat different in comparison to another. The main thing that all of them have in common is that they should expose their functionalities through a system call interface. However, every kernel has its own way of handling system calls.
This variety and the debates around it have made it one of the hottest computer architecture-related topics of the 1990s, with large groups of people taking part...