Maestro-kuvakaappaus
Ruoste on saavuttanut tarpeeksi suosiota siinä määrin, että siitä on tullut yksi niistä, jotka on valittu integroitavaksi toissijaiseksi kieleksi Linuxissa ja muissa käyttöjärjestelmissä, kuten Androidissa, jolla on jo osa koodista Rustissa, Windowsissa, joka myös on antanut hyväksynnän mm.
Ruoste on osoittautunut vankaksi kieleksi ja on luonut tällaista luottamusta Jotkut käyttöjärjestelmät on jopa luotu tällä ohjelmointikielellä, ja meillä on vain muutamia mainitakseni: Redox, Meillä on myös tyhjästä kirjoitettuja ytimiä, kuten Kerla tai siinä käytetty ydin Kiina äskettäin laukaisi satelliitti.
Syy tämän mainitsemiseen on se, että törmäsin äskettäin uutiseen, joka kiinnitti huomioni ja siinä se Esiteltiin projekti, jossa kehitetään Rust-kielellä kirjoitettua ydintä ja joka on osittain yhteensopiva Linuxin kanssa.
Tämän projektin nimi on "Opettaja" ja kuten mainittiin, on Unix-tyyppinen ydin, joka on kirjoitettu Rustilla ja toteuttaa osajoukon järjestelmäkutsuja Linux-ytimestä riittää luomaan vakiotyöympäristöt. Sinänsä "Maestro" -projekti ei ole mikään uusi, sillä kehittäjä mainitsee projektin syntyneen vuonna 2018, mutta silloin se kirjoitettiin C:llä ja Rustin erilaisten etujen ja ominaisuuksien vuoksi projekti kirjoitettiin uudelleen nolla.
Projektin sivulla Muutoksen syyt on kuvattu:
Sillä hetkellä päätin vaihtaa Rustiin (ensimmäinen projektini tällä kielellä), jolla oli useita etuja:
- Aloita projekti uudelleen alusta käyttämällä aiemmista virheistä opittuja asioita.
- Ole hieman innovatiivisempi kuin vain kirjoittaa Linuxin kaltainen ydin C-kielellä. Käytä vain Linuxia silloin.
- Käytä Rust-kielen turvallisuutta hyödyntääksesi joitain ytimen ohjelmointiongelmia. Rust-kirjoitusjärjestelmän avulla voit siirtää osan muistin turvallisuudesta ohjelmoijalta kääntäjälle.
Ytimen kehityksessä virheenkorjaus on erittäin vaikeaa useista syistä:
- Dokumentaatiota on usein vaikea löytää ja BIOS-toteutukset voivat olla bugisia (useammin kuin uskotkaan).
- Käynnistyksen yhteydessä ytimellä on täysi pääsy muistiin ja se voi kirjoittaa sinne, missä sen ei pitäisi (esimerkiksi oma koodi).
- Muistivuotojen vianmääritys ei ole helppoa. Valgrindin kaltaisia työkaluja ei voida käyttää.
- gdb:tä voidaan käyttää QEMU:n ja VMWaren kanssa, mutta ydin voi käyttäytyä eri tavalla, kun sitä ajetaan eri emulaattorissa tai virtuaalikoneessa. Nämä emulaattorit eivät myöskään välttämättä tue gdb:tä (esim. VirtualBox).
- Jotkut ominaisuudet puuttuvat QEMU:n tai VMWaren gdb-tuesta ja gdb saattaa jopa kaatua joskus
Suhteessa Hankkeen ominaisuuksien perusteella se erottuu siitä, että ydin on monoliittinen ja sitä tuetaan tällä hetkellä vain x86-järjestelmissä 32-bittisessä tilassa. Ytimen koodikanta kattaa noin 49 tuhatta riviä, ja se on suoritettavissa sekä todellisessa laitteistossa että virtualisoiduissa ympäristöissä, kuten QEMU tai VirtualBox.
"Maestro":n nykyisessä kehityksessä 31 prosenttia on toteutettu (135/437) Linux-järjestelmäkutsuista. Tämä on riittää lataamaan Bashiin ja Muslin standardi C-kirjastoon perustuvan konsoliympäristön. Lisäksi Maestro-pohjainen ympäristö voi ajaa joitain apuohjelmia GNU coreutils -ohjelmistopaketista ja peruspaketteja mistä tahansa Unix-järjestelmästä. Parhaillaan työstetään verkkopinon käyttöönottoa ja kehitetään myös
keskuudessa Maestron käytettävissä olevat ominaisuudet erottuvat joukosta seuraavat::
- Ohjaimet PS/2-näppäimistölle ja -päätteelle, joissa on tekstitila ja osittainen tuki ANSI-sarjoille.
- Muistinvarausjärjestelmä, joka tukee virtuaalimuistia.
- Tehtävien ajoitus perustuu round-robin-algoritmiin ja tukee POSIX-signaaleja.
- PCI-laitteiden määritelmä.
- IDE/PATA-ohjain.
- Ext2 tiedostojärjestelmä.
- Tuki virtuaalisille tiedostojärjestelmille /tmp ja /proc.
- Mahdollisuus asentaa FS-, MBR- ja GPT-levyosiot.
- initramfs-tuki.
- RTC-ohjain ajastimelle ja tarkalle ajalle.
- Tuki ytimen moduulien lataamiseen.
- Mahdollisuus suorittaa suoritettavia tiedostoja ELF-muodossa.
Varten kiinnostunut oppimaan hieman lisää projektista, voit tarkistaa yksityiskohdat Seuraavassa linkissä. Mitä tulee projektikoodista kiinnostuneiden, heidän pitäisi tietää, että se on jaetaan MIT-lisenssillä.