Skip to content

Instantly share code, notes, and snippets.

@edecoux
Last active October 3, 2022 04:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save edecoux/d49e215ce6a31f0dd2a7057f25b9e833 to your computer and use it in GitHub Desktop.
Save edecoux/d49e215ce6a31f0dd2a7057f25b9e833 to your computer and use it in GitHub Desktop.
Exokernel (Aegis + ExOS).md
aliases tags gists
id url createdAt updatedAt filename isPublic
d49e215ce6a31f0dd2a7057f25b9e833
2022-10-02T03:32:35Z
2022-10-02T03:58:51Z
Exokernel (Aegis + ExOS).md
false

Exokernel (Aegis + ExOS)

Motivation — Interface between applications and hardware resources to allow applications with specific needs to use resources effectively by user-level applications.

Objective: Separate Protection of Resources From Management

  • Exokernel ensures protection of resources
  • “library operating systems” manage them

End-to-end Design

  • E2E like networking
  • Exokernel is simple; Ensure safe multiplexing of resources
  • Most complex functionality is found in the library OS

Exokernel Design

  • Secure bindings
    • fine-grained access to all hardware;
    • manage authorizations to use resource, not control;
    • use a Software TLB to cache secure bindings
  • Visible revocation
    • library OS is notified (and takes part) in resource revocation; slower, done even for CPU time; uses exported physical names to speed up process and avoid ambiguity
  • Abort protocol
    • revoke resource, use a “repossession vector” to notify library OS of lost resources (small number of resources is protected from revocation)

Downloadable Code

  • VCODE:
    • create executable code at runtime,
    • run inside the Exokernel without requiring a context switch
  • Fast Networking:
    • Dynamic Packet Filter (DPF) – packets can begin to be processed in the same buffer where they are received
  • Application Specific Handlers:
    • untrusted code checked at time of download; high-speed messaging possible in Exokernel, allowing

Pros and Cons

  • Advantages
  • Different library OS’s can coexist easily
  • IPC primitives coexist in the same library OS; very fast communication between processes since no trip to the kernel code is necessary
  • Benchmarks comparing Aegis/ExOS to UNIX usually favor the former by considerable margins
  • Weaknesses of This Solution
  • Both the Exokernel and the Library OS are architecture dependent! Portability of applications is no longer straightforward
  • Even within the same architecture, changes to the hardware require rewrite of Exokernel and Library OS to take advantage of new features or just to guarantee basic compatibility
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment