0% found this document useful (0 votes)
110 views6 pages

Exokernel

Download as docx, pdf, or txt
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 6

Exokernel:

Exokernel is an operating system kernel developed by the MIT Parallel and Distributed
Operating Systems group, and also a class of similar operating systems. Operating System
Kernels generally present the hardware-resources to applications through high level
abstractions such as the (virtual) file-system. The idea behind exokernels is to force as few
abstractions as possible on developers, enabling them to make as many decisions as possible
about hardware abstractions. Exokernels are tiny, since functionality is limited to ensuring
protection and multiplexing of resources, which are vastly simpler than conventional
microkernels' implementation of message passing and monolithic kernels' implementation of
abstractions. Implemented applications are called library operating systems; they may request
specific memory addresses, disk blocks, etc. The kernel only ensures that the requested
resource is free, and the application is allowed to access it. This low-level hardware access
allows the programmer to implement custom abstractions, and omit unnecessary ones, most
commonly to improve a program's performance. It also allows programmers to choose what
level of

abstraction they want, high, or low.

Exokernels can be seen as an application of the end-to-end principle to operating systems, in


that they do not force an application program to layer its abstractions on top of other
abstractions that were designed with different requirements in mind. For example, in the MIT
Exokernel project, the Cheetah web server stores preformatted Internet Protocol packets on
the disk, the kernel provides safe access to the disk by preventing unauthorized reading and
writing, but how the disk is abstracted is up to the application or the libraries the application
uses

Applications
The available library operating systems for Exokernel include the custom ExOS system and an
emulator for BSD. In addition to these, the exokernel team created the Cheetah web server,
which uses the kernel directly.

Exokernel Principles
• Separate protection and management

• Expose allocation

• Expose names

• Expose revocation

• Expose information

Exokernel Advantages:
Exposing kernel data structures

• Can be accessed without system call overhead

• Flexibility

• libOSes can be modified and debugged than kernels

• Edit, compile, debug cycle is faster than “edit, compile, reboot, debug” cycle of kernel.

• Performance

The CPU Interface

• Combination of time slots

• Initiation/termination of upcalls

• Direct Yields has proven the value

• Global gang scheduling


• Robust critical section

Libraries are simple than kernels

Drawbacks:
• Interface design is not simple, multiple designs over several years

• Ease of creation/mixing libOSes lead to code messes, maintenance issues

• Information loss, Implementing OS abstractions in application level

• Self-paging is difficult, paging can be caused by external entities .

Example:
Xok
Xok is an exokernel for Intel x86-based computers.

• Can safely multiplex resources on x86 based systems.

• Allows efficient and powerful virtual memory abstractions to be built at the application level.

• Wake up predicates can be injected to the kernel.

• Provides access control through hierarchical named capabilities

Hybrid kernel:
A hybrid kernel is a kernel architecture based on combining aspects of microkernel and
monolithic kernel architectures used in computer operating systems. The traditional kernel
categories are monolithic kernels and microkernels (with nanokernels and exokernels seen as
more extreme versions of microkernels). The category is controversial due to the similarity to
monolithic kernel; the term has been dismissed by Linus Torvalds as simple marketing. The idea
behind this category is to have a kernel structure similar to a microkernel, but implemented in
terms of a monolithic kernel. In contrast to a microkernel, all (or nearly all) operating system
services are in kernel space. While there is no performance overhead for message passing and
context switching between kernel and user mode, as inmonolithic kernels, there are no
reliability benefits of having services in user space, as in microkernels.

Advantages:
Hybrid Kernel has combine advantages of monolithic Kernel and micro kernel . This allows the speed and
simplicity of a monolithic kernel and the safety and security of a microkernel.
This allows them to run certain services and drivers in kernel space, while still running most other
services and drivers in user space. This improves security for certain applications and gives a significant
performance boost for kernel space processes.

Disadvantages:
 Difficult to debug
 Difficult to maintain
 Addition of new features or removal of obsolete features is very difficult

Example:
 Windows NT
 Windows 2000
 Windows XP
 Windows 7
 Dragonfly
 BSD

Hybrid Kernel Android:


 Module based linux server kernel with higher layers of libraries and frameworks.
 Dalvik (successor: Android Runtime-ART) interprets CPU-independent bytecode
(comparable to java).

You might also like