Kerla projekts izstrādā ar Linux saderīgu kodolu Rust valodā

Kerla projekts izstrādā operētājsistēmas kodolu, kas rakstīts Rust valodā. Jaunais kodols sākotnēji ir vērsts uz saderības nodrošināšanu ar Linux kodolu ABI līmenī, kas ļaus nemodificētiem izpildāmajiem failiem, kas kompilēti Linux, darboties Kerla vidē. Kods tiek izplatīts saskaņā ar Apache 2.0 un MIT licencēm. Projektu izstrādā japāņu izstrādātājs Seiya Nuta, kas pazīstams ar mikrokodola operētājsistēmas Resea izveidi, kas rakstīta C valodā.

Pašreizējā izstrādes stadijā Kerla var darboties tikai x86_64 sistēmās un ievieš pamata sistēmas izsaukumus, piemēram, rakstīšanu, stat, mmap, cauruli un aptauju, atbalsta signālus, nenosauktas caurules un konteksta slēdžus. Lai kontrolētu procesus, tiek nodrošināti tādi izsaukumi kā fork, wait4 un execve. Ir atbalsts tty un pseido-termināļiem (pty). Pašlaik atbalstītās failu sistēmas ir initramfs (izmanto saknes failu sistēmas pievienošanai), tmpfs un devfs. Tiek nodrošināts tīkla steks ar atbalstu TCP un UDP ligzdām, kas ieviests, pamatojoties uz smoltcp bibliotēku.

Izstrādātājs ir sagatavojis sāknēšanas vidi, kas darbojas QEMU vai Firecracker virtuālajā mašīnā ar virtio-net draiveri, ar kuru jūs jau varat izveidot savienojumu, izmantojot SSH. musl tiek izmantots kā sistēmas bibliotēka, un BusyBox tiek izmantots kā lietotāja utilītas.

Kerla projekts izstrādā ar Linux saderīgu kodolu Rust valodā

Ir sagatavota uz Docker balstīta būvēšanas sistēma, kas ļauj izveidot savu sāknēšanas initramfs ar Kerla kodolu. Atsevišķi tiek izstrādāts nsh programmatūras apvalks, kas līdzīgs zivīm un Kazari GUI steks, kura pamatā ir Wayland protokols.

Kerla projekts izstrādā ar Linux saderīgu kodolu Rust valodā

Rust valodas izmantošana projektā ļauj samazināt kļūdu skaitu kodā, izmantojot drošas programmēšanas metodes un palielinot problēmu identificēšanas efektivitāti darbā ar atmiņu. Rust nodrošina atmiņas drošību kompilēšanas laikā, pārbaudot atsauces, objektu īpašumtiesības un objekta mūža izsekošanu (tvērumus), kā arī novērtējot atmiņas piekļuves pareizību izpildes laikā. Turklāt Rust nodrošina aizsardzību pret veselu skaitļu pārpildīšanu, pieprasa mainīgo vērtību inicializāciju pirms lietošanas, pēc noklusējuma ievieš nemainīgu atsauču un mainīgo jēdzienu, piedāvā spēcīgu statisko rakstīšanu, lai samazinātu loģiskās kļūdas, un vienkāršo ievades vērtību apstrādi. pateicoties modeļu saskaņošanai.

Zema līmeņa komponentu, piemēram, operētājsistēmas kodola, izstrādei Rust nodrošina atbalstu neapstrādātiem rādītājiem, struktūras pakotnēm, montētāja iekļautajiem ieliktņiem un montāžas failu iegulšanai. Lai strādātu bez piesaistes standarta bibliotēkai, ir atsevišķas kastes pakotnes darbību veikšanai ar virknēm, vektoriem un bitu karodziņiem. Vēl viena priekšrocība ir iebūvētie rīki koda kvalitātes novērtēšanai (linter, rūsas analizators) un vienību testu izveidei, kurus var palaist ne tikai uz reālu aparatūru, bet arī QEMU.

Avots: opennet.ru

Pievieno komentāru