Pamja e ekranit Maestro
Rust ka fituar mjaft popullaritet në një shkallë të tillë që është bërë një nga ato të zgjedhura për t'u integruar si gjuhë dytësore në Linux, si dhe në sisteme të tjera operative, siç është rasti i Android, i cili tashmë ka një pjesë të kodit në Rust, Windows që gjithashtu ka dhënë miratimin ndër të tjera.
Ndryshk ka provuar të jetë një gjuhë e fortë dhe ka gjeneruar një besim të tillë Disa sisteme operative madje janë krijuar me këtë gjuhë programimi dhe vetëm për të përmendur disa kemi: Redoks, Kemi edhe bërthama të shkruara nga e para si p.sh Kerla ose bërthama e përdorur në sateliti që Kina lëshoi së fundmi.
Arsyeja për ta përmendur këtë është se kohët e fundit kam hasur në një lajm që më tërhoqi vëmendjen dhe ai është ai U prezantua një projekt në të cilin zhvillohet një kernel i shkruar në Rust dhe i cili është pjesërisht i pajtueshëm me Linux.
Emri i këtij projekti është "Mësues" dhe siç u përmend, është një kernel i ngjashëm me Unix-in i shkruar në Rust duke zbatuar një nëngrup thirrjesh sistemi nga kerneli Linux të mjaftueshme për të krijuar mjedise standarde të punës. Si i tillë, projekti "Maestro" nuk është diçka e re, pasi zhvilluesi përmend se projekti ka lindur në vitin 2018, por në atë kohë ishte shkruar në C dhe për shkak të përfitimeve dhe karakteristikave të ndryshme të Rust, projekti u rishkrua nga zero.
Në faqen e projektit Arsyet e ndryshimit janë përshkruar:
Në atë moment vendosa të kaloj në Rust (projekti im i parë në këtë gjuhë), i cili përfaqësonte disa avantazhe:
- Rinisni projektin nga fillimi, duke përdorur mësimet e nxjerra nga gabimet e mëparshme.
- Bëhuni pak më inovativ sesa thjesht të shkruani një kernel të ngjashëm me Linux në C. Në fund të fundit, thjesht përdorni Linux në atë kohë.
- Përdorni sigurinë e gjuhës Rust për të përfituar nga disa vështirësi në programimin e kernelit. Përdorimi i sistemit të shkrimit Rust ju lejon të transferoni një pjesë të përgjegjësisë për sigurinë e kujtesës nga programuesi te përpiluesi.
Në zhvillimin e kernelit, korrigjimi i gabimeve është shumë i vështirë për disa arsye:
- Dokumentacioni është shpesh i vështirë për t'u gjetur dhe zbatimet e BIOS-it mund të jenë me probleme (më shpesh nga sa mendoni).
- Në boot, kerneli ka akses të plotë në memorie dhe mund të shkruajë aty ku nuk duhet (për shembull kodin e tij).
- Zgjidhja e problemeve të rrjedhjeve të kujtesës nuk është e lehtë. Mjetet si valgrind nuk mund të përdoren.
- gdb mund të përdoret me QEMU dhe VMWare, por kerneli mund të sillet ndryshe kur ekzekutohet në një emulator ose makinë virtuale të ndryshme. Gjithashtu, këta emulatorë mund të mos mbështesin gdb (p.sh. VirtualBox).
- Disa veçori mungojnë nga mbështetja e gdb në QEMU ose VMWare dhe gdb madje mund të rrëzohet ndonjëherë
Ne lidhje me karakteristikat e projektit, bie në sy se Kerneli është monolit dhe aktualisht mbështetet vetëm në sistemet x86 në modalitetin 32-bit. Baza e kodit të kernelit mbulon rreth 49 mijë rreshta, duke qenë të ekzekutueshme si në harduer real ashtu edhe në mjedise të virtualizuara, si QEMU ose VirtualBox.
Në zhvillimin aktual të "Maestro", 31% janë zbatuar (135 nga 437) e thirrjeve të sistemit Linux. Kjo është mjafton për të ngarkuar një mjedis konsolë të bazuar në Bash dhe bibliotekën standarde C Musl. Për më tepër, mjedisi i bazuar në Maestro mund të ekzekutojë disa programe ndihmëse nga paketa GNU coreutils dhe paketim bazë nga çdo sistem Unix. Aktualisht, po punohet për zbatimin e një rrjeti rrjeti dhe po punohet gjithashtu për zhvillimin e një
Ndërmjet Veçoritë e disponueshme të Maestro-s dallohen në vijim::
- Kontrollorët për tastierën dhe terminalin PS/2 me modalitet teksti dhe mbështetje të pjesshme për sekuencat ANSI.
- Sistemi i alokimit të memories me mbështetje për memorie virtuale.
- Programuesi i detyrave i bazuar në algoritmin e rrumbullakët me mbështetje për sinjalet POSIX.
- Përkufizimi i pajisjeve PCI.
- Kontrolluesi IDE/PATA.
- Sistemi i skedarëve Ext2.
- Mbështetje për sistemet e skedarëve virtualë /tmp dhe /proc.
- Aftësia për të montuar ndarje të diskut FS, MBR dhe GPT.
- mbështetje initramfs.
- Kontrollues RTC për kohëmatësin dhe kohën e saktë.
- Mbështetje për ngarkimin e moduleve të kernelit.
- Aftësia për të ekzekutuar skedarë të ekzekutueshëm në formatin ELF.
Për të interesuar për të mësuar pak më shumë rreth projektit, mund të kontrolloni detajet Në lidhjen vijuese. Për sa u përket atyre që janë të interesuar për kodin e projektit, duhet ta dinë se është shpërndarë sipas licencës MIT.