ToaruOS 1.14 operatsioonisüsteemi ja Kuroko 1.1 programmeerimiskeele väljalase

Saadaval on ToaruOS 1.14 projekti väljalase, mis arendab nullist üles kirjutatud Unixi-laadset operatsioonisüsteemi koos oma kerneli, alglaaduri, standardse C teegi, paketihalduri, kasutajaruumi komponentide ja liitaknahalduriga graafilise liidesega. Praeguses arendusjärgus on süsteemi võimalused piisavad Python 3 ja GCC käitamiseks. Projekti kood on kirjutatud C-keeles ja seda levitatakse BSD litsentsi all. Allalaadimiseks on ette valmistatud 14 MB suurune otsepilt, mida saab testida QEMU-s, VMware-s või VirtualBoxis.

ToaruOS 1.14 operatsioonisüsteemi ja Kuroko 1.1 programmeerimiskeele väljalase

Projekt sai alguse 2010. aastal Illinoisi ülikoolis ja arenes esialgu uurimistööna uute komposiitgraafiliste liideste loomise alal. Alates 2012. aastast on arendus muutunud ToaruOS-i operatsioonisüsteemiks, mis töötati välja algselt tudengiprojektina ja kasvas seejärel nädalavahetuse hobiks, mille võttis üles projekti ümber tekkinud kogukond. Praegusel kujul on süsteem varustatud liitaknahalduriga, toetab dünaamiliselt lingitud täitmisfaile ELF-vormingus, multitegumtöötlust, graafikat ja võrgupakke.

Pakett sisaldab Python 3.6 programmeerimiskeele porti, mida kasutatakse mõne ToaruOS-i spetsiifilise graafilise rakenduse, näiteks paketihalduri, graafilise redaktori, PDF-vaaturi, kalkulaatori ja lihtsate mängude arendamiseks. ToaruOS-i teisaldatud kolmandate osapoolte programmide hulka kuuluvad Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulaator, Bochs jne.

ToaruOS põhineb kernelil, mis kasutab hübriidmoodularhitektuuri, mis ühendab endas monoliitset raamistikku ja tööriistu laaditavate moodulite kasutamiseks, mis moodustavad suurema osa saadaolevatest seadme draiveritest, nagu kettadraiverid (PATA ja ATAPI), EXT2 ja ISO9660 failisüsteemid, kaadripuhver , klaviatuurid, hiired , võrgukaardid (AMD PCnet FAST, Realtek RTL8139 ja Intel PRO/1000), helikiibid (Intel AC'97), samuti VirtualBoxi lisandmoodulid külalissüsteemidele.

Kerneli pakutavad primitiivid hõlmavad Unixi lõime, TTY-d, virtuaalset failisüsteemi, mitme lõimega töötlemist, IPC-d, ühismälu, multitegumtöötlust ja muid standardseid funktsioone. failisüsteemina kasutatakse ext2. Kerneliga suhtlemiseks pakutakse pseudo-FS /proc-rakendust, mis on loodud analoogia põhjal Linuxiga.

2021. aasta plaanid hõlmavad tööd 64-bitise x86-64 arhitektuuri kallal (praegu genereeritakse kooste ainult 32-bitiste x86 süsteemide jaoks) ja mitme protsessori süsteemide (SMP) tuge. Teised eesmärgid hõlmavad ühilduvuse parandamist POSIX-i spetsifikatsioonidega signaalitöötluse ja sünkroonimismeetodite valdkonnas, standardse C raamatukogu viimist Newlibi tasemele ning omaenda C-keele kompilaatori ja arendustööriistade juurutamist.

Projekt arendab ka oma dünaamilist programmeerimiskeelt Kuroko, mis on mõeldud Pythoni asendamiseks süsteemi utiliitide ja kohandatud rakenduste arendamisel. Keel toetab baitkoodide kompileerimist ja tõlgendamist, selle süntaks sarnaneb Pythoni omaga (see on paigutatud Pythoni lühendatud murdena koos muutujate selgesõnalise määratlusega) ja sellel on väga kompaktne teostus. Baitkoodi tõlk pakub prügikogujat ja toetab mitme lõimega töötlemist ilma globaalset lukustamist kasutamata. Kompilaatori ja tõlgi saab koostada väikese jagatud teegi kujul (~500KB), integreerituna teiste programmidega ja laiendatav läbi C API. Lisaks ToaruOS-ile saab seda keelt kasutada ka Linuxis, macOS-is, Windowsis ning töötada WebAssemblyt toetavates brauserites.

ToaruOS-i uus väljalase keskendus standardse C teegi ja Kuroko programmeerimiskeele arendamisele. Näiteks on libc-sse lisatud matemaatilised funktsioonid, mis on vajalikud valgustusparameetrite korrektseks arvutamiseks Quake mängus. Täiustatud on VirtualBoxi EFI-režiimis alglaadimise võimalust. Iso-kujutise suurust on vähendatud mäluketta kujutise tihendamisega.

Kuroko 1.1 keele uus väljalase lisab asünkroonimise ja ootamise toe, rakendab mitme lõime, parandab ühilduvust Python 3-ga, toetab mitme väärtuse määramist, laiendab C-keeles kirjutamise töötlejate tööriistu, lisab funktsioonide tüübimärkuste toe, lisab märksõnad “tootlus” ja “tootlus alates”, integreeritud on os, dis, fileio ja ajamoodulid, rakendatud uusi meetodeid str, list, dict ja baitides, lisatud on baitkoodiks eelkompileerimise tugi, litsents on muudeti MIT-ks (varem oli MIT ja ISC kombinatsioon).

Allikas: opennet.ru

Lisa kommentaar