SC(8): MirageOS und Linux als Unikernel
Episode von SystemCall von Fachgebiet System- und Rechnerarchitektur, Leibniz Universität Hannover · 28. Oktober 2022 · 1 h 01 min
In dieser achten Sendung des SystemCalls beschäftigen wir uns mit dem Thema Unikernels. Unter Unikernels versteht man auf die Zielanwendung optimierte, oftmals im Cloud-Bereich eingesetzte Images für virtuelle Maschinen. Durch die zielgenaue Anpassung an die Anwendung soll nur Code enthalten sein, der wirklich gebraucht wird, was die Kosten dieser VMs im Gegensatz zu einem Standard-Linux deutlich senkt, Bootzeiten erheblich verkürzt und Angriffsfläche reduziert. Dadurch sollen physische Server besser mit virtuellen Maschinen ausgenutzt werden, weil nicht jede virtuelle Maschine, die effektiv ohnehin nur eine einzige Aufgabe in der Cloud hat, ein volles Linux und den vollen Userspace mitbringen muss.
Stefan stellt den "Großvater" der Unikernel vor - MirageOS (ASPLOS'13), was die Idee in einem clean-slate Ansatz erarbeitet hat. Mirage wurde in OCaml geschrieben, einer typsicheren funktionalen/objektorientierten Programmiersprache. Basierend auf der Idee der Bibliotheksbetriebesysteme (Library OS) ist das gesamte System, in ein Image für den Xen-Hypervisor zusammengelinkt. Betriebssystemfunktionalität kann so von der Anwendung wie eine normale Bibliothek verwendet werden. So kann die OCaml Toolchain das gesamte System, also Betriebssystemfunktionalität und die Anwendung durchoptimieren (Whole-System-Optimization), d.h. nur Code im VM Image einschließen, der wirklich von der Anwendung gebraucht wird. Configurationsoptionen werden hier auch als Code gesehen, der dem Compiler zur Optimierung zur Verfügung steht. Wir besprechen neben einigen Grunddaten von MirageOS, vor allem die durchgeführte Evaluation.
Im zweiten Thema beschreibt Florian den nächsten Schritt in Richtung Linux' Dominanz (HotOS'19). Die Autoren beschreiben in dem Paper die Entwicklung eines prototypischen Linux-Targets, bei dem die Anwendung zusammen mit dem Kernel gebunden wird und die Unterscheidung zwichen Kernel- und Userspace eingerissen wird. Dazu wurden die Systemrufe durch Funktionsaufrufe überarbeitet und das main-Symbol für den Startpunkt der Anwendung eingefügt. In einer ersten Evaluation konnte die Latenz eines Echo-Servers halbiert werden.
Links
unikernel.org
Unikernels: Library Operation Systems for the Cloud
Anil Madhavapeddy, Richard Mortier, Charalampos Rotsos, David Scott, Balraj Singh, Thomas Gazagnaire, Steven Smith, Steven Hand and Jon Crowcroft (2012). Unikernels: Library Operating Systems for the Cloud ACM SIGARCH Computer Architecture News 41.1. DOI: 10.1145/2490301.2451167
ACM
unikernel.org
Unikernels: The Next Stage of Linux's Dominance
Ali Raza, Parul Sohal, James Cadden, Jonathan Appavoo, Ulrich Drepper, Richard Jones, Orran Krieger, Renato Mancuso, and Larry Woodman (2019). Unikernels: The Next Stage of Linux's Dominance. In Proceedings of the Workshop on Hot Topics in Operating Systems (HotOS '19). DOI: 10.1145/3317550.3321445
ACM
Authors Copy
Intro-/Outrotheme
the_emergent
Weitere Episoden von „SystemCall“
- SC(13): Sichten auf Adressräume 24. Januar 2026
- SC(12): Was wir nie über Locking wissen wollten 2. Dezember 2023
- SC(11): CHERI-Capabilities als Speicherschutz 7. Oktober 2023
- SC(10): GPGPU Treiber für Intel iGPUs 30. Juni 2023
- SC(9): Riesenseiten und Page-Fault Latenz 28. Januar 2023
- Advent(2): Adventskalender der Systemrufe 2. Dezember 2022
- SC(7): Partitionierung und Paravirtualisierung 15. Juli 2022
- SC(6): Exokerniges Dateihandling und Threadpooling 7. Mai 2022
- SC(5): Schneller Gegenseitiger Ausschluss im Userspace 9. April 2022
- SC(4): SGX - Trusted und Untrusted Computing 16. März 2022
- SC(3): #ifdef-Totengräber und Bibliotheksschwärzen 17. Dezember 2021
- SC(2): Himmelsbrücken durch Tunnel und Replikate bei Vielkernern 24. Oktober 2021
- SC(1): Weggabelungen, Kontrollpunkte und Adressräume 8. Juli 2021