Kerla: un nou nucli escrit a Rust i compatible amb l'ABI de Linux

Fa poc es va donar a conèixer informació sobre el projecte Kerla, el qual s'està desenvolupant com a nucli de sistema operatiu escrit en el llenguatge Rust. El codi es distribueix sota les llicències Apache 2.0 i MIT. El projecte està sent desenvolupat pel desenvolupador japonès Seiya Nuta, conegut per crear el sistema operatiu de microkernel Resea, escrit en llenguatge C.

El nou nucli té com a objectiu inicialment garantir la compatibilitat amb el kernel de Linux al nivell ABI, Això permetrà que els binaris no modificats creats per a Linux s'executin en un entorn basat en Kerla.

Sobre Keral

Kerla és un nucli de sistema operatiu monolític creat des de zero a Rust. A l'etapa actual de desenvolupament, Kerla només es pot executar en sistemes amb arquitectura x86_64 i implementa trucades bàsiques al sistema com write, stat, mmap, pipe i poll, admet senyals, pipes sense nom i interruptors de context. Trucades com fork, wait4 i execve proporcionen per controlar els processos. Hi ha suport per a tty i pseudo-terminals (pty). Entre els sistemes de fitxers initramfs (utilitzat per muntar l'FS arrel), tmpfs i devfs encara són compatibles.

També es proporciona una pila de xarxa amb suport per a sockets TCP i UDP, basada a la biblioteca smoltcp. El desenvolupador ha preparat un entorn d'arrencada que funciona al QEMU o al Firecracker VM amb el controlador.virtio-net, al qual ja es pot connectar a través de SSH. Musl s'usa com una biblioteca del sistema i BusyBox s'usa com a utilitat d'usuari. Basat en Docker, s'ha preparat un sistema de compilació que us permet crear la vostra pròpia arrencada initramfs amb el kernel de Kerla.

Fins ara, s'ha proporcionat pocs detalls sobre el nou nucli, però el que crida més l'atenció sobre les característiques de Kerla és el fet que està escrit a Rust. Aleshores, escriure'l a Rust té algun avantatge sobre altres llenguatges o sobre el codi existent? Molts van respondre afirmativament a aquesta pregunta, emfatitzant els beneficis de seguretat de la memòria que brinda el llenguatge.

També es proporciona en avaluar la precisió dels accessos a la memòria en temps dexecució. A més, Mozilla creu que Rust ofereix protecció contra desbordaments de sencers, requereix la inicialització obligatòria dels valors de les variables abans del seu ús, adopta el concepte de referències i variables immutables per defecte, ofereix un tipus estàtic fort per minimitzar els errors lògics i simplifica el processament d'entrada a través de la coincidència de patrons.

Entre els avantatges, destaquem les eines integrades per avaluar la qualitat del codi i creació de proves unitàries que es puguin executar no només en maquinari real, sinó també a QEMU. Bàsicament, Mozilla considera que Rust és més fàcil de depurar, ja que el compilador rebutjarà els errors. Tot i això, les cales van assenyalar alguns inconvenients amb Rust.

“Igual que amb C++, és gairebé impossible escriure Rust idiomàtic sense fer servir plantilles, per la qual cosa té binaris inflats i temps de compilació lents. Totes aquestes comprovacions en temps de compilació també tenen un cost. A més, si reescriu alguna cosa, perd l'antic codi base madur, i no hi ha manera que pugui produir un codi base de qualitat similar en un període de temps raonable; és molt millor estendre, en lloc de reescriure, el programa a Rust. És millor estendre el programa en lloc de reescriure'l a Rust”, diu un enginyer de programari.

Segons el seu creador, és per això que els desenvolupadors de Linux, en particular el mateix Linus Torvalds, van rebutjar la idea de reescriure tot el nucli a Rust.

“Treballeu una mica per crear enllaços segurs, després escriviu el codi addicional a Rust i encara podrà gaudir d'aquest codi madur. (Això és el que fa Linux, hi ha esforços per afegir la capacitat d'escriure un mòdul de nucli a Rust)”, va afegir. Els desenvolupadors de Linux han estat explorant les possibilitats d'escriure certs mòduls de nucli nous utilitzant el llenguatge Rust durant aproximadament tres anys. Això va donar origen al projecte Rust per a Linux.

Finalment si estàs interessat en conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.