ToaruOS 1.14 sistema eragilea eta Kuroko 1.1 programazio lengoaia kaleratzea

ToaruOS 1.14 proiektuaren oharra eskuragarri dago, hutsetik idatzitako Unix antzeko sistema eragile bat garatuz, bere nukleoarekin, abio-kargagailuarekin, C liburutegi estandarrarekin, paketeen kudeatzailea, erabiltzailearen espazioaren osagaiekin eta leiho-kudeatzaile konposatu batekin interfaze grafiko bat garatuz. Gaur egungo garapen-fasean, sistemaren gaitasunak nahikoak dira Python 3 eta GCC exekutatzeko. Proiektuaren kodea C-n idatzita dago eta BSD lizentziapean banatzen da. 14 MB-ko tamainako zuzeneko irudia deskargatzeko prestatu da, QEMU, VMware edo VirtualBox-en probatu daitekeena.

ToaruOS 1.14 sistema eragilea eta Kuroko 1.1 programazio lengoaia kaleratzea

Proiektua 2010ean hasi zen Illinoiseko Unibertsitatean eta hasiera batean interfaze grafiko konposatu berriak sortzeko ikerketa lan gisa garatu zen. 2012az geroztik, garapena ToaruOS sistema eragilera bihurtu da, hasieran ikasleen proiektu gisa garatu zena, eta gero asteburuko zaletasun bihurtu zen, proiektuaren inguruan sortu zen komunitateak jasotakoa. Gaur egungo forman, sistema leiho-kudeatzaile konposatu batekin hornituta dago, dinamikoki lotuta dauden fitxategi exekutagarriak ELF formatuan, multiataza, grafikoak eta sare-pilak onartzen ditu.

Paketeak Python 3.6 programazio-lengoaiaren ataka bat du, ToaruOS-en berariazko aplikazio grafiko batzuen garapenean erabiltzen dena, hala nola paketeen kudeatzailea, editore grafikoa, PDF ikuslea, kalkulagailua eta joko sinpleak. ToaruOSera eramandako hirugarrenen programak Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emuladorea, Bochs, etab.

ToaruOS arkitektura modular hibrido bat erabiltzen duen nukleo batean oinarritzen da, marko monolitikoa eta modulu kargagarriak erabiltzeko tresnak konbinatzen dituena, gailu erabilgarri dauden gailuen kontrolatzaile gehienak osatzen dituztenak, hala nola disko kontrolatzaileak (PATA eta ATAPI), EXT2 eta ISO9660 fitxategi sistemak, framebuffer. , teklatuak, saguak , sare-txartelak (AMD PCnet FAST, Realtek RTL8139 eta Intel PRO/1000), soinu-txipak (Intel AC'97), baita sistema gonbidatuentzako VirtualBox gehigarriak ere.

Nukleoak eskaintzen dituen primitiboen artean Unix hariak, TTY, fitxategi sistema birtuala, multithreading, IPC, memoria partekatua, multiataza eta beste ezaugarri estandar batzuk daude. ext2 fitxategi-sistema gisa erabiltzen da. Nukleoarekin elkarreragiteko, pseudo-FS /proc inplementazioa eskaintzen da, Linux-ekin analogiaz sortua.

2021erako planen artean, 64 biteko x86-64 arkitekturako lana (oraingoz, 32 biteko x86 sistemetarako soilik muntaiak sortzen ari dira) eta prozesadore anitzeko sistemetarako (SMP) euskarria dira. Beste helburu batzuk honako hauek dira: seinaleak prozesatzeko eta sinkronizatzeko metodoen alorrean POSIX zehaztapenekin bateragarritasuna hobetzea, C liburutegi estandarra Newlib mailara eramatea eta C lengoaiaren konpilatzaile eta garapen tresna propioak ezartzea.

Proiektua bere programazio-lengoaia dinamikoa garatzen ari da, Kuroko, Python ordezkatzeko diseinatua sistemarako utilitateak eta aplikazio pertsonalizatuak garatzerakoan. Hizkuntzak bytecode konpilazioa eta interpretazioa onartzen ditu, bere sintaxia Python-en antza du (aldagaien definizio esplizituarekin Python-en dialekto laburtu gisa kokatzen da) eta oso inplementazio trinkoa du. Bytecode interpreteak zabor-biltzailea eskaintzen du eta multithreading onartzen du blokeo globala erabili gabe. Konpilatzailea eta interpretea partekatutako liburutegi txiki baten moduan konpila daitezke (~ 500KB), beste programekin integratuta eta C APIaren bidez heda daiteke. ToaruOSez gain, hizkuntza Linux, macOS, Windows-en erabil daiteke eta WebAssembly onartzen duten arakatzaileetan exekutatu.

ToaruOS-en bertsio berria C liburutegi estandarraren eta Kuroko programazio-lengoaia garatzen zentratu zen. Adibidez, Quake jokoan argi-parametroak behar bezala kalkulatzeko beharrezkoak diren funtzio matematikoak gehitu dira libc-era. EFI moduan VirtualBox-era abiarazteko gaitasuna hobetu da. Iso irudiaren tamaina murriztu egin da ram diskoaren irudiaren konpresioa erabiliz.

Kuroko 1.1 hizkuntzaren bertsio berriak asinkronizaziorako eta itxaroteko euskarria gehitzen du, hari anitzeko haria inplementatzen du, Python 3rekin bateragarritasuna hobetzen du, balio esleipen anitz onartzen ditu, C hizkuntzan kudeatzaileak idazteko tresnak zabaltzen ditu, funtzioetarako motako oharpenetarako laguntza gehitzen du, gako-hitzak "yield" eta "yield from", os, dis, fileio eta time moduluak integratu dira, metodo berriak inplementatu dira str, list, dict eta byteetan, bytecode-n aurrekonpilatzeko laguntza gehitu da, lizentzia MITera aldatu da (lehen MIT eta ISC konbinazio bat zegoen).

Iturria: opennet.ru

Gehitu iruzkin berria