Maestro screenshot
Rust je stekao dovoljno popularnosti do te mjere da je postao jedan od onih odabranih za integraciju kao sekundarni jezik u Linuxu, kao iu drugim operativnim sustavima, kao što je slučaj Androida, koji već ima dio koda u Rustu, Windowsa koji također dao odobrenje, među ostalim.
Hrđa pokazao se robusnim jezikom i izazvao takvo povjerenje Neki operativni sustavi čak su stvoreni s ovim programskim jezikom, a spomenimo samo neke: redoks, Također imamo kernele napisane od nule kao što su Kerla ili Kernel koji se koristi u satelit koji je Kina nedavno lansirala.
Razlog za ovo spominjanje je taj što sam nedavno naišao na vijest koja mi je privukla pažnju, a to je da Predstavljen je projekt u kojem se razvija kernel napisan u Rustu i koji je djelomično kompatibilan s Linuxom.
Naziv ovog projekta je "Učitelj, nastavnik, profesor" i kao što je spomenuto, je kernel sličan Unixu napisan u Rustu koji implementira podskup sistemskih poziva iz jezgre Linuxa dovoljno za stvaranje standardnih radnih okruženja. Kao takav, "Maestro" projekt nije nešto novo, budući da programer spominje da je projekt rođen 2018., ali je u to vrijeme bio napisan u C-u i zbog različitih prednosti i karakteristika Rusta, projekt je prepisan iz nula.
Na stranici projekta Razlozi promjene su opisani:
U tom sam trenutku odlučio prijeći na Rust (moj prvi projekt na ovom jeziku), što je predstavljalo nekoliko prednosti:
- Ponovno pokrenite projekt od početka, koristeći lekcije naučene iz prethodnih pogrešaka.
- Budite malo inovativniji od pisanja jezgre nalik Linuxu u C-u. Uostalom, tada samo koristite Linux.
- Koristite sigurnost Rust jezika kako biste iskoristili neke poteškoće u programiranju kernela. Korištenje Rust sustava pisanja omogućuje vam prijenos dijela odgovornosti za sigurnost memorije s programera na kompajler.
U razvoju kernela, otklanjanje pogrešaka je vrlo teško iz nekoliko razloga:
- Dokumentaciju je često teško pronaći, a implementacije BIOS-a mogu imati pogreške (češće nego što mislite).
- Prilikom dizanja, kernel ima puni pristup memoriji i može pisati gdje ne bi trebao (na primjer, vlastiti kod).
- Rješavanje problema s curenjem memorije nije lako. Alati poput valgrinda ne mogu se koristiti.
- gdb se može koristiti s QEMU i VMWare, ali kernel se može ponašati drugačije kada se pokreće na drugom emulatoru ili virtualnom stroju. Također, ti emulatori možda ne podržavaju gdb (npr. VirtualBox).
- Neke značajke nedostaju u podršci za gdb u QEMU ili VMWareu, a gdb se ponekad čak može srušiti
U vezi sa karakteristike projekta, ističe se da je kernel monolitan i trenutno je podržan samo na x86 sustavima u 32-bitnom načinu. Baza koda kernela pokriva oko 49 tisuća redaka, a može se izvršiti i na stvarnom hardveru iu virtualiziranim okruženjima, kao što su QEMU ili VirtualBox.
U trenutnom razvoju «Maestra», Realizirano je 31%. (135 od 437) poziva sustava Linux. Ovo je dovoljno za učitavanje okruženja konzole temeljenog na Bashu i Musl standardnoj C biblioteci. Osim toga, Maestro-bazirano okruženje može pokrenuti neke pomoćne programe iz GNU coreutils paketa i osnovnog pakiranja iz bilo kojeg Unix sustava. Trenutno se radi na implementaciji mrežnog skupa, a također se radi na razvoju
Među Ističu se dostupne značajke Maestra sljedeće::
- Upravljači za PS/2 tipkovnicu i terminal s tekstualnim načinom rada i djelomičnom podrškom za ANSI sekvence.
- Sustav dodjele memorije s podrškom za virtualnu memoriju.
- Planer zadataka temeljen na kružnom algoritmu s podrškom za POSIX signale.
- Definicija PCI uređaja.
- IDE/PATA kontroler.
- Ext2 datotečni sustav.
- Podrška za /tmp i /proc virtualne datotečne sustave.
- Mogućnost montiranja FS, MBR i GPT particija diska.
- initramfs podrška.
- RTC kontroler za mjerač vremena i precizno vrijeme.
- Podrška za učitavanje modula jezgre.
- Mogućnost pokretanja izvršnih datoteka u ELF formatu.
Za zainteresirani da saznaju nešto više o projektu, možete provjeriti pojedinosti U sljedećem linku. Što se tiče onih koji su zainteresirani za šifru projekta, trebali bi znati da jest distribuira pod licencom MIT-a.