This paper describes an exokernel implementation, Xok. An exokernel protects resources, but delegates management of resources to applications. A library of kernel routines is provided which any user program can customize if different functionality is required. It has hierarchical capabilities for access protection.
|Published (Last):||27 June 2005|
|PDF File Size:||15.48 Mb|
|ePub File Size:||5.76 Mb|
|Price:||Free* [*Free Regsitration Required]|
This paper describes an exokernel implementation, Xok. An exokernel protects resources, but delegates management of resources to applications.
A library of kernel routines is provided which any user program can customize if different functionality is required. It has hierarchical capabilities for access protection. An application can provide wake-up predicates, or download code into the kernel to wakeup processes on arbitrary conditions.
It also provides critical sections to applications that need them. A file-system interface specific to exokernels is needed so that many different filesystem implementations can safely share the disk. The XN interface is described in some depth. The main functionality of the interface is to determine the access rights of a principle to a given disk block.
The implementation provides facilities so that a filesystem implementation can register templates for disk structures needed on the disk.
Each fs also provides 3 functions, owns-udf, acl-uf, and size-uf. The rest of the interface is a read-only buffer cache, ordered writes and crash recovery. This filesystem implements unix semantics for access control, directories, and atomicity. A library that supports unix abstractions was implemented, ExOS. The performance was comparable except that in some cases the exokernel was faster.
The paper ended with some application examples that used the exokernel extensibility to increase performance in http page serving, and file copying. This paper presented a lot of new concepts to me. This is my first exposure to the exokernel concept. I wonder how this concept would work in the commercial world. I would think that allowing most developers to modify base kernel functionality would result in very poor performance, reliability, and security.
That is probably just pessimistic thinking however. It seems that this is a very powerful idea and I would like to try it out myself. The first was with the owns-udf function in the XN system. The paper said that XN can verify that the libraries proposed modification can be verified to see that it does exactly what it says it does. The other was in the example of downloading packet filters in the kernel.
The filter is supposed to tell the kernel whether the application gets a given packet. As with all benchmarks, though, it is hard to draw any conclusions for general computing.
Application Performance and Flexibility on Exokernel Systems
Enabling a uniform execution environment Monolithic kernels In a monolithic kernel, all OS services run along with the main kernel thread, thus also residing in the same memory area. This approach provides rich and powerful hardware access. Microkernels Microkernel is the term describing an approach to Operating System design by which the functionality of the system is moved out of the traditional "kernel", into a set of "servers" that communicate through a "minimal" kernel, leaving as little as possible in "system space" and as much as possible in "user space". They differ from the other types of kernels in that their functionality is limited to the protection and multiplexing of the raw hardware, providing no hardware abstractions on top of which to develop applications. This separation of hardware protection from hardware management enables application developers to determine how to make the most efficient use of the available hardware for each specific program. The main disadvantages of monolithic kernels are the dependencies between system components — a bug in a device driver might crash the entire system — and the fact that large kernels can become very difficult to maintain.
操作系统学习笔记——Mach, Monolithic kernel, Microkernels, Exokernel
APPLICATION PERFORMANCE- AND FLEXIBILITY ON EXOKERNEL SYSTEMS
Munos More on Processes Chapter 3. Software abstractions bind hardware resources together, like, disk blocks and the memory pages caching them Some Xok abstractions let applications download code into the kernel to achieve a f iner grain of protection: Registration Forgot your password? Write a constructive review, including one unique discussion question, and submit that review to Piazza by 9pm or so of the day before the class in which we discuss the paper. The results show flexibilkty common unmodified UNIX applications can enjoy the benefits of exokernels: In addition to the body of readings around operating systems, the course will place a strong emphasis on your ability to critically read a paper, summarize your impressions of that paper in writing, and discuss what you have written with a group of your peers.