Izdaja operacijskega sistema ToaruOS 1.14 in programskega jezika Kuroko 1.1

Na voljo je izdaja projekta ToaruOS 1.14, ki razvija Unixu podoben operacijski sistem, napisan iz nič, z lastnim jedrom, zagonskim nalagalnikom, standardno knjižnico C, upraviteljem paketov, komponentami uporabniškega prostora in grafičnim vmesnikom s sestavljenim upraviteljem oken. Na trenutni stopnji razvoja zmogljivosti sistema zadoščajo za delovanje Python 3 in GCC. Projektna koda je napisana v C in se distribuira pod licenco BSD. Za prenos je pripravljena živa slika velikosti 14 MB, ki jo lahko testirate v QEMU, VMware ali VirtualBox.

Izdaja operacijskega sistema ToaruOS 1.14 in programskega jezika Kuroko 1.1

Projekt se je začel leta 2010 na Univerzi v Illinoisu in se je sprva razvijal kot raziskovalno delo na področju ustvarjanja novih sestavljenih grafičnih vmesnikov. Od leta 2012 se je razvoj preoblikoval v operacijski sistem ToaruOS, ki je bil sprva razvit kot študentski projekt, nato pa je prerasel v vikend hobi, ki ga je prevzela skupnost, ki se je oblikovala okoli projekta. V trenutni obliki je sistem opremljen s sestavljenim upravljalnikom oken, podpira dinamično povezane izvedljive datoteke v formatu ELF, večopravilnost, grafiko in omrežne sklade.

Paket vključuje vrata programskega jezika Python 3.6, ki se uporablja pri razvoju nekaterih grafičnih aplikacij, specifičnih za ToaruOS, kot so upravitelj paketov, grafični urejevalnik, pregledovalnik PDF, kalkulator in preproste igre. Programi drugih proizvajalcev, preneseni v ToaruOS, vključujejo Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs itd.

ToaruOS temelji na jedru, ki uporablja hibridno modularno arhitekturo, ki združuje monolitno ogrodje in orodja za uporabo naložljivih modulov, ki tvorijo večino razpoložljivih gonilnikov naprav, kot so gonilniki diskov (PATA in ATAPI), datotečni sistemi EXT2 in ISO9660, medpomnilnik okvirjev. , tipkovnice, miške , omrežne kartice (AMD PCnet FAST, Realtek RTL8139 in Intel PRO/1000), zvočne čipe (Intel AC'97), kot tudi dodatke VirtualBox za sisteme za goste.

Primitivi, ki jih zagotavlja jedro, vključujejo niti Unix, TTY, virtualni datotečni sistem, večnitnost, IPC, skupni pomnilnik, večopravilnost in druge standardne funkcije. ext2 se uporablja kot datotečni sistem. Za interakcijo z jedrom je na voljo implementacija psevdo-FS /proc, ustvarjena po analogiji z Linuxom.

Načrti za leto 2021 vključujejo delo na 64-bitni x86-64 arhitekturi (za zdaj se sklopi generirajo samo za 32-bitne sisteme x86) in podporo za večprocesorske sisteme (SMP). Drugi cilji vključujejo izboljšanje združljivosti s specifikacijami POSIX na področju obdelave signalov in sinhronizacijskih metod, prenos standardne knjižnice C na raven Newlib ter implementacijo lastnega prevajalnika jezika C in razvojnih orodij.

Projekt razvija tudi lasten dinamični programski jezik, Kuroko, zasnovan tako, da nadomesti Python pri razvoju pripomočkov in aplikacij po meri za sistem. Jezik podpira prevajanje in interpretacijo bajtne kode, njegova sintaksa je podobna Pythonu (postavljen je kot skrajšano narečje Pythona z eksplicitno definicijo spremenljivk) in ima zelo kompaktno izvedbo. Tolmač bajtne kode zagotavlja zbiralnik smeti in podpira večnitnost brez uporabe globalnega zaklepanja. Prevajalnik in tolmač je mogoče prevesti v obliki majhne skupne knjižnice (~500 KB), integrirane z drugimi programi in razširljive prek API-ja C. Poleg ToaruOS je jezik mogoče uporabljati v sistemih Linux, macOS, Windows in izvajati v brskalnikih, ki podpirajo WebAssembly.

Nova izdaja ToaruOS se je osredotočila na razvoj standardne knjižnice C in programskega jezika Kuroko. V libc so bile na primer dodane matematične funkcije, potrebne za pravilen izračun svetlobnih parametrov v igri Quake. Možnost zagona v VirtualBox v načinu EFI je bila izboljšana. Velikost slike iso je bila zmanjšana z uporabo stiskanja slike diska ram.

Nova izdaja jezika Kuroko 1.1 dodaja podporo za async in await, izvaja večnitnost, izboljšuje združljivost s Python 3, podpira več dodelitev vrednosti, razširja orodja za pisanje rokovalcev v jeziku C, dodaja podporo za opombe tipa za funkcije, dodaja ključni besedi “yield” in “yield from”, moduli os, dis, fileio in time so bili integrirani, nove metode so bile implementirane v str, list, dict in bytes, dodana je podpora za predhodno prevajanje v bajtno kodo, licenca je spremenjeno v MIT (prej je obstajala kombinacija MIT in ISC).

Vir: opennet.ru

Dodaj komentar