Rust-kielellä kirjoitetun Redox OS 0.8 -käyttöjärjestelmän julkaisu

Rust-kielellä ja mikroydinkonseptilla kehitetyn Redox 0.8 -käyttöjärjestelmän julkaisu on julkaistu. Projektin kehitystyöt jaetaan ilmaisella MIT-lisenssillä. Redox-käyttöjärjestelmän testaamiseen tarjotaan 768 Mt:n demoversioita, kuvia perusgraafisella ympäristöllä (256 Mt) ja konsolityökaluja palvelinjärjestelmille (256 Mt). Kokoonpanot on luotu x86_64-arkkitehtuurille, ja ne ovat saatavilla järjestelmille, joissa on UEFI ja BIOS. Demokuva sisältää Orbital-graafisen ympäristön lisäksi DOSBox-emulaattorin, valikoiman pelejä (DOOM, Neverball, Neverputt, sopwith, syobonaction), opetusohjelmia, rodioplay-musiikkisoittimen ja Sodium-tekstieditorin.

Käyttöjärjestelmä kehittyy Unix-filosofian mukaisesti ja lainaa ideoita SeL4:stä, Minixistä ja Plan 9:stä. Redox käyttää mikroydinkonseptia, jossa ydintasolla tarjotaan vain prosessien välinen kommunikaatio ja resurssien hallinta ja kaikki muu toiminnallisuus on sijoitettu kirjastoissa, joita voidaan käyttää sekä ytimen että käyttäjän sovelluksissa. Kaikki ajurit toimivat käyttäjätilassa eristetyissä hiekkalaatikkoympäristöissä. Yhteensopivuuden vuoksi olemassa olevien sovellusten kanssa toimitetaan erityinen POSIX-kerros, joka mahdollistaa useiden ohjelmien suorittamisen ilman siirtämistä.

Järjestelmä noudattaa periaatetta "kaikki on URL-osoite". Esimerkiksi URL-osoitetta “log://” voidaan käyttää kirjaamiseen, “bus://”-osoitetta prosessien väliseen viestintään, “tcp://”-osoitetta verkkoviestintään ja niin edelleen. Moduulit, jotka voidaan toteuttaa ohjaimina, ytimen laajennuksina ja mukautettuina sovelluksina, voivat rekisteröidä omia URL-käsittelijöitä. Voit esimerkiksi kirjoittaa I/O-käyttömoduulin ja sitoa sen "port_io://" URL-osoitteeseen, jonka jälkeen voit käyttää sitä portin 60 avaamiseen avaamalla URL-osoitteen "port_io://60".

Redoxin käyttäjäympäristö on rakennettu Orbitalin oman graafisen kuoren (jota ei pidä sekoittaa toiseen Orbital-kuoreen, joka käyttää Qt:tä ja Waylandia) ja OrbTk-työkalusarjan ympärille, joka tarjoaa Flutter-, React- ja Redux-sovellusliittymän kaltaisen API:n. Netsurfia käytetään verkkoselaimena. Projekti kehittää myös oman paketinhallinnan, joukon vakioapuohjelmia (binutils, coreutils, netutils, extrautils), ion-komentotulkin, relibc-standardin C-kirjaston, natriumvim-tyyppisen tekstieditorin, verkkopinon ja tiedoston. järjestelmä. Kokoonpano on asetettu Toml-kielellä.

Uusi julkaisu jatkaa työskentelyä todellisen laitteiston työskentelyn varmistamiseksi. x86_64-arkkitehtuurin lisäksi on lisätty mahdollisuus työskennellä 32-bittisissä x86-järjestelmissä (i686, Pentium II ja uudemmat). Siirtyminen CPU:lle ARM64 (aarch64) on käynnissä. Aidolla ARM-laitteistolla työskentelemistä ei vielä tueta, mutta se on mahdollista käynnistää emuloimalla ARM64:ää QEMU:ssa. Oletusarvoisesti äänialijärjestelmä on käytössä ja alustava tuki usean näytön kokoonpanoille tarjotaan (järjestelmissä, joissa on UEFI-kehyspuskuri). Redox OS:n tukemat laitteet sisältävät AC'97- ja Intel HD Audio -äänipiirit, grafiikan ulostulon VESA BIOSin tai UEFI GOP API:n kautta, Ethernetin (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), syöttölaitteet (näppäimistöt, hiiret, kosketuslevyt) , SATA (AHCI, IDE) ja NVMe. Wi-Fi- ja USB-tukea ei ole vielä saatettu valmiiksi (USB toimii vain QEMU:ssa).

Muita innovaatioita:

  • Yhdistetyt käynnistyskuvat BIOS- ja EFI-järjestelmille.
  • Klooni- ja exec-järjestelmäkutsujen toteutus siirrettiin käyttäjätilaan.
  • Yksinkertaistettu latausprosessi. Bootstrap-ohjelma on otettu käyttöön, jota ajaa ydin ja joka mahdollistaa ELF-tiedostojen lisälatauksen, kuten aloitusprosessin.
  • Lisätty eskaloitu ohjelma, jotta setuid-ohjelmat, kuten sudo, voivat toimia.
  • Taustaprosessien luomisen ja asennuksen yksinkertaistamiseksi on ehdotettu redox-daemon crate -pakettia.
  • Rakennusjärjestelmä on suunniteltu uudelleen, jolloin samassa lähdepuussa on mahdollista rakentaa eri arkkitehtuureille. Eri kokoonpanojen kokoamisen yksinkertaistamiseksi ehdotetaan build.sh-komentosarjaa. Lisätty tuki rakentamiseen podman-työkalupakin avulla. Ytimen, käynnistyslataimen ja initfs:n kokoonpano on yhtenäistetty muiden pakettien kanssa.
  • Lisätty esittelykonfiguraatio sellaisten esimerkkiohjelmien rakentamiseen, jotka eivät sisälly peruskäynnistyskuvaan graafisella ympäristöllä.
  • Ohjelmoidun äänenvoimakkuuden säädön tuki on lisätty audio-audio-alijärjestelmään.
  • Lisätty ohjain AC'97:ään perustuville äänisiruille. Parannettu ohjain Intel HD Audio -siruille.
  • Lisätty ajuri IDE-ohjaimille.
  • Parannettu tuki NVMe-asemille.
  • Parannetut PCI-, PS/2-, RTL8168-, USB HID-, VESA-ohjaimet.
  • Asennusprosessin organisaatiota on suunniteltu uudelleen: käynnistyslatain, bootstrap, ydin ja initfs sijaitsevat nyt /boot-hakemistossa.
  • Ydin on yksinkertaistanut työskentelyä muistin kanssa, lisännyt mahdollisuuden käsitellä osoiteavaruuksia käyttäjätasolta.
  • Orbital-graafiseen kuoreen on lisätty tuki usean näytön järjestelmille, hiiren kursorin käsittelyä on parannettu ja äänenvoimakkuuden muuttamiseksi on lisätty ilmaisin. Valikossa on mahdollisuus jakaa sovellukset luokkiin.

Lähde: opennet.ru

Lisää kommentti