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.
|Published (Last):||23 January 2015|
|PDF File Size:||15.63 Mb|
|ePub File Size:||5.89 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 PDF
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.
Application Performance and Flexibility on Exokernel Systems
APPLICATION PERFORMANCE- AND FLEXIBILITY ON EXOKERNEL SYSTEMS
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ] A traditional operating system has several big disadvantages. It attempts to provide a complete features needed by all applications which is almost impossible and is inefficient. Its high-level abstractions hide information from applications and limit the functionality of applications. The Exokernel system described in this paper addresses the issue of providing application-level management of physical resources for more flexibility and better OS performance. In this architecture, a minimal kernel called Exokernel securely multiplexes available hardware resources, and enables virtual memory and interprocess communication to be implemented entirely at application level. One of the design goals of Exokernel is to separate protection from management. The system exports hardware resources rather than emulating them, which allows an efficient and simple implementation.