El projecte Kerla desenvolupa un nucli compatible amb Linux a Rust

El projecte Kerla està desenvolupant un nucli de sistema operatiu escrit en el llenguatge Rust. El nou nucli es centra inicialment a proporcionar compatibilitat amb el nucli Linux a nivell ABI, cosa que permetrà que els fitxers executables no modificats compilats per a Linux s'executin en un entorn basat en Kerla. 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 micronucli Resea, escrit en llenguatge C.

En la seva fase actual de desenvolupament, Kerla només es pot executar en sistemes x86_64 i implementa trucades bàsiques del sistema com ara write, stat, mmap, pipe and poll, admet senyals, canonades sense nom i canvis de context. Es proporcionen trucades com fork, wait4 i execve per controlar els processos. Hi ha suport per a tty i pseudo-terminals (pty). Els sistemes de fitxers compatibles actualment són initramfs (utilitzat per muntar el sistema de fitxers arrel), tmpfs i devfs. Es proporciona una pila de xarxa amb suport per a sòcols TCP i UDP, implementada a partir de la biblioteca smoltcp.

El desenvolupador ha preparat un entorn d'arrencada que s'executa en QEMU o a la màquina virtual Firecracker amb el controlador virtio-net, al qual ja us podeu connectar mitjançant SSH. musl s'utilitza com a biblioteca del sistema i BusyBox s'utilitza com a utilitats d'usuari.

El projecte Kerla desenvolupa un nucli compatible amb Linux a Rust

S'ha preparat un sistema de compilació basat en Docker que us permet crear els vostres propis initramfs d'arrencada amb el nucli Kerla. Per separat, s'estan desenvolupant l'intèrpret de programari nsh similar al peix i la pila GUI de Kazari basada en el protocol Wayland.

El projecte Kerla desenvolupa un nucli compatible amb Linux a Rust

L'ús del llenguatge Rust en un projecte permet reduir el nombre d'errors en el codi mitjançant l'ús de tècniques de programació segures i augmentant l'eficiència d'identificar problemes quan es treballa amb memòria. Rust reforça la seguretat de la memòria en temps de compilació mitjançant la comprovació de referències, la propietat d'objectes i el seguiment de la vida útil de l'objecte (àmbits) i avaluant la correcció dels accessos a la memòria en temps d'execució. Rust també proporciona protecció contra desbordaments d'enters, requereix que els valors variables s'inicialitzin abans d'utilitzar-los, imposa el concepte de referències i variables immutables per defecte, ofereix una escriptura estàtica forta per minimitzar els errors lògics i simplifica el maneig dels valors d'entrada amb patró. coincidint..

Per al desenvolupament de components de baix nivell, com ara el nucli del sistema operatiu, Rust ofereix suport per a punters en brut, empaquetament d'estructura, insercions en línia d'assemblador i incrustació de fitxers d'assemblador. Per treballar sense estar lligat a la biblioteca estàndard, hi ha paquets de caixes separats per realitzar operacions amb cadenes, vectors i indicadors de bits. Un altre avantatge són les eines integrades per avaluar la qualitat del codi (linter, analitzador de rovell) i crear proves unitàries que es poden executar no només en maquinari real, sinó també en QEMU.

Font: opennet.ru

Afegeix comentari