De Kerla Projet entwéckelt e Linux-kompatiblen Kernel an der Rust Sprooch

De Kerla-Projet entwéckelt e Betribssystemkär geschriwwen an der Rust Sprooch. Den neie Kernel konzentréiert sech ufanks op d'Kompatibilitéit mam Linux Kernel um ABI Niveau, wat et erlaabt onmodifizéiert ausführbar Dateien, déi fir Linux kompiléiert sinn, an engem Kerla-baséierten Ëmfeld ze lafen. De Code gëtt ënner Apache 2.0 a MIT Lizenzen verdeelt. De Projet gëtt vum japanesche Entwéckler Seiya Nuta entwéckelt, bekannt fir de Mikrokernel Betriebssystem Resea ze kreéieren, geschriwwen an der C Sprooch.

Op senger aktueller Etapp vun der Entwécklung kann Kerla nëmmen op x86_64 Systemer lafen an implementéiert Basis System Uruff wéi Schreiwen, Stat, mmap, Päif a Pollen, ënnerstëtzt Signaler, onbenannt Päifen a Kontextschalter. Uruff wéi Gabel, wait4, an execve gi zur Kontroll Prozesser zur Verfügung gestallt. Et gëtt Ënnerstëtzung fir tty a Pseudo-Terminals (pty). Déi aktuell ënnerstëtzt Dateisystemer sinn initramfs (benotzt fir de Root Dateisystem ze montéieren), tmpfs an devfs. En Netzwierk Stack mat Ënnerstëtzung fir TCP an UDP Sockets gëtt ugebueden, implementéiert baséiert op der smoltcp Bibliothéik.

Den Entwéckler huet e Boot-Ëmfeld virbereet, deen an QEMU oder an der virtueller Firecracker-Maschinn mat dem Virtio-Net-Treiber leeft, mat deem Dir schonn iwwer SSH verbënnt. musl gëtt als Systembibliothéik benotzt, a BusyBox gëtt als Benotzer Utilities benotzt.

De Kerla Projet entwéckelt e Linux-kompatiblen Kernel an der Rust Sprooch

En Docker-baséiert Build System gouf virbereet, deen Iech erlaabt Är eege Boot Initramfs mam Kerla Kernel ze kreéieren. Separat gëtt d'nsh Software Shell ähnlech wéi Fësch an de Kazari GUI Stack baséiert op dem Wayland Protokoll entwéckelt.

De Kerla Projet entwéckelt e Linux-kompatiblen Kernel an der Rust Sprooch

D'Benotzung vun der Rust Sprooch an engem Projet erlaabt Iech d'Zuel vun de Fehler am Code ze reduzéieren andeems Dir sécher Programméierungstechniken benotzt an d'Effizienz erhéijen fir Probleemer z'identifizéieren wann Dir mat Erënnerung schafft. Rust erzwéngt d'Erënnerungssécherheet bei der Kompiléierungszäit duerch Referenzprüfung, Objektbesëtzer an Objektliewensdauer Tracking (Scope), an duerch d'Evaluatioun vun der Richtegkeet vun den Erënnerungszougäng bei der Runtime. Zousätzlech bitt Rust Schutz géint ganz Iwwerfloss, erfuerdert variabel Wäerter virum Gebrauch initialiséiert, erzwéngt d'Konzept vun onverännerleche Referenzen a Variablen par défaut, bitt staark statesch Tippen fir logesch Feeler ze minimiséieren, a vereinfacht den Ëmgang mat Inputwäerter dank dem Mustermatching ..

Fir d'Entwécklung vu Low-Level Komponenten, wéi zum Beispill den OS Kernel, bitt Rust Ënnerstëtzung fir raw Pointer, Strukturverpackung, Assembler Inline Inserts, an Embedding vun Assembler Dateien. Fir ze schaffen ouni un d'Standardbibliothéik gebonnen ze sinn, ginn et separat Këschtpakete fir Operatiounen mat Strings, Vecteure a Bit Fändelen auszeféieren. En anere Virdeel ass déi agebaute Tools fir d'Codequalitéit ze bewäerten (Linter, Rust-Analyzer) an d'Eenheetstester ze kreéieren déi net nëmmen op real Hardware lafen kënnen, awer och an QEMU.

Source: opennet.ru

Setzt e Commentaire