Maestro képernyőkép
A rozsda kellő népszerűségre tett szert olyan mértékben, hogy az egyike lett azoknak, akiket másodlagos nyelvként integráltak a Linuxba, valamint más operációs rendszerekbe, ilyen például az Android, amely már tartalmazza a kód egy részét a Rustban, a Windowsban, amely szintén jóváhagyást adta többek között.
Rozsda robusztus nyelvnek bizonyult, és ekkora bizalmat keltett Néhány operációs rendszert még ezzel a programozási nyelvvel is létrehoztak, és hogy csak néhányat említsünk: redox, Nálunk is vannak a nulláról írt kernelek, mint pl Kerla vagy az abban használt Kernel műhold, amelyet Kína nemrégiben lőtt fel.
Ennek megemlítésének oka, hogy nemrég találkoztam egy hírrel, ami felkeltette a figyelmemet, és ennyi Bemutattak egy projektet, amelyben Rust nyelven írt kernelt fejlesztenek és amely részben kompatibilis a Linuxszal.
Ennek a projektnek a neve "Tanár" és mint említettük, egy Rust nyelven írt Unix-szerű kernel, amely a Linux kernelből származó rendszerhívások egy részét valósítja meg elegendő a szabványos munkakörnyezet kialakításához. Mint ilyen, a "Maestro" projekt nem újdonság, hiszen a fejlesztő megemlíti, hogy a projekt 2018-ban született, de akkoriban C-ben íródott és a Rust eltérő előnyei és tulajdonságai miatt a projektet átírták nulla.
A projekt oldalán A változás okait ismertetjük:
Abban a pillanatban úgy döntöttem, hogy a Rust-ra váltok (az első projektem ezen a nyelven), ami számos előnnyel járt:
- Indítsa újra a projektet az elejéről, felhasználva a korábbi hibákból levont tanulságokat.
- Legyen egy kicsit innovatívabb annál, mint hogy egy Linux-szerű kernelt írjon C nyelven. Végül is csak Linuxot használjon.
- Használja a Rust nyelv biztonságát, hogy kihasználja a kernelprogramozási nehézségeket. A Rust írási rendszer használata lehetővé teszi, hogy a memória biztonságával kapcsolatos felelősség egy részét a programozóról a fordítóra ruházza át.
A kernelfejlesztés során a hibakeresés több okból is nagyon nehéz:
- A dokumentációt gyakran nehéz megtalálni, és a BIOS-megvalósítások hibásak lehetnek (gyakrabban, mint gondolná).
- Indításkor a kernel teljes hozzáféréssel rendelkezik a memóriához, és oda tud írni, ahol nem kellene (például saját kódja).
- A memóriaszivárgások elhárítása nem egyszerű. Az olyan eszközök, mint a valgrind, nem használhatók.
- A gdb használható a QEMU-val és a VMWare-rel, de a kernel eltérően viselkedhet, ha egy másik emulátoron vagy virtuális gépen fut. Előfordulhat, hogy ezek az emulátorok nem támogatják a gdb-t (pl. VirtualBox).
- Néhány funkció hiányzik a gdb támogatásból a QEMU-ban vagy a VMWare-ben, és a gdb néha összeomolhat
Kapcsolatban A projekt jellemzőiből kitűnik, hogy a kernel monolitikus és jelenleg csak x86-os rendszereken támogatott 32 bites módban. A kernel kódbázisa mintegy 49 ezer sort fed le, és mind valódi hardveren, mind virtualizált környezetben, például QEMU vagy VirtualBox futtatható.
A „Maestro” jelenlegi fejlesztésében 31%-a valósult meg (135/437) Linux rendszerhívások. Ez elég egy Bash és a Musl szabványos C könyvtár alapú konzolkörnyezet betöltéséhez. Ezenkívül a Maestro-alapú környezet képes futtatni néhány segédprogramot a GNU coreutils programcsomagból és az alapcsomagokat bármely Unix rendszerből. Jelenleg egy hálózati verem bevezetésén folynak a munkálatok, valamint egy X11 szerver, egy csomagkezelő, egy rendszerbetöltő, egy telepítő és más operációs rendszer felépítéséhez nélkülözhetetlen segédprogramok fejlesztése.
között a A Maestro elérhető funkciói kiemelkednek a következő::
- Vezérlők PS/2 billentyűzethez és terminálhoz szöveges móddal és ANSI szekvenciák részleges támogatásával.
- Memóriakiosztási rendszer virtuális memória támogatásával.
- Feladatütemező a kör-robin algoritmuson alapuló POSIX jelek támogatásával.
- A PCI eszközök meghatározása.
- IDE/PATA vezérlő.
- Ext2 fájlrendszer.
- /tmp és /proc virtuális fájlrendszerek támogatása.
- Lehetőség FS, MBR és GPT lemezpartíciók csatlakoztatására.
- initramfs támogatás.
- RTC vezérlő az időzítőhöz és a pontos időhöz.
- Kernel modulok betöltésének támogatása.
- Futtatható fájlok ELF formátumú futtatásának képessége.
mert szeretne egy kicsit többet megtudni a projektről, ellenőrizheti a részleteket A következő linken. A projektkód iránt érdeklődőknek tudniuk kell, hogy az MIT licence alapján terjesztik.