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

Puolentoista vuoden kehitystyön jälkeen Rust-kielellä ja mikroydinkonseptilla kehitetyn Redox 0.7 -käyttöjärjestelmän julkaisu on julkaistu. Projektin kehitystyöt jaetaan ilmaisella MIT-lisenssillä. Redox OS:n testaamiseen tarjotaan asennusta ja 75 MB:n live-kuvia. Kokoonpanot on luotu x86_64-arkkitehtuurille, ja ne ovat saatavilla järjestelmille, joissa on UEFI ja BIOS.

Uutta julkaisua valmisteltaessa keskityttiin varmistamaan, että se toimii oikealla laitteistolla. Tärkeimmät innovaatiot:

  • Käynnistyslatain on kirjoitettu kokonaan uudelleen, jossa BIOS- ja UEFI-järjestelmien käynnistyskoodi on yhtenäistetty ja kirjoitettu pääasiassa ruosteella. Käynnistyslataimen vaihtaminen on laajentanut merkittävästi tuettujen laitteiden valikoimaa.
  • Virheenkorjausten lisäksi ytimessä on tehty työtä suorituskyvyn parantamiseksi ja laitteistotuen laajentamiseksi. CPU-kohtaiset muuttujat on muunnettu GS-rekisterin käyttöön. Kaiken fyysisen muistin heijastus (kartoitus) tarjotaan, rekursiivisten muistisivujen käyttö lopetetaan. Inline inserttien kokoonpanokoodi on kirjoitettu uudelleen yhteensopivuuden parantamiseksi tulevien kääntäjien julkaisujen kanssa.
  • Lisätty alustava tuki AArch64-arkkitehtuurille.
  • Kaikki tiedostopolut on siirretty käsittelemään UTF-8-koodauksella.
  • ACPI AML (ACPI Machine Language) Specification - uefi.org -koodi työskentelyä varten on siirretty ytimestä käyttäjätilassa ajettavaan acpid-taustaprosessiin.
  • Initfs-sisältö on siirretty uuteen tiedostoon, mikä helpottaa pakettien luomista.
  • RedoxFS-tiedostojärjestelmä on kirjoitettu uudelleen ja siirtynyt käyttämään CoW (Copy-on-Write) -mekanismia, jossa muutokset eivät korvaa tietoja, vaan ne tallennetaan uuteen paikkaan, mikä on parantanut luotettavuutta merkittävästi. RedoxFS:n uusia ominaisuuksia ovat tuki tapahtumapäivityksille, tietojen salaus AES-algoritmilla sekä tietojen ja metatietojen todennus digitaalisilla allekirjoituksilla. FS-koodin jakaminen järjestelmässä ja käynnistyslataimessa varmistetaan.
  • Projektin kehittämän standardin C-kirjaston Relibc, joka pystyy toimimaan paitsi Redoxissa myös Linux-ytimeen perustuvissa jakeluissa, parantaminen on jatkunut. Muutokset helpottivat eri ohjelmien siirtämistä Redoxiin ja ratkaisivat monien C-kielellä kirjoitettujen ohjelmien ja kirjastojen ongelmia.
  • Rustc-kääntäjästä on valmistettu versio, joka voi toimia Redoxissa. Jäljellä oleviin tehtäviin kuuluu suorituskyvyn optimointi ja rahtipakettien hallinnan mukauttaminen toimimaan Redox-ympäristössä.

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

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ä.

Lähde: opennet.ru

Lisää kommentti