28. apríla a 5. mája sa uskutočnili verzie 2.3 a 2.3.1 Unix-podobného operačného systému ToaruOS, ktorý bol napísaný od základov a dodáva sa s vlastným jadrom, bootloaderom, štandardnou C knižnicou, správcom balíkov, komponentmi používateľského priestoru a grafickým užívateľským rozhraním s kompozitným správcom okien.
Pôvodne sa projekt vyvíjal na Univerzite Illinois ako výskumná práca v oblasti vytvárania nových kompozitných grafických rozhraní, ale neskôr sa transformoval na samostatný operačný systém. Kód projektu je napísaný v jazyku C a distribuovaný je pod licenciou BSD. Pre stiahnutie je pripravený live obraz (2.3.1), s veľkosťou 7.4 MB, ktorý možno otestovať v QEMU, VMware alebo VirtualBox.
Na základe ToaruOS leží jadro, ktoré využíva hybridnú modulárnu architektúru, kombinujúcu monolitnú základňu a prostriedky na používanie načítateľných modulov, v ktorých sú spracované väčšina dostupných ovládačov zariadení, ako sú ovládače disku (PATA a ATAPI), FS Ext2 a ISO9660, framebuffer, klávesnice, myši, sieťové karty (AMD PCnet FAST, Realtek RTL8139 a Intel PRO/1000), zvukové čipy (Intel AC'97), ako aj dodatky VirtualBox pre hosťovské systémy. Jadro podporuje Unixové vlákna, TTY, virtuálny FS, pseudo-FS /proc, viacvláknovú prevádzku, IPC, ramdisk, ptrace, zdieľanú pamäť, multitasking a ďalšie obvyklé funkcie.
Systém je vybavený kompozitným správcom okien, podporuje dynamicky viazané spustiteľné súbory vo formáte ELF, multitasking, grafický zásobník, dokáže spúšťať Python 3 a GCC. Ako súborový systém sa používa ext2. Bootloader podporuje BIOS a EFI. Sieťový zásobník umožňuje používanie API socketov v štýle BSD systémov a podporuje sieťové rozhrania, vrátane loopback.
Z vlastných aplikácií sa vyčleňuje editor kódu Bim, ktorý vyzerá ako Vi a ktorý sa používa posledné niekoľko rokov na vývoj špecifických pre ToaruOS aplikácií, ako sú správca súborov, terminálový emulátor, grafický panel so podporou widgetov, správca balíkov, ako aj knižnice na podporu obrázkov (PNG, JPEG) a písma TrueType. Pre ToaruOS bolo portovaných množstvo programov, ako sú Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulátor Super Nintendo, Bochs a pod.
Projekt tiež vyvíja vlastný dynamický programovací jazyk Kuroko, navrhnutý ako náhrada Pythonu pri vývoji utilít a užívateľských aplikácií pre systém. Jazyk má syntax podobnú Pythonu (prezentuje sa ako skrátený dialekt Pythonu s explicitným určením premenných) a vyznačuje sa veľmi kompaktnou implementáciou. Podporuje kompiláciu a interpretáciu bytecode. Interpret bytecode poskytuje garbage collector, podporuje multithreading bez použitia globálnej zámky. Kompilátor a interpret môžu byť zostavené vo forme malej zdieľanej knižnice (~500KB), integrovateľnej s inými programami a rozšíriteľnej prostredníctvom C API. Okrem ToaruOS sa jazyk môže používať aj v Linuxe, macOS, Windows a spúšťať v prehliadačoch s podporou WebAssembly.
V novom vydaní:
- Do emulátora terminálu bola pridaná podpora záložiek, medzi ktorými sa môžete prepínať sekvenciou Alt-číslo. Implementovaná je emulácia tučného písma prostredníctvom dvojitého prekrytia glifov. Pridané sú podmená „Stav terminálu“ na zapnutie zobrazenia stavu rôznych režimov a „Odoslať signál“ na odosielanie signálov pozadovým procesom.
- Bol implementovaný prehliadač systémových príručiek, ktorý podporuje man-stránky vo formáte roff.
- Do kontextovej ponuky bolo pridané podmenu na správu mozaikovej kompozície okien.
- V jadre boli implementované nové systémové volania, medzi ktorými sú pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage a fcntl. Pridaná je podpora vlajok FD_CLOEXEC a FD_CLOFORK. Implementovaná je podpora randomizácie adresy načítania jadra. ABI systémových volaní bolo prevedené na použitie inštrukcií syscall/sysret.
- Možnosti virtuálneho terminálu (TTY) boli výrazne rozšírené, bola zabezpečená emulácia textového režimu VGA na základe framebufferu.
- Vo verzii pre architektúru Aarch64 bola implementovaná možnosť spúšťania vo virtuálnych strojoch založených na QEMU.
- Do sieťového stacku bola pridaná podpora súčasnej práce s viacerými ICMP soketmi.
- Do štandardnej knižnice libc boli pridané funkcie getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
- Pridané nové štandardné nástroje rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. Pridané nové možnosti v ls, grep a fgrep. Prepracované nástroje ps, top, pstree, killall a pidof, ktoré boli prenesené na novú knižnicu libtoaru_procfs, zjednocujúcu prácu s pseudofajlovým systémom /proc. Rozšírený príkazový interpretr esh.
- Pridaný nástroj check-image na kontrolu možnosti načítania obrázku grafickou knižnicou a zobrazenie veľkosti obrázku.
- Programovací jazyk Kuroko bol aktualizovaný na verziu 1.5rc2.
- Textový editor bol aktualizovaný na verziu 3.2 Bim (github.com), navrhnutý s ohľadom na Vim. V novej verzii bola vylepšená syntax highlighting, rozšírená podpora skriptov v jazyku Kuroko a pridaný nový systém automatického doplňovania vstupu.
Zdroj: linux.org.ru
