Operētājsistēmas ToaruOS 1.14 un Kuroko 1.1 programmēšanas valodas izlaišana

Ir pieejams ToaruOS 1.14 projekta izlaidums, kas izstrādā Unix līdzīgu operētājsistēmu, kas rakstīta no nulles ar savu kodolu, sāknēšanas ielādētāju, standarta C bibliotēku, pakotņu pārvaldnieku, lietotāja telpas komponentiem un grafisko interfeisu ar salikto logu pārvaldnieku. Pašreizējā izstrādes stadijā sistēmas iespējas ir pietiekamas, lai palaistu Python 3 un GCC. Projekta kods ir rakstīts C valodā un tiek izplatīts saskaņā ar BSD licenci. Lejupielādei sagatavots 14 MB liels tiešraides attēls, kuru iespējams testēt QEMU, VMware vai VirtualBox.

Operētājsistēmas ToaruOS 1.14 un Kuroko 1.1 programmēšanas valodas izlaišana

Projekts aizsākās 2010. gadā Ilinoisas Universitātē un sākotnēji attīstījās kā pētniecisks darbs jaunu kompozītmateriālu grafisko saskarņu izveides jomā. Kopš 2012. gada izstrāde ir pārveidota par ToaruOS operētājsistēmu, kas sākotnēji tika izstrādāta kā studentu projekts, bet pēc tam kļuva par nedēļas nogales hobiju, ko izvēlējās kopiena, kas veidojās ap projektu. Pašreizējā formā sistēma ir aprīkota ar saliktu logu pārvaldnieku, atbalsta dinamiski saistītus izpildāmos failus ELF formātā, daudzuzdevumu veikšanu, grafiku un tīkla stekus.

Paketē ir iekļauts Python 3.6 programmēšanas valodas ports, kas tiek izmantots dažu ToaruOS specifisku grafisko lietojumprogrammu izstrādē, piemēram, pakotņu pārvaldnieks, grafiskais redaktors, PDF skatītājs, kalkulators un vienkāršas spēles. Uz ToaruOS pārnestās trešās puses programmas ietver Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulatoru, Bochs utt.

ToaruOS pamatā ir kodols, kas izmanto hibrīda moduļu arhitektūru, kas apvieno monolītu sistēmu un rīkus ielādējamo moduļu izmantošanai, kas veido lielāko daļu pieejamo ierīču draiveru, piemēram, diska draiverus (PATA un ATAPI), EXT2 un ISO9660 failu sistēmas, kadru buferi. , klaviatūras, peles , tīkla kartes (AMD PCnet FAST, Realtek RTL8139 un Intel PRO/1000), skaņas mikroshēmas (Intel AC'97), kā arī VirtualBox papildinājumi viesu sistēmām.

Kodola piedāvātie primitīvi ietver Unix pavedienus, TTY, virtuālo failu sistēmu, daudzpavedienu, IPC, koplietojamo atmiņu, daudzuzdevumu veikšanu un citas standarta funkcijas. ext2 tiek izmantots kā failu sistēma. Lai mijiedarbotos ar kodolu, tiek nodrošināta pseido-FS /proc ieviešana, kas izveidota pēc analoģijas ar Linux.

2021. gada plānos ietilpst darbs pie 64 bitu x86-64 arhitektūras (pagaidām komplekti tiek ģenerēti tikai 32 bitu x86 sistēmām) un atbalsts daudzprocesoru sistēmām (SMP). Citi mērķi ietver savietojamības uzlabošanu ar POSIX specifikācijām signālu apstrādes un sinhronizācijas metožu jomā, standarta C bibliotēkas nogādāšanu Newlib līmenī un sava C valodas kompilatora un izstrādes rīku ieviešanu.

Projekts arī izstrādā savu dinamisko programmēšanas valodu Kuroko, kas paredzēta Python aizstāšanai, izstrādājot sistēmai utilītas un pielāgotas lietojumprogrammas. Valoda atbalsta baitkoda kompilāciju un interpretāciju, tās sintakse atgādina Python (tā ir novietota kā saīsināts Python dialekts ar skaidru mainīgo definīciju), un tai ir ļoti kompakta ieviešana. Baitkoda tulks nodrošina atkritumu savācēju un atbalsta daudzpavedienu izmantošanu, neizmantojot globālo bloķēšanu. Kompilatoru un tulku var apkopot nelielas koplietojamās bibliotēkas formā (~500 KB), integrētu ar citām programmām un paplašināmu, izmantojot C API. Papildus ToaruOS valodu var izmantot operētājsistēmās Linux, macOS, Windows un palaist pārlūkprogrammās, kas atbalsta WebAssembly.

Jaunais ToaruOS laidiens koncentrējās uz standarta C bibliotēkas un Kuroko programmēšanas valodas izstrādi. Piemēram, libc ir pievienotas matemātiskās funkcijas, kas nepieciešamas pareizai apgaismojuma parametru aprēķināšanai Quake spēlē. Ir uzlabota iespēja ielādēt VirtualBox EFI režīmā. Iso attēla izmērs ir samazināts, izmantojot RAM diska attēla saspiešanu.

Jaunais Kuroko 1.1 valodas laidiens pievieno atbalstu asinhronizācijai un gaidīšanai, ievieš daudzpavedienu izveidi, uzlabo saderību ar Python 3, atbalsta vairāku vērtību piešķiršanu, paplašina rīkus rakstīšanas apstrādātājiem C valodā, pievieno funkciju tipa anotāciju atbalstu, pievieno Atslēgvārdi “ienesums” un “raža no”, ir integrēti os, dis, fileio un laika moduļi, ieviestas jaunas metodes str, list, dict un baitos, ir pievienots atbalsts priekškompilācijai baitkodā, licence ir tika mainīts uz MIT (iepriekš bija MIT un ISC kombinācija).

Avots: opennet.ru

Pievieno komentāru