Kerla: isang bagong kernel na nakasulat sa Rust at tugma sa Linux ABI

Ang impormasyon tungkol sa proyekto ng Kerla ay inilabas kamakailan, na binuo bilang isang kernel ng operating system na nakasulat sa wikang Rust. Ang code ay ipinamahagi sa ilalim ng mga lisensya ng Apache 2.0 at MIT. Ang proyekto ay binuo ng Japanese developer na si Seiya Nuta, na kilala sa paglikha ng microkernel operating system na Resea, na nakasulat sa C na wika.

Ang bagong kernel ay naglalayon sa simula tiyakin ang pagiging tugma sa Linux kernel sa antas ng ABI, na magbibigay-daan sa mga hindi binagong binary na binuo para sa Linux na tumakbo sa isang Kerla-based na kapaligiran.

Tungkol kay Keral

Ang Kerla ay isang monolithic operating system kernel nilikha mula sa simula sa Rust. Sa kasalukuyang yugto ng pag-unlad, Kerla maaari lamang tumakbo sa mga system na may x86_64 architecture at nagpapatupad ng mga pangunahing system call tulad ng write, stat, mmap, pipe, at poll, sumusuporta sa mga signal, hindi pinangalanang pipe, at context switch. Ang mga tawag tulad ng fork, wait4 at execve ay nagbibigay ng kontrol sa mga proseso. Mayroong suporta para sa tty at pseudo-terminals (pty). Sa mga initramfs file system (ginagamit para i-mount ang root FS), sinusuportahan pa rin ang tmpfs at devfs.

Nagbibigay din ng network stack na may suporta para sa TCP at UDP sockets, batay sa smoltcp library. Naghanda ang developer ng boot environment na gumagana sa QEMU o Firecracker VM na may controller na virtio-net, kung saan maaari ka nang kumonekta sa pamamagitan ng SSH. Ang Musl ay ginagamit bilang isang library ng system at ang BusyBox ay ginagamit bilang isang utility ng gumagamit. Batay sa Docker, isang build system ang inihanda na nagbibigay-daan sa iyong lumikha ng sarili mong initramfs boot gamit ang Kerla kernel.

Sa ngayon, kakaunti ang mga detalyeng naibigay tungkol sa bagong kernel nito, ngunit ang higit na nakakakuha ng pansin sa mga tampok ng Kerla ay ang katotohanang nakasulat ito sa Rust. Kaya't ang pagsulat nito sa Rust ay may anumang mga pakinabang sa iba pang mga wika o sa umiiral na code? Marami ang sumagot ng oo sa tanong na ito, na nagbibigay-diin sa mga benepisyo sa seguridad ng memorya na ibinibigay ng wika.

Ibinibigay din ito kapag sinusuri ang katumpakan ng mga pag-access ng memory sa oras ng pagtakbo. Ano pa, naniniwala si Mozilla na nag-aalok ang Rust ng proteksyon laban sa mga overflow ng integer, nangangailangan ng mandatoryong pagsisimula ng mga variable na halaga bago gamitin, tinatanggap ang konsepto ng mga sanggunian at hindi nababagong mga variable bilang default, nag-aalok ng malakas na static na pag-type upang mabawasan ang mga lohikal na error, at pinapasimple ang pagproseso ng input sa pamamagitan ng pagtutugma ng mga pattern.

Kabilang sa mga pakinabang, itinatampok namin ang pinagsama-samang mga tool upang suriin ang kalidad ng code at paglikha ng mga unit test na maaaring patakbuhin hindi lamang sa totoong hardware, kundi pati na rin sa QEMU. Karaniwan, hinahanap ng Mozilla ang Rust na mas madaling i-debug, dahil tatanggihan ng compiler ang mga error. Gayunpaman, itinuro ng mga coves ang ilang mga kakulangan sa Rust.

"Tulad ng C ++, halos imposibleng magsulat ng idiomatic na Rust nang hindi gumagamit ng mga template, kaya't ito ay namamaga ng mga binary at mabagal na oras ng pag-compile. Lahat ng compile-time check na ito ay may halaga din. Gayundin, kung muling isusulat mo ang isang bagay, mawawala ang lumang mature na codebase, at walang paraan na makakagawa ka ng codebase na may katulad na kalidad sa isang makatwirang tagal ng panahon; mas mainam na palawigin, sa halip na muling isulat, ang programa sa Rust. Mas mainam na pahabain ang programa sa halip na muling isulat ito sa Rust, ”sabi ng isang software engineer.

Ayon sa lumikha nito, ito ang dahilan kung bakit ang mga developer ng Linux, sa partikular si Linus Torvalds mismo, tinanggihan nila ang ideya na muling isulat ang buong kernel sa Rust.

"Gumawa ng ilang trabaho upang lumikha ng mga secure na link, pagkatapos ay isulat ang karagdagang code sa Rust at masisiyahan ka pa rin sa mature na code na iyon. (Iyan ang ginagawa ng Linux, may mga pagsisikap na magdagdag ng kakayahang magsulat ng isang kernel module sa Rust), ”dagdag niya. Sinusuri ng mga developer ng Linux ang mga posibilidad ng pagsulat ng ilang bagong kernel module gamit ang Rust na wika sa loob ng halos tatlong taon. Nagbunga ito ng proyektong "Rust for Linux".

Panghuli, kung interesado kang malaman ang tungkol dito, maaari kang kumunsulta sa mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.