Projekti Kerla zhvillon një bërthamë të përputhshme me Linux në gjuhën Rust

Në kuadër të projektit Kerla, po zhvillohet bërthama e sistemit operativ e shkruar në gjuhën Rust. Bërthama e re është fillimisht e orientuar drejt sigurimit të kompatibilitetit me bërthamën Linux në nivelin ABI, çka do të lejojë ekzekutimin e skedarëve të ekzekutueshëm të pa modifikuar, të ndërtuar për Linux, në një mjedis të bazuar në Kerla. Kodi shpërndahet nën licencat Apache 2.0 dhe MIT. Projekti zhvillohet nga zhvilluesi japonez Seiya Nuta, i njohur për krijimin e sistemit operativ mikro-bërthamë Resea, i shkruar në gjuhën C.

Në fazën aktuale të zhvillimit, Kerla mund të punojë vetëm në sisteme me arkitekturë x86_64 dhe implementon thirrje themelore sistemore, si write, stat, mmap, pipe dhe poll, mbështet sinjalet, kanalet e paemërtuara dhe kalimet midis konteksteve. Për menaxhimin e proceseve, ofrohen thirrjet si fork, wait4 dhe execve. Ka mbështetje për tty dhe pseudo-terminalet (pty). Nga sistemet e skedarëve, deri më tani mbështetimi ofrohet për initramfs (përdoret për të montuar FS-në rrënjore), tmpfs dhe devfs. Ofron një stek rrjeti me mbështetje për soket TCP dhe UDP, implementuar mbi bibliotekën smoltcp.

Zhvilluesi ka përgatitur një mjedis ngarkimi, i cili mund të ekzekutohet në QEMU ose në makinën virtuale Firecracker me drucken virtio-net, i cili mund të lidhet tashmë përmes SSH. Biblioteka sistemore që përdoret është musl, ndërsa utilitetet e përdoruesit janë BusyBox.

Projekti Kerla zhvillon një bërthamë të përputhshme me Linux në gjuhën Rust

Në bazë të Docker, është përgatitur një sistem ndërtimi që lejon formimin e initramfs-ve të ngarkimit të personalizuara me bërthamën Kerla. Ndërkohë, po zhvillohet një shell software e ngjashme me fish, nsh, dhe një stek GUI, Kazari, mbi bazën e protokolit Wayland.

Projekti Kerla zhvillon një bërthamë të përputhshme me Linux në gjuhën Rust

Përdorimi i gjuhës Rust në projekt e lejon të reduktojë numrin e gabimeve në kod falë aplikimit të teknikave të programimit të sigurt dhe rritjes së efikasitetit të identifikimit të problemeve gjatë punës me memorien. Puna e sigurtë me memorien sigurohet në Rust gjatë kompilimit përmes kontrollit të referencave, ndjekjes së pronësisë së objekteve dhe menaxhimit të kohës së jetës së objekteve (zona e dukshmërisë), si dhe përmes vlerësimit të saktësisë së aksesit në memorie gjatë ekzekutimit të kodit. Për më tepër, Rust ofron mjete për mbrojtje nga tejkalimet e numrave të tërë, kërkon inicializimin e detyrueshëm të vlerave të variablave para përdorimit, aplikohet koncepti i referencave dhe variablave të pandryshueshëm (immutable) si parazgjedhje, ofron tipizim të fortë statik për minimizimin e gabimeve logjike dhe e thjeshton përpunimin e hyrjeve falë mjeteve të përputhjes me modelin.

Për zhvillimin e komponentëve të nivelit të ulët, siç është bërthama e OS-së, Rust ofron mbështetje për treguesit raw, paketimin e strukturave, inserte inline në assembler dhe inkorporimin e skedave në assembler. Për të punuar pa u lidhur me bibliotekën standarde ka paketa të veçanta crate për kryerjen e operacioneve me stringje, vektore dhe flamuj bit. Nga përparësitë janë gjithashtu mjetet e ndërtuara për vlerësimin e cilësisë së kodit (linter, rust-analyzer) dhe krijimin e testeve unitare, të cilat mund të ekzekutohen jo vetëm në pajisje reale, por edhe në QEMU.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster