ingAbstractThere have been many approaches to the operating systems design. In particular, monolithic kernel and micro kernels are the two approaches, which play a vital role in the operating systems design. This essay is about the impact of micro kernels on modern operating system, i.e.
though micro kernels have some performance degradations but still they have highly influenced the design of modern operating systems.1.IntroductionThe history of operating system has evolved through several kinds of structures. Monolithic and micro kernels are the two main structures on which operating system has been designed. Systems based on monolithic architecture started out as simple, small structures and gradually added functionality without adding much structure, e.g. DOS, UNIX.
On the other hand, in micro kernel architecture, services have been moduled and a small-simple kernel has been developed where kernel is shrinked to run a large number of servers as user-level processes, e.g. Mach, Chorus, L4. Apart from these two architectures, a new model called exokernel has been designed in which the kernel is only a secure hardware multiplexer.
This essay includes discussion on above-mentioned architectures with respect to their impact on modern operating systems design. 2.Different type of Operating System kernels design2.
1 Monolithic KernelsMost of the early operating systems were based on monolithic kernels 2, e.g. UNIX OS. In this type of design, the major functionalities of OS, viz. networking, memory management, paging, etc are implemented in the kernel and are executed from the kernel mode only 1. Usually monolithic kernels are not modular, so it is hard to implement a new functionality or modify the existing ones.
This design has several limitations:Since every function in the kernel has all the privileges, a bug in one part can corrupt data structure of another part.Kernels often become very huge and hard to maintain.As common libraries cannot be used so coding in kernel space is hard so as debugging and rebooting is often needed.
2.2 Micro Kernels3.21First generation Micro Kernels These micro kernels were the first kernels designed to achieve the goal of running applications faster than the monolithic kernels. The two most notable of these are L3, Chorus 3 and Mach 4. Expected benefits from this type of micro kernels wereTo achieve a small and simple kernel.Highly modular structure.To run device drivers as servers.
But after all such expectations these types of micro kernels were inefficient as the cost of Remote Procedure Call, RPC turned out to be much higher than the simple system call to the kernel 5. Secondly, while running the same application on micro kernel and monolithic based OSs the cost of memory references turned out to be much higher in micro kernel based OS. Lastly, these types of micro kernels were inefficient because some of the implementation strategies and interfaces were inherited from monolithic kernels 6. 3.
22Second generation Micro KernelsTo improve the performance of micro kernels, new second-generation micro kernels have been designed. Some of these second-generation micro kernels are:L4L4 7 is the direct offspring of L3, a first-generation micro kernel. L4 are designed from the scratch 8.
They are based on the thesis that micro kernels are processor dependent, i.e., like code optimizers. L4 supplies three abstractions, threads, address spaces and Inter Process Communication, IPC and have only seven system calls. In L4, threads are user-level and kernel supports the address-space management and communication. The functionality of address-space management allows the implementation of memory management and paging outside the kernel. Various optimizing techniques are used to achieve a fast IPC implementation, which resulted in high performance gains, such as:A two-fold performance improvement can be obtained by transferring short IPC messages in registers.
Copying large data messages becomes faster.Lazy scheduling 9 scheme is applied to improve the performance of small message IPC. This scheme delays the movement of threads within queues until the queues are queried and improves the overall performance.ExokernelsA new kernel architecture called Exokernel 10 was proposed at MIT. The main goal of the development of exokernels is to securely export and multiplex the hardware resources and primitives. To accomplish this, exokernel employs three techniques 11:Secure BindingsOne of the tasks of an exokernel is to multiplex resources securely.
Exokernel uses the mechanism of Secure Binding for separating the protection of the resources from their management. Exokernel implements this method by using three different techniques: software caching, hardware mechanisms and downloadable application code. Visible Resource RevocationInvisible revocation is used in traditional operating system, which has a lower latency than the visible revocation. Exokernels uses visible revocation, which allows library OSs to guide deallocation and know about resource scarcity. Abort ProtocolsAs the library OSs are not trusted, the exokernel has the power to break any relevant secure bindings by force and then regain the requested resource.
All these above-mentioned approaches improve the performance of exokernels and make them work faster than the fully matured monolithic structure.3.ConclusionOne can say that micro kernel was not a good idea for the design of OS because of its performance degradation but no one can deny the latest improvement being made in the design of new generation of micro kernels. The first generation micro kernels like L3, Mach were modular with small kernel size but they didnt perform well in contrast to the monolithic one. Then new generation of micro kernel like L4 were designed to overcome such performance problem. This micro kernel implemented faster IPC and also managed the address space, which in turn reduced the kernel size, increased the performance by many folds.
Recently, a new model called Exokernel has been introduced, in which the kernel is only a secure hardware multiplexer and is a much simpler model than the traditional microkernels. Nowadays creating a new operating system using the old monolithic architecture model is almost seems to be an unacceptable approach. The effortless code writing and the benefits of flexibility, extensibility provided by the second-generation microkernels are embedded in all serious operating system currently being designed.
The next big thing in operating system kernel design is not yet determined but microkernel model has highly influenced the design of modern operating systems.4.References1 John C. Anderson, Dec 15, 2002 department of computer science, University of the Pacific, Modern Operating System Design, pp-7.2 Jochen Liedtke, Toward Real Micro Kernels. Communications of the ACM pp 70-75, September 1996.
3 M. Guillemont. The chorus distributed operation system: Design and implementation. In Proceedings of the ACM International Symposium on Local Computer Networks (Firenze, Italy, Apr. 1982) ACM press, 1982, pp.
207-223.4 D. golub, R. Dean, A. Forin, and R. Rashid. Unix as an application program.
In proceedings of the Usenix Summer Conference (Anaheim, Calif., june 1990). Usenix Association, 1990, pp. 87-96.5 Jochen Liedtke.
Improving IPC by kernel design. In 14th ACM Symposium on Operati ng System Principles, Asheville, NC, pp. 175-185.
6 Jochen Liedtke. On micro kernel construction. In proceedings of the 15th ACM Symposium on Operating System Principles.
ACM Press, New York, 1995, pp. 237-246.7 Jochen Liedtke, Toward Real Microkernels. Communications of the ACM. pp 72-77, September 1996.8 Hermann Hartig, Michael Hohmuth, Jochen Liedtke, Sebastin Schonberg, Jean Wolter.
The Performance of Micro-kernel-Based Systems. 16th ACM Symposium Operating Systems Principles (SOSP 97), October 1997, saint-Malo, France. pp 1-4.9 Andreas Haeberlen and Kevin Elphinstone.
User-Level Management of Kernel Memory. Pp 280-290.10D.R. Engler, M.
F. Kaashoek and J. OToole.
Exokernel, an operating system architecture for application-level resource management. In Proceedings of the 15th ACM Symposium on Operating System Principles (SOSP) ACM Press, 1995, pp. 251-266.
11Dawson R. Engler. The Exokernel Operating System Architecture. Submitted to the department of Electrical Engineering and Computer Science, MIT, October 1998, pp.