Fuchsia OS sta lavorando al supporto per l'esecuzione di programmi Linux non modificati

Sviluppatori di Google rilasciato pochi giorni fa un piano per implementare un meccanismo per eseguire programmi non modificati compilati per Linux su Il sistema operativo Fucsia.

Per eseguire programmi Linux nello spazio utente, si prevede di fornire un livello "starnix" per supportare Linux ABI. Nel livello sviluppato, le interfacce del sistema del kernel Linux sono implementate in un driver che viene lanciato come processo per il sistema operativo Fuchsia, che viene eseguito nello spazio utente e traduce le richieste dai programmi Linux in chiamate ai sottosistemi Fuchsia corrispondenti.

Si osserva chee durante lo sviluppo del progetto, molti sottosistemi Fuchsia dovranno essere modificati per implementare tutte le interfacce di sistema disponibili in Linux. L'architettura di starnix è in gran parte la stessa di quella del sottosistema Windows per Linux che utilizza Windows per tradurre le chiamate di sistema Linux in chiamate di sistema Windows.

Si prevede di implementare il codice starnix in Rust per ridurre al minimo i possibili vettori di vulnerabilitàs che possono essere potenzialmente utilizzati per elevare i privilegi di un processo Linux al processo starnix.

Per garantire la sicurezza a starnix, quando possibile verranno utilizzati meccanismi di protezione fucsia standard.

Ad esempio, quando si accede a servizi di sistema come il file system, lo stack di rete o il sottosistema grafico, starnix tradurrà solo le richieste, convertendo l'ABI Linux nell'ABI del sistema Fuchsia, consentendo le stesse restrizioni applicate ai processi Fuchsia comuni.

Ciò implementerà anche meccanismi di autorizzazione specifici per Linux, ad esempio definendo in quali situazioni un processo Linux ha il diritto di terminare un altro.

Gli sviluppatori Fuchsia hanno sviluppato il supporto per il lancio di applicazioni Linux in passato, ma hanno sperimentato un'implementazione che funziona in analogia con il modo in cui è organizzato il lancio dell'applicazione Linux su Chrome OS.

Per la compatibilità con Linux, Fuchsia ha offerto la libreria Machina, che consentiva ai programmi Linux di funzionare in una speciale macchina virtuale isolata formata utilizzando un hypervisor basato sul kernel Zircon e sulle specifiche Virtio.

Non è escluso l'utilizzo della virtualizzazione, poiché la piena implementazione dell'interfaccia del sistema Linux non è un compito banale.

Oltre al mantello Starnix, è possibile creare un meccanismo per eseguire eseguibili Linux utilizzando un kernel Linux in esecuzione in una macchina virtuale separata. Questo metodo è considerato il più facile da implementare, ma anche il più dispendioso in termini di risorse.

A un certo punto, Microsoft ha iniziato a sviluppare il suo livello di compatibilità Linux dal traduttore, ma alla fine è passata all'utilizzo del kernel Linux nativo sul sottosistema Windows per Linux 2.

Inoltre, Fuchsia fornisce già un livello di compatibilità POSIX Lite che gira su Fuchsia System ABI. POSIX Lite consente di eseguire alcuni programmi Linux, ma richiede la ricompilazione del codice dell'applicazione e, in alcuni casi, la modifica del codice sorgente.

Uno dei problemi con POSIX Lite è l'implementazione incompleta di tutte le funzioni POSIX, comprese le chiamate per modificare lo stato globale dei processi (ad esempio, la funzione kill), che sono in contrasto con i concetti di sicurezza in Fuchsia, che vietano la modifica dello stato globale dei processi. Esprimere.

L'uso di POSIX Lite è giustificato nel processo di porting di applicazioni apertes, ma non risolve i problemi con l'avvio di programmi per i quali non è possibile accedere al codice (ad esempio, è impossibile ottenere la compatibilità con le applicazioni Android che contengono inserti nativi compilati).

Ricordiamoci che nell'ambito del progetto Fuchsia, Google sta sviluppando un sistema operativo universale in grado di funzionare su qualsiasi tipo di dispositivo, dalle workstation e smartphone alla tecnologia embedded e consumer. Lo sviluppo si basa sull'esperienza di creazione della piattaforma Android e tiene conto delle carenze nel campo del ridimensionamento e della sicurezza.

Il sistema si basa sul microkernel Zircon, basato sugli sviluppi del progetto LK, esteso per l'utilizzo in varie classi di dispositivi, inclusi smartphone e personal computer.

fonte: https://fuchsia.googlesource.com


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.