ToaruOS 1.14 -käyttöjärjestelmän ja Kuroko 1.1 -ohjelmointikielen julkaisu

ToaruOS 1.14 -projektin julkaisu on saatavilla, ja se kehittää Unix-tyyppisen käyttöjärjestelmän, joka on kirjoitettu tyhjästä, omalla ytimellään, käynnistyslataimella, standardilla C-kirjastolla, pakettien hallinnassa, käyttäjätilan komponenteilla ja graafisella käyttöliittymällä, jossa on yhdistetty ikkunanhallinta. Nykyisessä kehitysvaiheessa järjestelmän ominaisuudet riittävät Python 3:n ja GCC:n ajoon. Projektikoodi on kirjoitettu C-kielellä ja jaettu BSD-lisenssillä. Ladattavaksi on valmistettu 14 MB:n live-kuva, jota voi testata QEMU:ssa, VMwaressa tai VirtualBoxissa.

ToaruOS 1.14 -käyttöjärjestelmän ja Kuroko 1.1 -ohjelmointikielen julkaisu

Projekti alkoi vuonna 2010 Illinoisin yliopistossa ja kehitettiin alun perin tutkimustyönä uusien komposiittigraafisten käyttöliittymien luomisen alalla. Vuodesta 2012 lähtien kehitys on muuttunut ToaruOS-käyttöjärjestelmäksi, joka kehitettiin alunperin opiskelijaprojektina ja kasvoi sitten viikonloppuharrastukseksi, jonka hankkeen ympärille muodostunut yhteisö otti haltuun. Nykyisessä muodossaan järjestelmä on varustettu yhdistelmäikkunanhallintaohjelmalla, tukee dynaamisesti linkitettyjä suoritettavia tiedostoja ELF-muodossa, moniajoa, grafiikkaa ja verkkopinoja.

Paketti sisältää Python 3.6 -ohjelmointikielen portin, jota käytetään joidenkin ToaruOS-kohtaisten graafisten sovellusten, kuten paketinhallinnan, graafisen editorin, PDF-katseluohjelman, laskimen ja yksinkertaisten pelien kehittämiseen. ToaruOS:ään siirrettyjä kolmansien osapuolien ohjelmia ovat Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo -emulaattori, Bochs jne.

ToaruOS perustuu ytimeen, joka käyttää hybridi-moduuliarkkitehtuuria, joka yhdistää monoliittisen kehyksen ja työkalut ladattavien moduulien käyttämiseen, jotka muodostavat suurimman osan käytettävissä olevista laiteajureista, kuten levyajureista (PATA ja ATAPI), EXT2- ja ISO9660-tiedostojärjestelmistä, kehyspuskurista. , näppäimistöt, hiiret, verkkokortit (AMD PCnet FAST, Realtek RTL8139 ja Intel PRO/1000), äänisirut (Intel AC'97) sekä VirtualBox-lisäosat vierasjärjestelmiin.

Ytimen tarjoamat primitiivit sisältävät Unix-säikeet, TTY:n, virtuaalisen tiedostojärjestelmän, monisäikeistyksen, IPC:n, jaetun muistin, moniajon ja muita vakioominaisuuksia. tiedostojärjestelmänä käytetään ext2:ta. Vuorovaikutusta varten ytimen kanssa tarjotaan pseudo-FS /proc-toteutus, joka on luotu analogisesti Linuxin kanssa.

Vuoden 2021 suunnitelmiin kuuluu työskentely 64-bittisen x86-64-arkkitehtuurin parissa (toistaiseksi kokoonpanoja luodaan vain 32-bittisille x86-järjestelmille) ja tuki moniprosessorijärjestelmille (SMP). Muita tavoitteita ovat yhteensopivuuden parantaminen POSIX-spesifikaatioiden kanssa signaalinkäsittely- ja synkronointimenetelmien alalla, standardin C-kirjaston tuominen Newlib-tasolle sekä oman C-kielen kääntäjän ja kehitystyökalujen käyttöönotto.

Projektissa kehitetään myös omaa dynaamista ohjelmointikieltä, Kurokoa, joka on suunniteltu korvaamaan Python, kun kehitetään apuohjelmia ja mukautettuja sovelluksia järjestelmään. Kieli tukee tavukoodien kääntämistä ja tulkintaa, sen syntaksi muistuttaa Pythonia (se on lyhennettynä Pythonin murrena, jossa on eksplisiittinen muuttujien määritelmä) ja sen toteutus on erittäin kompakti. Tavukoodin tulkki tarjoaa roskienkerääjän ja tukee monisäikeistystä käyttämättä yleistä lukitusta. Kääntäjä ja tulkki voidaan kääntää pienen jaetun kirjaston (~500KB) muodossa, integroituna muihin ohjelmiin ja laajennettavissa C API:n kautta. ToaruOS:n lisäksi kieltä voidaan käyttää Linuxissa, macOS:ssä ja Windowsissa sekä WebAssemblya tukevissa selaimissa.

ToaruOS:n uusi julkaisu keskittyi C-standardin kirjaston ja Kuroko-ohjelmointikielen kehittämiseen. Esimerkiksi Quake-pelin valaistusparametrien oikeaan laskemiseen tarvittavat matemaattiset funktiot on lisätty libc:hen. Mahdollisuutta käynnistää VirtualBox EFI-tilassa on parannettu. Iso-kuvan kokoa on pienennetty käyttämällä RAM-levykuvan pakkausta.

Kuroko 1.1 -kielen uusi julkaisu lisää async and await -tuen, toteuttaa monisäikeistyksen, parantaa yhteensopivuutta Python 3:n kanssa, tukee useiden arvojen määrittämistä, laajentaa työkaluja kirjoituskäsittelijöille C-kielellä, lisää tuen funktioiden tyyppimerkintöille, lisää avainsanat "tuotto" ja "tuotto alkaen", os-, dis-, fileio- ja aikamoduulit on integroitu, uusia menetelmiä on otettu käyttöön str-, lista-, dict- ja tavuissa, lisätty tuki tavukoodiksi esikäännökselle, lisenssi on muutettu MIT:ksi (aiemmin oli MIT:n ja ISC:n yhdistelmä).

Lähde: opennet.ru

Lisää kommentti