Maestro ekrano kopija
Rūdys įgijo pakankamai populiarumo tiek, kad ji tapo viena iš tų, kurios buvo pasirinktos kaip antrinė kalba „Linux“ ir kitose operacinėse sistemose, pavyzdžiui, „Android“, kuri jau turi dalį kodo „Rust“, „Windows“, kuri taip pat davė patvirtinimą, be kita ko.
Rust pasirodė esanti tvirta kalba ir sukūrė tokį pasitikėjimą Kai kurios operacinės sistemos netgi buvo sukurtos naudojant šią programavimo kalbą ir, pavyzdžiui, turime keletą: redoksas, Taip pat turime nuo nulio parašytus branduolius, tokius kaip Kerla arba branduolys, naudojamas Kinijos neseniai paleistas palydovas.
Priežastis tai paminėti yra ta, kad neseniai aptikau naujieną, kuri patraukė mano dėmesį, ir viskas Buvo pristatytas projektas, kuriame kuriamas „Rust“ kalba parašytas branduolys ir kuris iš dalies suderinamas su Linux.
Šio projekto pavadinimas yra "Mokytojas" ir kaip minėta, yra į Unix panašus branduolys, parašytas Rust kalba, įgyvendinantis sistemos iškvietimų poaibį iš Linux branduolio pakanka sukurti standartinę darbo aplinką. Kaip toks, „Maestro“ projektas nėra kažkas naujo, nes kūrėjas užsimena, kad projektas gimė 2018 m., tačiau tuo metu buvo parašytas C kalba ir dėl skirtingų Rust privalumų ir savybių projektas buvo perrašytas iš nulis.
Projekto puslapyje Aprašytos pakeitimo priežastys:
Tuo metu nusprendžiau pereiti prie Rust (mano pirmasis projektas šia kalba), kuris turėjo keletą privalumų:
- Iš naujo paleiskite projektą nuo pradžių, pasinaudodami ankstesnių klaidų pamokomis.
- Būkite šiek tiek novatoriškesni, nei tiesiog parašykite į Linux panašų branduolį C kalba. Juk tuo metu tiesiog naudokite Linux.
- Naudokite Rust kalbos saugumą, kad pasinaudotumėte kai kuriais branduolio programavimo sunkumais. Naudojant Rust rašymo sistemą, dalį atsakomybės už atminties saugumą galite perkelti iš programuotojo į kompiliatorių.
Kuriant branduolį, derinti labai sunku dėl kelių priežasčių:
- Dokumentaciją dažnai sunku rasti, o BIOS diegimas gali būti klaidingas (dažniau nei manote).
- Įkrovos metu branduolys turi visišką prieigą prie atminties ir gali rašyti ten, kur neturėtų (pavyzdžiui, savo kodą).
- Atminties nutekėjimo trikčių šalinimas nėra lengvas. Negalima naudoti tokių įrankių kaip valgrindas.
- gdb gali būti naudojamas su QEMU ir VMWare, tačiau branduolys gali elgtis kitaip, kai paleistas kitame emuliatoriuje arba virtualioje mašinoje. Be to, šie emuliatoriai gali nepalaikyti gdb (pvz., „VirtualBox“).
- Kai kurių funkcijų trūksta gdb palaikymui QEMU arba VMWare, o gdb kartais gali net sugesti
Palyginti su projekto charakteristikos, išsiskiria tuo, kad branduolys yra monolitinis ir šiuo metu palaikoma tik x86 sistemose 32 bitų režimu. Branduolio kodo bazė apima apie 49 tūkstančius eilučių ir yra vykdoma tiek naudojant realią aparatinę įrangą, tiek virtualizuotose aplinkose, tokiose kaip QEMU arba VirtualBox.
Dabartinėje „Maestro“ plėtroje, Įgyvendinta 31 proc (135 iš 437) „Linux“ sistemos skambučių. Tai yra pakanka įkelti konsolės aplinką, pagrįstą Bash ir Musl standartine C biblioteka. Be to, Maestro aplinka gali paleisti kai kurias komunalines paslaugas iš GNU coreutils rinkinio ir pagrindinio paketo iš bet kurios Unix sistemos. Šiuo metu dirbama diegiant tinklo dėklą, taip pat kuriama
tarp Galimos Maestro funkcijos išsiskiria Sekantis::
- Valdikliai PS/2 klaviatūrai ir terminalui su teksto režimu ir daliniu ANSI sekų palaikymu.
- Atminties paskirstymo sistema su virtualios atminties palaikymu.
- Užduočių planuoklis, pagrįstas apvalaus veikimo algoritmu su POSIX signalų palaikymu.
- PCI įrenginių apibrėžimas.
- IDE/PATA valdiklis.
- Ext2 failų sistema.
- Virtualiųjų failų sistemų /tmp ir /proc palaikymas.
- Galimybė prijungti FS, MBR ir GPT disko skaidinius.
- initramfs palaikymas.
- RTC valdiklis laikmačiui ir tiksliam laikui.
- Branduolio modulių įkėlimo palaikymas.
- Galimybė paleisti vykdomuosius failus ELF formatu.
Už norėtų sužinoti daugiau apie projektą, galite patikrinti detales Šioje nuorodoje. Kas domisi projekto kodu, jie turėtų žinoti, kad jis yra platinamas pagal MIT licenciją.