Kerla proiektua Linux-ekin bateragarria den nukleo bat garatzen ari da Rust hizkuntzan

Kerla proiektua Rust hizkuntzan idatzitako sistema eragilearen nukleoa garatzen ari da. Nukleo berria ABI mailan Linux nukleoarekin bateragarritasuna eskaintzera bideratzen da hasieran, eta horrek Linuxerako konpilatutako aldatu gabeko fitxategi exekutagarriak Kerlan oinarritutako ingurune batean exekutatzeko aukera emango du. Kodea Apache 2.0 eta MIT lizentzien arabera banatzen da. Proiektua Seiya Nuta garatzaile japoniarra garatzen ari da, Resea mikrokernel sistema eragilea sortzeagatik ezaguna, C hizkuntzan idatzia.

Gaur egungo garapen-fasean, Kerlak x86_64 sistemetan soilik exekutatu daiteke eta oinarrizko sistema-deiak inplementatzen ditu, hala nola idazketa, stat, mmap, pipe eta poll, seinaleak, izenik gabeko kanalizazioak eta testuinguru-aldaketak onartzen ditu. Fork, wait4 eta execve bezalako deiak ematen dira prozesuak kontrolatzeko. Tty eta pseudo-terminaletarako (pty) laguntza dago. Gaur egun onartzen diren fitxategi-sistemak initramfs (erro fitxategi-sistema muntatzeko erabiltzen da), tmpfs eta devfs dira. TCP eta UDP socketetarako euskarria duen sare pila bat eskaintzen da, smoltcp liburutegian oinarrituta ezarrita.

Garatzaileak QEMUn edo Firecracker makina birtualean exekutatzen den abio-ingurune bat prestatu du virtio-net kontrolatzailearekin, eta dagoeneko SSH bidez konekta zaitezke. musl sistema-liburutegi gisa erabiltzen da, eta BusyBox erabiltzailearen utilitate gisa erabiltzen da.

Kerla proiektua Linux-ekin bateragarria den nukleo bat garatzen ari da Rust hizkuntzan

Docker-en oinarritutako eraikuntza-sistema bat prestatu da, Kerla nukleoarekin zure abiarazte initramf-ak sortzeko aukera ematen duena. Bereiz, arrainen antzeko nsh software shell eta Wayland protokoloan oinarritutako Kazari GUI pila garatzen ari dira.

Kerla proiektua Linux-ekin bateragarria den nukleo bat garatzen ari da Rust hizkuntzan

Rust lengoaia proiektu batean erabiltzeak kodean akatsen kopurua murrizteko aukera ematen du, programazio teknika seguruak erabiliz eta memoriarekin lan egitean arazoak identifikatzeko eraginkortasuna areagotuz. Rust-ek memoriaren segurtasuna betetzen du konpilazio garaian erreferentzia-egiaztapenaren, objektuen jabetzaren eta objektuen bizitzaren jarraipenaren bidez (esparruak), eta exekuzioan memoria-sarbideen zuzentasuna ebaluatuz. Gainera, Rust-ek osoko gainezkatzeen aurkako babesa eskaintzen du, erabili aurretik balio aldagaiak hasieratu behar dira, erreferentzia eta aldagai aldaezinen kontzeptua lehenespenez ezartzen du, idazketa estatiko sendoa eskaintzen du akats logikoak minimizatzeko eta sarrerako balioen maneiua errazten du. eredu bategiteari esker. .

Maila baxuko osagaiak garatzeko, hala nola sistema eragilearen nukleoa, Rust-ek erakusle gordinak, egitura-paketea, mihiztatzailearen lerroko txertaketak eta mihiztagailu-fitxategiak txertatzeko laguntza eskaintzen du. Liburutegi estandarrari lotuta egon gabe lan egiteko, kate, bektore eta bit-markekin eragiketak egiteko kaxa pakete bereiziak daude. Beste abantaila bat kodearen kalitatea ebaluatzeko (linter, rust-analyzer) eta hardware errealean ez ezik, QEMUn ere exekutatu daitezkeen unitate-probak sortzeko tresnak dira.

Iturria: opennet.ru

Gehitu iruzkin berria