Fuchsia OS werkt aan ondersteuning voor het draaien van ongewijzigde Linux-programma's

Google-ontwikkelaars een paar dagen geleden uitgebracht een plan om een ​​mechanisme te implementeren om ongewijzigde programma's die voor Linux zijn gecompileerd, te draaien op Het besturingssysteem Fuchsia.

Om Linux-programma's in gebruikersruimte uit te voeren, het is de bedoeling om een ​​"starnix" -laag aan te bieden om Linux ABI te ondersteunen​ In de ontwikkelde laag zijn de Linux-kernelsysteeminterfaces geïmplementeerd in een stuurprogramma dat wordt gestart als een proces voor het Fuchsia-besturingssysteem, dat in de gebruikersruimte draait en verzoeken van Linux-programma's vertaalt naar oproepen naar de overeenkomstige Fuchsia-subsystemen.

Opgemerkt wordt datTijdens de projectontwikkeling zullen veel Fuchsia-subsystemen moeten worden aangepast om alle systeeminterfaces te implementeren die beschikbaar zijn in Linux. De architectuur van starnix is ​​grotendeels dezelfde als die van het Windows-subsysteem voor Linux, dat Windows gebruikt om Linux-systeemoproepen te vertalen naar Windows-systeemoproepen.

Het is de bedoeling om de starnix-code in Rust te implementeren om de mogelijke kwetsbaarheidsvectoren te minimaliserens die mogelijk kunnen worden gebruikt om de privileges van een Linux-proces naar het starnix-proces te verheffen.

Om de veiligheid bij starnix te garanderen, zullen waar mogelijk standaard Fuchsia-beschermingsmechanismen worden gebruikt.

Bij het benaderen van systeemservices zoals het bestandssysteem, de netwerkstack of het grafische subsysteem, vertaalt starnix bijvoorbeeld alleen verzoeken, waarbij de Linux ABI wordt geconverteerd naar het Fuchsia-systeem ABI, waarbij dezelfde beperkingen worden toegepast als op de gebruikelijke Fuchsia-processen.

Hiermee worden ook Linux-specifieke autorisatiemechanismen geïmplementeerd, bijvoorbeeld door te definiëren in welke situaties het ene Linux-proces het recht heeft om een ​​ander te beëindigen.

Fuchsia-ontwikkelaars hebben in het verleden ondersteuning ontwikkeld voor het starten van Linux-applicaties, maar ze experimenteerden met een implementatie die analoog werkt met de manier waarop het starten van Linux-applicaties is georganiseerd in Chrome OS.

Voor Linux-compatibiliteit bood Fuchsia de Machina-bibliotheek aan, waardoor Linux-programma's konden worden uitgevoerd op een speciale geïsoleerde virtuele machine die was gevormd met behulp van een hypervisor op basis van de Zircon-kernel en Virtio-specificaties.

Het gebruik van virtualisatie is niet uitgesloten, aangezien de volledige implementatie van de Linux-systeeminterface geen triviale taak is.

Naast de cape van Starnix, het is mogelijk om een ​​mechanisme te creëren om uitvoerbare Linux-bestanden uit te voeren met behulp van een Linux-kernel die op een afzonderlijke virtuele machine draait​ Deze methode wordt beschouwd als de gemakkelijkst te implementeren, maar ook als de meest hulpbronverslindende methode.

Op een gegeven moment begon Microsoft met het ontwikkelen van zijn Linux-compatibiliteitslaag van de vertaler, maar schakelde uiteindelijk over op het gebruik van de native Linux-kernel op het Windows-subsysteem voor Linux 2.

Bovendien heeft Fuchsia biedt al een POSIX Lite-compatibiliteitslaag die bovenop Fuchsia System ABI draait. POSIX Lite stelt je in staat om een ​​aantal Linux-programma's uit te voeren, maar vereist het opnieuw compileren van de applicatiecode en, in sommige gevallen, het aanpassen van de broncode.

Een van de problemen met POSIX Lite is de onvolledige implementatie van alle POSIX-functies, inclusief oproepen om de globale status van processen te veranderen (bijvoorbeeld de kill-functie), die op gespannen voet staan ​​met beveiligingsconcepten in Fuchsia, die het wijzigen van de globale status van processen verbieden. Uitdrukken.

Het gebruik van POSIX Lite is gerechtvaardigd bij het overzetten van open applicatiess, maar het lost geen problemen op met het starten van programma's waarvoor er geen toegang is tot de code (het is bijvoorbeeld onmogelijk om compatibiliteit te bereiken met Android-applicaties die gecompileerde native inserts bevatten).

Laten we niet vergeten dat Google in het kader van het Fuchsia-project een universeel besturingssysteem ontwikkelt dat op elk type apparaat kan werken, van werkstations en smartphones tot embedded en consumententechnologie. De ontwikkeling is gebaseerd op de ervaring met het creëren van het Android-platform en houdt rekening met de tekortkomingen op het gebied van schaalvergroting en beveiliging.

Het systeem is gebaseerd op de Zircon-microkernel, gebaseerd op de ontwikkelingen van het LK-project, uitgebreid voor gebruik in verschillende soorten apparaten, waaronder smartphones en personal computers.

bron: https://fuchsia.googlesource.com


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.