Kerla: egy új, Rust nyelven írt kernel, amely kompatibilis a Linux ABI-val

Nemrég megjelentek információk a Kerla projektről, amelyet Rust nyelven írt operációs rendszer kernelként fejlesztenek. A kódot Apache 2.0 és MIT licencek alatt terjesztik. A projektet a japán Seiya Nuta fejlesztő fejleszti, aki a Resea mikrokernel operációs rendszer létrehozásáról ismert, C nyelven írva.

Az új kernel kezdetben célja a Linux kernellel való kompatibilitás biztosítása ABI szinten, amely lehetővé teszi, hogy a Linuxra épített módosítatlan binárisok Kerla-alapú környezetben is futhassanak.

Keralról

A Kerla egy monolitikus operációs rendszer kernel a semmiből készült Rustban. A fejlődés jelenlegi szakaszában Kerla csak x86_64 architektúrájú rendszereken futtatható és olyan alapvető rendszerhívásokat valósít meg, mint a write, stat, mmap, pipe és poll, támogatja a jeleket, a névtelen csöveket és a kontextuskapcsolókat. Az olyan hívások, mint a fork, a wait4 és az execve, biztosítják a folyamatok vezérlését. Támogatja a tty-t és a pszeudo-terminálokat (pty). Az initramfs fájlrendszerek közül (amelyek a gyökér FS csatlakoztatására szolgálnak) a tmpfs és a devfs továbbra is támogatott.

A TCP és UDP socketeket támogató hálózati verem is rendelkezésre áll, A smoltcp könyvtár alapján. A fejlesztő elkészített egy QEMU-ban vagy Firecracker VM-ben működő indítókörnyezetet a driver virtio-nettel, amelyhez már SSH-n keresztül lehet csatlakozni. A Musl rendszerkönyvtárként, a BusyBox pedig felhasználói segédprogramként használatos. A Docker alapján elkészült egy összeállítási rendszer, amely lehetővé teszi saját initramfs rendszerindítás létrehozását a Kerla kernellel.

Eddig kevés részletet közöltek az új kernellel, de ami leginkább a Kerla szolgáltatásaira hívja fel a figyelmet, az a tény, hogy Rust nyelven íródott. Tehát van-e előnye a Rust nyelven történő írásnak más nyelvekkel vagy a meglévő kóddal szemben? Sokan igennel válaszoltak erre a kérdésre, hangsúlyozva a nyelv által nyújtott memóriabiztonsági előnyöket.

Ez akkor is rendelkezésre áll, amikor a memóriaelérések pontosságát futási időben értékelik. Mi több, a Mozilla úgy véli, hogy a Rust védelmet nyújt az egész számok túlcsordulása ellen, megköveteli a változóértékek kötelező inicializálását a használat előtt, alapértelmezés szerint átveszi a hivatkozások és a megváltoztathatatlan változók koncepcióját, erős statikus gépelést kínál a logikai hibák minimalizálása érdekében, és leegyszerűsíti a bemeneti feldolgozást a minták egyeztetésével.

Az előnyök közül kiemeljük a kód minőségének értékelésére szolgáló integrált eszközöket valamint olyan egységtesztek létrehozása, amelyek nem csak valódi hardveren, hanem QEMU-n is futtathatók. Alapvetően a Mozilla könnyebbnek találja a Rust hibakeresését, mivel a fordító elutasítja a hibákat. Az öblök azonban rámutattak a Rust néhány hátrányára.

„A C ++-hoz hasonlóan szinte lehetetlen az idiomatikus Rust-ot sablonok nélkül írni, ezért felduzzadt binárisokkal és lassú fordítási idővel rendelkezik. Mindezek a fordítási időbeli ellenőrzések szintén költségekkel járnak. Illetve, ha valamit átírunk, akkor elveszítjük a régi kiforrott kódbázist, és semmiképpen sem tud hasonló minőségű kódbázist előállítani ésszerű időn belül; sokkal jobb kibővíteni, nem pedig újraírni a programot Rust nyelven. Inkább kibővíteni a programot, mint Rust nyelven átírni” – mondja egy szoftvermérnök.

Alkotója szerint ez az oka annak, hogy a Linux fejlesztők különösen magát Linus Torvaldst, elutasították a teljes rendszermag átírásának gondolatát Rustban.

„Dolgozz egy kicsit a biztonságos hivatkozások létrehozásán, majd írd be a kiegészítő kódot Rustba, és továbbra is élvezheted ezt a kiforrott kódot. (Ez az, amit a Linux csinál, vannak erőfeszítések arra, hogy a Rustban kernelmodult írhassanak) ”- tette hozzá. A Linux-fejlesztők körülbelül három éve kutatják annak lehetőségét, hogy bizonyos új kernelmodulokat Rust nyelven írhassanak. Ebből született a »Rust for Linux« projekt.

Végül, ha érdekel, hogy többet tudjon meg róla, olvassa el a részleteket A következő linken.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.