Skip to content

Exo

Context

The L4 micro kernel still hold on many features as previllege and does not trust the operating system running at user level. Exokernel takes a step forward and give the user level operating system even more previllege access such as page table management.

Trend: You want to push system code to the user level, so user level application and extend and specialize system functionality. This is to target business systems such as data centers, not system running on average personal devices. These type of architecture target systems that care a lot more about performance than functionality.


Goal

  • Push everything to user level including hardware management. (We're exposing hardware to the user level processes)

Implementation

Info

Syscalls are more expensive than procedure calls.

Operating system will be implemented as a user-level library that is linked to the user applications. Therefore, you can completely optimize operating system for your specific need. As a result, syscalls in this architecture will be translated to procedure calls.

Functionalities that are still offered by Exokernel

  • Resource Trancking:
    A table to keep track of which physical pages are allocated to which process, Exokernel controls these physical pages.

Page fault still has a some overheads from crossing the previllege domain

Although Exokernel architecture transform syscalls into procedure calls, a page fault still result in quite some overhead due to cross the previllege domain. When a page fault occurs and triggers the TLB miss, MMU will send a message to Exokernel, but Exokernel does not maintain the page table, and therefore, it has to ask the operating system library to provide a virtual to phyiscal page mapping. The Exokernel then install this to the TLB, and then resume the thread. This introduces a lot of overheads. To alleviate this, Exokernel caches these page table entries in a software TLB. Similarly to other features that are not provided by Exokernel such as network.

  • Protection:
    When a operating system library tries to make changes to the physical pages, Exokernel only has to verify that this physical page was allocated to this process, and reject the changes if the process should not have access to the this physical page.

  • Relocation:


Takeway

  • Originally, Exokernel is made to be thin. However, we discover that in a lot of conditions, this will introduce boundry crossing that causes extra overheads. Therefore, extensions are added to Exokernel, and this thickens the micro kernel.
  • Exokernel testing onyl reported micro benchmarks that they specifically optimized. There is no application performance in the report.
  • Also, there is no hard disk protection in this paper.
  • A later paper addresses both of these problems mentioned above in a very complicated approach.
Back to top