Ich hab's gestern bei ZDNet von Mary Jo Fowley gelesen: Microsoft hat jetzt das Projekt Drawbridge aus den Microsoft Research-Labors öffentlich vorgestellt. Es handelt sich um eine Technik, um Anwendungen zu virtualisieren und in einer Sandbox ablaufen zu lassen.
Anzeige
Ist eine spannende Geschichte. Hier hatte ich gefragt, wohin Microsoft sich mit seiner Virtualisierungstechnologie hinbewegen will und einige offene Fragen angerissen. Darunter war auch die Frage, ob man noch eine Virtualisierung eines ganzen Betriebssystems braucht, um eine Alt-Anwendung in einer Sandbox unter Windows auszuführen. Mit dem Forschungsprojekt XAX (ich habe dies hier im Kontext zur x86-App-Virtualisierung auf ARM-Plattformen – Stichwort "Windows 7 Mode" – angerissen) verfügt Microsoft ja bereits seit Jahren über interessante Ansätze.
Drawbridge ist noch ein Prototyp aus den Microsoft Forschungslabors, in dem neue Formen der Virtualisierung von Anwendungen mit Ausführung in einer Sandbox untersucht werden sollen. Drawbridge kombiniert dabei die bereits in meinem früheren Beitrag erwähnten Pico-Prozesse mit einer Betriebssystembibliothek (library OS).
Quelle: Microsoft
Die Pico-Prozesse sind in meinen Augen dabei eine ganz spannende Geschichte. Es handelt sich um prozess-basierende Container, die ein Sandboxing vornehmen und einen minimalen Kernel mit den API-Schnittstellen bereitstellen. Alle API-Aufrufe werden umgesetzt und dann an das Host-Betriebssystem weitergereicht.
Anzeige
Mit diesem Ansatz wird erreicht, dass die Anwendung in einem isolierten Adressraum (Sandbox) läuft. Gleichzeitig stellt der Pic-Prozess der Anwendung einen Satz an API-Aufrufen zur Verfügung, mit denen der Anwendung ein Betriebssystem vorgespiegelt wird.
Der Pfiff bei diesem Ansatz: Es muss also nicht mehr ein ganzes Betriebssystem, wie z. B. beim Windows XP Mode, virtualisiert werden. Das macht die Picoprozesse schlank und eröffnet gänzlich neue Möglichkeiten. Dies sollte sich auch im Hinblick auf die Effizienz auswirken, da alle OS-Funktion nativ ausgeführt werden.
Die zweite, in Drawbridge eingesetzte Technik ist "library OS". Dies ist quasi eine verschlankte Betriebssystemversion, die effizient in einem Pico-Prozess ausgeführt werden kann.
Quelle: Microsoft
In der Projektpräsentation sprechen die Entwickler davon, dass man in Drawbridge verschiedene library OS-Lösungen ausführen könne. Konkret wird aber eine abgespeckte Version von Windows verwendet, die dann im Adressraum der Anwendung mit ausgeführt werden kann.
Das Drawbridge Windows library OS enthält einen user-mode NT Kernel (hier NTNUM genannt), der im Pico-Prozess läuft. NTNUM stellt nun die gleichen NT API-Aufrufe wie ein konventioneller Kernel bereit.
Allerdings ist NTNUM viel kleiner als die in gängigen VMs oder auf der Hardware laufenden NT-Kernel. Hierzu wurde Drawbridge ABI (Application Binary Interface) eingeführt, welches eine "higher-level" Abstractions-Ebene bereitstellt, als dies beim Standard-Kernel der Fall ist. Weiterhin enthält Drawbridge noch eine Version des Win32-Subsystems, welches als "user-mode library" im Pico-Prozess ausgeführt wird.
Die Details zur Vorstellung können bei Microsoft auf dieser Seite abgerufen werden. Für mich ist jetzt die spannende Frage, ob Teile dieser Technik bereits in Windows 8 Einzug halten – oder ob das alles Zukunftsmusik für das übernächste Windows ist. Zumindest die von mir angerissenen Fragen zum "Windows 7 Mode" für Windows 8 auf ARM-Prozessoren legen nahe, dass Microsoft hier bald Antworten geben sollte. Wenn ich es nicht ganz verpeilt habe, bekommt man als "Normalsterblicher" momentan noch keinen Zugriff auf diese Technologie. Bleibt spannend, das weiter zu verfolgen.
Anzeige
Nachtrag: Eine ähnliche Technik gibt es von Google unter dem Namen Native Client (NaCl). Der Meldung [1] bei Google+ zufolge, soll der NaCl wohl am 8. Dezember 2012 veröffentlicht werden. Wird spannend.
1: https://plus.google.com/111176493330591153076/posts/NGYpgFWFdbA