Eldono de ToaruOS 1.14 operaciumo kaj Kuroko 1.1 programlingvo

La eldono de la projekto ToaruOS 1.14 disponeblas, disvolvante Unikso-similan operaciumon skribitan de nulo kun sia propra kerno, ekŝargilo, norma C-biblioteko, pakaĵadministrilo, uzantspacaj komponantoj kaj grafika interfaco kun kunmetita fenestromanaĝero. En la nuna stadio de evoluo, la kapabloj de la sistemo sufiĉas por ruli Python 3 kaj GCC. La projektkodo estas skribita en C kaj distribuita sub la permesilo BSD. Viva bildo de 14 MB en grandeco estis preparita por elŝuto, kiu povas esti provita en QEMU, VMware aŭ VirtualBox.

Eldono de ToaruOS 1.14 operaciumo kaj Kuroko 1.1 programlingvo

La projekto komenciĝis en 2010 ĉe la Universitato de Ilinojso kaj komence evoluis kiel esplorlaboro en la kampo de kreado de novaj kunmetitaj grafikaj interfacoj. Ekde 2012, la evoluo transformiĝis en la operaciumon ToaruOS, kiu estis evoluigita komence kiel studenta projekto, kaj tiam kreskis en semajnfina ŝatokupo, reprenita de la komunumo kiu formiĝis ĉirkaŭ la projekto. En ĝia nuna formo, la sistemo estas ekipita per kunmetita fenestromanaĝero, subtenas dinamike ligitajn ruleblajn dosierojn en ELF-formato, multitasking, grafikaĵoj kaj retaj stakoj.

La pako inkluzivas havenon de la programlingvo Python 3.6, kiu estas uzata en la disvolviĝo de iuj grafikaj aplikaĵoj specifaj por ToaruOS, kiel pakaĵmanaĝero, grafika redaktilo, PDF-spektilo, kalkulilo kaj simplaj ludoj. Triapartaj programoj adaptitaj al ToaruOS inkluzivas Vim, GCC, Binutils, FreeType, MuPDF, SDL, Kairo, Doom, Quake, Super Nintendo-emulilon, Bochs, ktp.

ToaruOS baziĝas sur kerno, kiu uzas hibridan modulan arkitekturon, kiu kombinas monolitan kadron kaj ilojn por uzi ŝarĝeblajn modulojn, kiuj formas la plimulton de disponeblaj aparataj peliloj, kiel diskŝoforoj (PATA kaj ATAPI), dosiersistemoj EXT2 kaj ISO9660, framebuffer. , klavaroj, musoj , retkartoj (AMD PCnet FAST, Realtek RTL8139 kaj Intel PRO/1000), sonaj blatoj (Intel AC'97), same kiel VirtualBox-aldonaĵoj por gastsistemoj.

La primitivaĵoj provizitaj de la kerno inkluzivas Unikso-fadenojn, TTY, virtualan dosiersistemon, multifadenadon, IPC, komunan memoron, multitasking kaj aliajn normajn funkciojn. ext2 estas uzata kiel la dosiersistemo. Por interagi kun la kerno, pseŭdo-FS /proc efektivigo estas disponigita, kreita per analogeco kun Linukso.

Planoj por 2021 inkluzivas laboron pri la 64-bita x86-64-arkitekturo (nuntempe, asembleoj estas generitaj nur por 32-bita x86-sistemoj) kaj subtenon por multiprocesoraj sistemoj (SMP). Aliaj celoj inkludas plibonigi kongruecon kun POSIX-specifoj en la kampo de signal-prilaborado kaj sinkronigaj metodoj, alportante la norman C-bibliotekon al la Newlib-nivelo, kaj efektivigante sian propran C-lingvan kompililon kaj evoluilojn.

La projekto ankaŭ disvolvas sian propran dinamikan programlingvon, Kuroko, dizajnitan por anstataŭigi Python dum disvolvado de utilecoj kaj kutimaj aplikoj por la sistemo. La lingvo subtenas bajtkodan kompilon kaj interpreton, ĝia sintakso similas al Python (ĝi estas poziciigita kiel mallongigita dialekto de Python kun eksplicita difino de variabloj) kaj havas tre kompaktan efektivigon. La bajtkoda interpretisto disponigas rubkolektilon kaj subtenas multfadenadon sen uzado de tutmonda ŝlosado. La kompililo kaj interpretisto povas esti kompilitaj en la formo de malgranda komuna biblioteko (~500KB), integrita kun aliaj programoj kaj etendebla tra la C API. Krom ToaruOS, la lingvo povas esti uzata en Linukso, macOS, Vindozo kaj funkcii en retumiloj kiuj subtenas WebAssembly.

La nova eldono de ToaruOS temigis la evoluon de la norma C-biblioteko kaj la programlingvo Kuroko. Ekzemple, matematikaj funkcioj necesaj por ĝusta kalkulo de lumparametroj en la Quake-ludo estis aldonitaj al libc. La kapablo lanĉi en VirtualBox en EFI-reĝimo estis plibonigita. La grandeco de la iso-bildo estis reduktita uzante kunpremadon de la ramdiska bildo.

La nova eldono de la lingvo Kuroko 1.1 aldonas subtenon por nesinkronigado kaj atendado, efektivigas multifadenadon, plibonigas kongruon kun Python 3, subtenas multoblajn valorajn taskojn, pligrandigas la ilojn por skribmanieroj en la C-lingvo, aldonas subtenon por tipaj komentarioj por funkcioj, aldonas la ŝlosilvortoj "rendimento" kaj "rendimento de", la os, dis, fileio, kaj tempomoduloj estis integritaj, novaj metodoj estis efektivigitaj en str, listo, dict kaj bajtoj, subteno por antaŭkompilo en bajtkodon estis aldonita, la permesilo estis estis ŝanĝita al MIT (antaŭe estis kombinaĵo de MIT kaj ISC).

fonto: opennet.ru

Aldoni komenton