Fuchsia OS arbeitet an der Unterstützung für die Ausführung unveränderter Linux-Programme

Google-Entwickler vor ein paar Tagen veröffentlicht ein Plan zur Implementierung eines Mechanismus zum Ausführen unveränderter Programme, die für Linux kompiliert wurden Das Betriebssystem Fuchsie.

So führen Sie Linux-Programme im Benutzerbereich aus: Es ist geplant, eine "Starnix" -Schicht zur Unterstützung von Linux ABI bereitzustellen. In der entwickelten Schicht werden die Linux-Kernel-Systemschnittstellen in einem Treiber implementiert, der als Prozess für das Fuchsia-Betriebssystem gestartet wird, das im Benutzerbereich ausgeführt wird und Anforderungen von Linux-Programmen in Aufrufe an die entsprechenden Fuchsia-Subsysteme übersetzt.

Es wird beobachtet, dassWährend der Projektentwicklung müssen viele Fuchsia-Subsysteme modifiziert werden um alle unter Linux verfügbaren Systemschnittstellen zu implementieren. Die Architektur von starnix entspricht weitgehend der des Windows-Subsystems für Linux, das Windows verwendet, um Linux-Systemaufrufe in Windows-Systemaufrufe zu übersetzen.

Es ist geplant, den Starnix-Code in Rust zu implementieren, um die möglichen Schwachstellenvektoren zu minimierens, die möglicherweise verwendet werden können, um die Berechtigungen eines Linux-Prozesses auf den Starnix-Prozess zu erhöhen.

Um die Sicherheit bei starnix zu gewährleisten, werden nach Möglichkeit Standard-Fuchsia-Schutzmechanismen verwendet.

Wenn Sie beispielsweise auf Systemdienste wie das Dateisystem, den Netzwerkstapel oder das Grafiksubsystem zugreifen, übersetzt starnix nur Anforderungen und konvertiert das Linux-ABI in das Fuchsia-System-ABI, wobei dieselben Einschränkungen gelten, die für die üblichen Fuchsia-Prozesse gelten.

Dadurch werden auch Linux-spezifische Autorisierungsmechanismen implementiert, beispielsweise um zu definieren, in welchen Situationen ein Linux-Prozess das Recht hat, einen anderen zu beenden.

Fuchsia-Entwickler haben in der Vergangenheit Unterstützung für das Starten von Linux-Anwendungen entwickelt, experimentierten jedoch mit einer Implementierung, die analog zur Organisation des Starts von Linux-Anwendungen unter Chrome OS funktioniert.

Aus Gründen der Linux-Kompatibilität bot Fuchsia die Machina-Bibliothek anDamit konnten Linux-Programme in einer speziellen isolierten virtuellen Maschine ausgeführt werden, die mit einem Hypervisor erstellt wurde, der auf den Spezifikationen des Zircon-Kernels und von Virtio basiert.

Die Verwendung von Virtualisierung ist nicht ausgeschlossen. da die vollständige Implementierung der Linux-Systemschnittstelle keine triviale Aufgabe ist.

Neben dem Starnix-Kap, Es ist möglich, einen Mechanismus zum Ausführen von ausführbaren Linux-Dateien mithilfe eines Linux-Kernels zu erstellen, der in einer separaten virtuellen Maschine ausgeführt wird. Diese Methode gilt als am einfachsten zu implementieren, aber auch als ressourcenintensivste.

Zu einem bestimmten Zeitpunkt begann Microsoft mit der Entwicklung seiner Linux-Kompatibilitätsschicht über den Übersetzer, wechselte jedoch schließlich zur Verwendung des nativen Linux-Kernels auf dem Windows-Subsystem für Linux 2.

Zusätzlich Fuchsia bietet bereits eine POSIX Lite-Kompatibilitätsschicht welches auf Fuchsia System ABI läuft. Mit POSIX Lite können Sie einige Linux-Programme ausführen, müssen jedoch den Anwendungscode neu kompilieren und in einigen Fällen den Quellcode ändern.

Eines der Probleme mit POSIX Lite ist die unvollständige Implementierung aller POSIX-Funktionen, Dazu gehören Aufrufe zur Änderung des globalen Status von Prozessen (z. B. die Kill-Funktion), die im Widerspruch zu Sicherheitskonzepten in Fuchsia stehen, die eine Änderung des globalen Status von Prozessen verbieten. Ausdrücken.

Die Verwendung von POSIX Lite ist beim Portieren offener Anwendungen gerechtfertigts, aber es löst keine Probleme beim Starten von Programmen, für die kein Zugriff auf den Code besteht (z. B. ist es nicht möglich, Kompatibilität mit Android-Anwendungen zu erreichen, die kompilierte native Einfügungen enthalten).

Denken Sie daran, dass Google im Rahmen des Fuchsia-Projekts ein universelles Betriebssystem entwickelt, das auf allen Arten von Geräten ausgeführt werden kann, von Workstations und Smartphones bis hin zu Embedded- und Consumer-Technologie. Die Entwicklung basiert auf den Erfahrungen bei der Erstellung der Android-Plattform und berücksichtigt die Mängel im Bereich Skalierung und Sicherheit.

Das System basiert auf dem Zircon-Mikrokernel, der auf den Entwicklungen des LK-Projekts basiert und für die Verwendung in verschiedenen Geräteklassen, einschließlich Smartphones und PCs, erweitert wurde.

Quelle: https://fuchsia.googlesource.com


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.