Google fejlesztők néhány napja megjelent terv a Linux számára összeállított, módosítatlan programok futtatására szolgáló mechanizmus megvalósítására Az operációs rendszer Fukszia.
Linux programok futtatásához a felhasználói térben, "starnix" réteg biztosítását tervezi a Linux ABI támogatására. A kifejlesztett rétegben a Linux kernel rendszer interfészei egy olyan illesztőprogramban valósulnak meg, amelyet a Fuchsia operációs rendszer folyamataként indítanak el, amely a felhasználói térben fut, és a Linux programokból érkező kéréseket hívássá alakítja a megfelelő Fuchsia alrendszerekre.
Megfigyelhető, hogyA projektfejlesztés során sok fukszia alrendszert módosítani kell a Linuxban elérhető összes rendszerinterfész megvalósításához. A starnix architektúrája nagyrészt megegyezik a Windows alrendszerével a Linux számára, amely a Windows segítségével fordítja le a Linux rendszer hívásait Windows rendszer hívásokra.
A tervek szerint a starnix kódot a Rust-ban kell megvalósítani, hogy minimalizálják a lehetséges sebezhetőségi vektorokatamelyek potenciálisan felhasználhatók a Linux-folyamat jogosultságainak a starnix-folyamatra történő emelésére.
A Starnix biztonságának biztosítása érdekében, amikor csak lehetséges, szabványos fukszia védelmi mechanizmusokat kell használni.
Például, amikor olyan rendszerszolgáltatásokhoz fér hozzá, mint a fájlrendszer, a hálózati verem vagy a grafikus alrendszer, a starnix csak a kérelmeket fordítja le, átalakítva a Linux ABI-t a Fuchsia rendszer ABI-jévé, ugyanazokat a korlátozásokat engedélyezve, mint a közös fukszia-folyamatokra.
Ez egyúttal Linux-specifikus engedélyezési mechanizmusokat is megvalósít, például meghatározza, hogy az egyik Linux-folyamatnak milyen jogai vannak a másik megszüntetésére.
A Fuchsia fejlesztői a múltban fejlesztettek támogatást a Linux alkalmazások elindításához, de kísérleteztek egy olyan megvalósítással, amely analóg módon működik a Linux alkalmazás indításának a Chrome OS-en való megszervezésével.
A Linux kompatibilitás érdekében a Fuchsia felajánlotta a Machina könyvtárat, amely lehetővé tette a Linux programok futtatását egy speciális, virtuális gépben, amelyet a Zircon kernel és a Virtio specifikációi alapján hipervizor segítségével alakítottak ki.
A virtualizáció használata nem kizárt, mivel a Linux rendszer interfész teljes megvalósítása nem triviális feladat.
A starnix köpeny mellett létrehozhatunk egy mechanizmust a Linux futtatható fájlok futtatásához egy külön virtuális gépben futó Linux kernel segítségével. Ezt a módszert tartják a legkönnyebben megvalósíthatónak, ugyanakkor a legtöbb erőforrást is felemésztik.
Egy ponton a Microsoft a fordítótól kezdte fejleszteni Linux kompatibilitási rétegét, de végül átállt a natív Linux kernel használatára a Windows 2 Linux alrendszerén.
Ezen túlmenően, A Fuchsia már rendelkezik egy POSIX Lite kompatibilitási réteggel amely a Fuchsia System ABI tetején fut. A POSIX Lite lehetővé teszi néhány Linux program futtatását, de megköveteli az alkalmazás kódjának újrafordítását és bizonyos esetekben a forráskód módosítását.
Az egyik probléma a POSIX Lite programmal az összes POSIX funkció hiányos megvalósítása, beleértve a folyamatok globális állapotának megváltoztatására irányuló felhívásokat (például a kill funkciót), amelyek ellentmondanak a fuksziai biztonsági koncepcióknak, amelyek tiltják a folyamatok globális állapotának megváltoztatását. Expressz.
A POSIX Lite használata indokolt a nyitott alkalmazások portolásának folyamatábans, de nem oldja meg a programok indításával kapcsolatos problémákat, amelyekhez nincs hozzáférés a kódhoz (például lehetetlen kompatibilitást elérni a lefordított natív betéteket tartalmazó Android-alkalmazásokkal).
Ne feledjük, hogy a Fuchsia projekt keretében a Google olyan univerzális operációs rendszert fejleszt, amely bármilyen típusú eszközön képes működni, a munkaállomásoktól és az okostelefonoktól kezdve a beágyazott és a fogyasztói technológiáig. A fejlesztés az Android platform létrehozásának tapasztalataira épül, és figyelembe veszi a méretezés és a biztonság terén mutatkozó hiányosságokat.
A rendszer az LK projekt fejlesztésein alapuló Zircon mikrokernelen alapul, amelyet az eszközök különböző osztályaiban, beleértve az okostelefonokat és a személyi számítógépeket is használnak.
forrás: https://fuchsia.googlesource.com