Ntchito ya Kerla ikupanga kernel yogwirizana ndi Linux m'chinenero cha Rust

Pulojekiti ya Kerla ikupanga makina ogwiritsira ntchito olembedwa m'chinenero cha Rust. Kernel yatsopanoyo poyambilira imayang'ana kwambiri popereka kuyanjana ndi kernel ya Linux pamlingo wa ABI, zomwe zilola kuti mafayilo osasinthidwa omwe amapangidwa kuti Linux azigwira ntchito pamalo ozikidwa ku Kerla. Khodiyo imagawidwa pansi pa ziphaso za Apache 2.0 ndi MIT. Ntchitoyi ikupangidwa ndi wopanga ku Japan Seiya Nuta, wodziwika popanga makina opangira ma microkernel Resea, olembedwa m'chilankhulo cha C.

Pachitukuko chake chapano, Kerla imatha kuthamanga pa x86_64 machitidwe ndikugwiritsa ntchito mafoni oyambira monga kulemba, stat, mmap, chitoliro ndi poll, imathandizira ma siginecha, mapaipi osatchulidwa mayina ndi masinthidwe amtundu. Mafoni monga foloko, wait4, ndi execve amaperekedwa kuti aziwongolera njira. Pali chithandizo cha tty ndi pseudo-terminals (pty). Mafayilo omwe amathandizidwa pano ndi initramfs (omwe amagwiritsidwa ntchito kuyika mizu yamafayilo), tmpfs ndi devfs. Malo ochezera a pa intaneti omwe ali ndi chithandizo cha soketi za TCP ndi UDP amaperekedwa, akugwiritsidwa ntchito potengera laibulale ya smoltcp.

Wopangayo wakonza malo a boot omwe amayenda ku QEMU kapena mu makina a Firecracker omwe ali ndi dalaivala wa virtio-net, komwe mutha kulumikizana kale kudzera pa SSH. musl imagwiritsidwa ntchito ngati laibulale yamakina, ndipo BusyBox imagwiritsidwa ntchito ngati zothandizira.

Ntchito ya Kerla ikupanga kernel yogwirizana ndi Linux m'chinenero cha Rust

Docker-based build system yakonzedwa yomwe imakulolani kuti mupange boot initramfs anu ndi Kerla kernel. Payokha, nsh pulogalamu chipolopolo chofanana ndi nsomba ndi Kazari GUI stack zochokera Wayland protocol akupangidwa.

Ntchito ya Kerla ikupanga kernel yogwirizana ndi Linux m'chinenero cha Rust

Kugwiritsa ntchito Chilankhulo cha Dzimbiri mu polojekiti kumakupatsani mwayi wochepetsera kuchuluka kwa zolakwika mu code pogwiritsa ntchito njira zotetezeka zamapulogalamu ndikuwonjezera luso lozindikira zovuta mukamagwira ntchito ndi kukumbukira. Dzimbiri imalimbikitsa chitetezo cham'makumbukiro panthawi yophatikizira kudzera pakuwunika, umwini wa chinthu ndi kutsatira moyo wonse wa chinthu (ma scopes), ndikuwunika kulondola kwa kukumbukira komwe kumafikira panthawi yothamanga. Kuphatikiza apo, dzimbiri limapereka chitetezo ku kusefukira kwathunthu, kumafuna kuti zikhalidwe zosinthika zikhazikitsidwe musanagwiritse ntchito, kulimbikitsa lingaliro la maumboni osasinthika ndi zosintha mwachisawawa, zimapereka zilembo zolimba kuti muchepetse zolakwika zomveka, komanso imathandizira kasamalidwe ka zolowa. zikomo chifukwa chofananira..

Pakukulitsa zida zotsika, monga OS kernel, Dzimbiri imapereka chithandizo cha zolozera zaiwisi, kulongedza kamangidwe, kuyika kwapaintaneti, ndikuyika mafayilo ophatikizira. Kuti mugwire ntchito popanda kumangirizidwa ku laibulale yokhazikika, pali ma crate osiyanasiyana opangira ntchito ndi zingwe, ma vectors ndi mbendera zazing'ono. Ubwino wina ndi zida zomangidwira zowunika mtundu wa code (linter, rust-analyzer) ndikupanga mayeso a unit omwe amatha kuyendetsedwa osati pa hardware yeniyeni, komanso ku QEMU.

Source: opennet.ru

Kuwonjezera ndemanga