Skip to main content

Exokernel architecture

Exokernel architecture

Most of us know what kernels are and how do they work to make programmers’ lives easier. But, how many of us know what exokernels are? I hope you will be able to get a brief introduction on this terminology through this blog.
Let’s start with a brief introduction on kernel.

What is a kernel?

A kernel is the foundational layer of an operating system that functions at a basic level, communicating with hardware and managing resources, such as CPU and the memory. It works as an interface between the user application and the hardware.

Image for post
Image for post

There are two main types of kernel
1. Micro kernel
2. Monolithic Kernel

Image for post

1. Monolithic architecture

2.    Layerd archtecture.

3.     Virtual machine architecture

4.     Exokernel architecture

5.    Client server architecture 

6.     Micro kernel architecture

Now let’s head into our main focus.

What is an Exokernel?

Exokernel is an operating system developed at the MIT that provides application-level management of hardware resources. This architecture is designed to separate resource protection from management to facilitate application-specific customization.
Let’s try to understand how this actually works.

Image for post

The ultimate idea behind the development of exokernel is to impose as few abstractions as possible on the developers of the applications by providing them with the freedom to use the abstractions as and when needed. This ensures that there is no forced abstraction, which is what makes exokernel different from micro-kernels and monolithic kernels.But, how does exokernel support this?

This is done by moving all the hardware abstractions into untrusted user-space libraries called “library operating systems” (libOS), which are linked to applications call the operating system on their behalf. So basically, the kernel allocates the basic physical resources of the machine (disk blocks, memory, and processor time) to multiple application programs, and each program decides on what to do with these resources.

For an example, an application can manage its own disk-block cache, it can also share the pages with the other applications, but the exokernel allows cached pages to be shared securely across all applications. Thus, the exokernel protects pages and disk blocks, but applications manage them.

Of course, not all applications need customized resource management. At these instances, the applications can be linked with the support libraries that implement the abstractions that the applications need. However, library implementations are unprivileged and can therefore be modified or replaced at the user’s needs as well. This helps the programmers to choose what level of abstraction they want, high, or low.

Principles of Exokernels

1. Separate protection and management : Resource management is restricted to functions necessary for protection.
2. Expose allocation : Applications allocate resources explicitly.
3. Expose name : Exokernels use physical names wherever possible.
4. Expose revocation : Exokernels let applications to choose which instance of a resource to give up.
5. Expose information : Exokernels expose all system information and collect data that applications cannot easily derive locally.

Merits of Exokernels

  1. Significant performance increase.
  2. Applications can make more efficient and intelligent use of hardware resources by being aware of resource availability, revocation and allocation.
  3. Ease development and testing of new operating system ideas. (New scheduling techniques, memory management methods, etc)

Demrits of Exokernels

1. Complexity in design of exokernel interfaces.
2. Less consistency.

Comments

Popular posts from this blog

OS its Resource Manager and its Function

  Operating system as resource manager:   ·           A computer system usually has many hardware and software resources such as processor , memory, disk printer, I/O devices etc. ·           The task of resources management becomes essential in multi-user operating system where different user compute for the same resource.   Operating system manages resources in two ways : 1.         Time multiplexing : it defines the sharing of resources on the basis of fixed time slices. For example, the operating system allocate the resources, such as CPUto program A for fixed time slice. 2.         Space timing:  it defines the concurrent sharing of resources among different programs.for example, sharing of hard disk and main memory is space multiplexing.     FUNCTION OF OPERATING SYSTEM     The primar...

Suspend a process

  Suspend a process A process is an active program. It can also be said as a program that is under execution. It is more than the program code as it includes the program counter, process stack, registers, program code etc. Compared to this, the program code is only the text section. A process passes through different states as it executes. These states may be different in different operating systems. However, the common process states are explained below with the help of a diagram − New This is the state when the process has just been created. It is the initial state in the process life cycle. Ready In the ready state, the process is waiting to be assigned the processor by the short term scheduler, so it can run. This state is immediately after the new state for the process. Ready Suspended The processes in ready suspended state are in secondary memory. They were initially in the ready state in main memory but lack of memory forced them to be suspended and gets placed in the second...

Scheduler

  Scheduler   Scheduling Objectives Here, are important objectives of Process scheduling Maximize the number of interactive users within acceptable response times. Achieve a balance between response and utilization. Avoid indefinite postponement and enforce priorities. It also should give reference to the processes holding the key resources  Process Scheduling handles the selection of a process for the processor on the basis of a scheduling algorithm and also the removal of a process from the processor. It is an important part of multiprogramming in operating system. Process scheduling involves short-term scheduling, medium-term scheduling and long-term scheduling. Details about these are given as follows − Long-Term Scheduling Long-term scheduling involves selecting the processes from the storage pool in the secondary memory and loading them into the ready queue in the main memory for execution. This is handled by the long-term scheduler or job scheduler. The long-term s...

Defination of OS(operating system) and its concepts

    What do you mean by operating system?     Definition :  An operating system is a program that act as an interface between the user of a computer and the                                      Computer hardware. Operating system is a first program that gets loaded into the memory through a process called booting. Concepts of operating system : ·                       The purpose of operating system is to provide an environment in which a user can execute program in a convenient and efficient manner. ·                       Operating system is an integrated set of program that ma...