screenshot ng maestro
Ang kalawang ay nakakuha ng sapat na katanyagan sa isang antas na ito ay naging isa sa mga napili na isama bilang pangalawang wika sa Linux, gayundin sa iba pang mga operating system, tulad ng kaso ng Android, na mayroon nang bahagi ng code sa Rust, Windows na ay nagbigay ng pag-apruba, bukod sa iba pa.
Kalawang ay napatunayang isang matatag na wika at nakabuo ng gayong pagtitiwala Ang ilang mga operating system ay ginawa pa nga gamit ang programming language na ito at para lamang banggitin ang ilan na mayroon kami: Redox, Mayroon din kaming mga Kernel na nakasulat mula sa simula tulad ng Kerla o ang Kernel na ginamit sa satellite na inilunsad kamakailan ng China.
Ang dahilan ng pagbanggit nito ay kamakailan lamang ay nakatagpo ako ng isang balita na nakakuha ng aking pansin at iyon ay Isang proyekto ang ipinakita kung saan nabuo ang isang Kernel na nakasulat sa Rust at kung saan ay bahagyang tugma sa Linux.
Ang pangalan ng proyektong ito ay "Guro" at gaya ng nabanggit, ay isang Unix-like kernel na nakasulat sa Rust na nagpapatupad ng subset ng mga system call mula sa Linux kernel sapat upang lumikha ng mga karaniwang kapaligiran sa trabaho. Dahil dito, ang proyektong "Maestro" ay hindi bago, dahil binanggit ng developer na ang proyekto ay ipinanganak noong 2018, ngunit noong panahong iyon ay nakasulat ito sa C at dahil sa iba't ibang mga benepisyo at katangian ng Rust, ang proyekto ay muling isinulat mula sa sero.
Sa pahina ng proyekto Ang mga dahilan para sa pagbabago ay inilarawan:
Sa sandaling iyon nagpasya akong lumipat sa Rust (aking unang proyekto sa wikang ito), na kumakatawan sa ilang mga pakinabang:
- I-restart ang proyekto mula sa simula, gamit ang mga aral na natutunan mula sa mga nakaraang pagkakamali.
- Maging mas makabagong kaunti kaysa sa pagsusulat lamang ng kernel na katulad ng Linux sa C. Pagkatapos ng lahat, gamitin lang ang Linux sa oras na iyon.
- Gamitin ang seguridad ng Rust na wika upang samantalahin ang ilang mga problema sa kernel programming. Ang paggamit ng Rust writing system ay nagpapahintulot sa iyo na ilipat ang ilan sa mga responsibilidad para sa kaligtasan ng memorya mula sa programmer patungo sa compiler.
Sa pagpapaunlad ng kernel, napakahirap ng pag-debug para sa ilang kadahilanan:
- Ang dokumentasyon ay kadalasang mahirap hanapin at ang mga pagpapatupad ng BIOS ay maaaring maging buggy (mas madalas kaysa sa iyong iniisip).
- Sa pag-boot, ang kernel ay may ganap na access sa memorya at maaaring magsulat kung saan hindi dapat (sa sarili nitong code, halimbawa).
- Ang pag-troubleshoot ng mga pagtagas ng memorya ay hindi madali. Ang mga tool tulad ng valgrind ay hindi maaaring gamitin.
- Maaaring gamitin ang gdb sa QEMU at VMWare, ngunit maaaring iba ang pagkilos ng kernel kapag tumatakbo sa ibang emulator o virtual machine. Gayundin, maaaring hindi sinusuportahan ng mga emulator na iyon ang gdb (hal. VirtualBox).
- Nawawala ang ilang feature sa suporta ng gdb sa QEMU o VMWare at maaaring mag-crash paminsan-minsan ang gdb
Kaugnay sa mga katangian ng proyekto, namumukod-tangi na ang Kernel ay monolitik at kasalukuyang sinusuportahan lamang sa mga x86 system sa 32-bit mode. Ang kernel code base ay sumasaklaw sa humigit-kumulang 49 libong linya, na maipapatupad pareho sa tunay na hardware at sa mga virtualized na kapaligiran, tulad ng QEMU o VirtualBox.
Sa kasalukuyang pag-unlad ng «Maestro», 31% ang naipatupad (135 ng 437) ng mga tawag sa system ng Linux. Ito ay sapat para mag-load ng console environment batay sa Bash at sa Musl standard C library. Bilang karagdagan, ang Maestro-based na kapaligiran ay maaaring magpatakbo ng ilang mga utilidad mula sa GNU coreutils suite at pangunahing packaging mula sa anumang Unix system. Sa kasalukuyan, ang trabaho ay ginagawa sa pagpapatupad ng isang networking stack at ang trabaho ay ginagawa din sa pagbuo ng isang
Kabilang sa mga Kapansin-pansin ang mga available na feature ng Maestro ang mga sumusunod::
- Mga Controller para sa PS/2 na keyboard at terminal na may text mode at bahagyang suporta para sa ANSI sequence.
- Sistema ng paglalaan ng memorya na may suporta para sa virtual na memorya.
- Task scheduler batay sa round-robin algorithm na may suporta para sa mga signal ng POSIX.
- Kahulugan ng mga aparatong PCI.
- IDE/PATA controller.
- Ext2 file system.
- Suporta para sa /tmp at /proc virtual file system.
- Kakayahang mag-mount ng mga partisyon ng disk ng FS, MBR at GPT.
- suporta sa initramfs.
- RTC controller para sa timer at tumpak na oras.
- Suporta para sa paglo-load ng mga kernel module.
- Kakayahang magpatakbo ng mga executable na file sa ELF format.
para interesadong matuto ng kaunti pa tungkol sa proyekto, maaari mong suriin ang mga detalye Sa sumusunod na link. Tulad ng para sa mga interesado sa code ng proyekto, dapat nilang malaman na ito ay ipinamahagi sa ilalim ng lisensya ng MIT.