Projekti Kerla zhvillon një kernel të pajtueshëm me Linux në Rust

Projekti Kerla po zhvillon një kernel të sistemit operativ të shkruar në Rust. Kerneli i ri është projektuar që nga themeli për të qenë i pajtueshëm me kernelin Linux në nivelin ABI, i cili do të lejojë ekzekutuesit e pamodifikuar të ndërtuara për Linux të ekzekutohen në një mjedis të bazuar në Kerla. Kodi shpërndahet nën licencat Apache 2.0 dhe MIT. Projekti po zhvillohet nga zhvilluesi japonez Seiya Nuta, i njohur për krijimin e sistemit operativ të mikrokernelit Resea të shkruar në C.

Në fazën aktuale të zhvillimit, Kerla mund të funksionojë vetëm në sistemet x86_64 dhe zbaton thirrjet bazë të sistemit si shkrim, stat, mmap, tub dhe sondazh, mbështet sinjale, tuba pa emër dhe ndërprerës të kontekstit. Për menaxhimin e procesit, ofrohen thirrje të tilla si fork, wait4 dhe execve. Ekziston mbështetje për tty dhe pseudo-terminalet (pty). Nga sistemet e skedarëve, initramfs (përdoret për montimin e rrënjës FS), tmpfs dhe devfs janë ende të mbështetura. Një grup rrjeti ofrohet me mbështetje për prizat TCP dhe UDP, të implementuara në bazë të bibliotekës smoltcp.

Zhvilluesi ka përgatitur një mjedis bootable që funksionon në QEMU ose në makinën virtuale Firecracker me drejtuesin virtio-net, me të cilin tashmë mund të lidheni përmes SSH. Musl përdoret si një bibliotekë sistemi dhe BusyBox përdoret si shërbime të përdoruesit.

Projekti Kerla zhvillon një kernel të pajtueshëm me Linux në Rust

Bazuar në Docker, është përgatitur një sistem ndërtimi që ju lejon të krijoni initramf-et tuaja të nisjes me bërthamën Kerla. Predha nsh e ngjashme me peshkun dhe rafti GUI Kazari bazuar në protokollin Wayland po zhvillohen veçmas.

Projekti Kerla zhvillon një kernel të pajtueshëm me Linux në Rust

Përdorimi i gjuhës Rust në një projekt zvogëlon numrin e gabimeve në kod duke aplikuar teknika të sigurta të kodimit dhe duke përmirësuar efikasitetin e identifikimit të problemeve kur punoni me memorie. Siguria e memories sigurohet në Rust në kohën e përpilimit përmes kontrollit të referencës, mbajtjes së gjurmëve të pronësisë së objektit dhe jetëgjatësisë së objektit (fushëveprimit), si dhe përmes vlerësimit të korrektësisë së aksesit në kujtesë gjatë ekzekutimit të kodit. Përveç kësaj, Rust siguron mbrojtje kundër tejmbushjeve të numrave të plotë, kërkon inicializimin e detyrueshëm të vlerave të ndryshueshme përpara përdorimit, aplikon konceptin e referencave dhe variablave të pandryshueshme si parazgjedhje, ofron shtypje të fortë statike për të minimizuar gabimet logjike dhe thjeshton përpunimin e vlerës së hyrjes përmes pajisjeve të përputhjes së modelit .

Për zhvillimin e komponentëve të nivelit të ulët, si kerneli i OS, Rust ofron mbështetje për treguesit e papërpunuar, paketimin e strukturës, futjet në linjë të montimit dhe rreshtimin e skedarëve të montimit. Për të punuar pa u lidhur me bibliotekën standarde, ka paketa të veçanta arkë për kryerjen e operacioneve në vargje, vektorë dhe flamuj bit. Ndër avantazhet, ka edhe mjete të integruara për vlerësimin e cilësisë së kodit (linter, analizues i ndryshkut) dhe krijimin e testeve të njësisë që mund të ekzekutohen jo vetëm në pajisje reale, por edhe në QEMU.

Burimi: opennet.ru

Shto një koment