Április 28-án és május 5-én megvalósultak a 2.3 és 2.3.1 Unix-szerű operációs rendszer kiadása ToaruOS, amelyet a nulláról írtak, és saját kerneljével, bootloaderével, standard C könyvtárával, csomagkezelőjével, felhasználói térkomponenseivel és egy összetett ablakkezelő grafikusan megvalósított felhasználói felületével szállítanak.
A projekt eredetileg az Illinois-i Egyetemen fejlődött ki új összetett grafikus felhasználói felületek létrehozása céljából végzett kutatásként, de később önálló operációs rendszeré alakult át. A projekt kódját C nyelven írták, és terjesztésre kerül BSD licenc alatt érhető el. A letöltéshez készített live image (2.3.1), mérete 7,4 MB, amely tesztelhető QEMU, VMware vagy VirtualBox alatt.
A ToaruOS alapját egy olyan kernel képezi, amely hibrid moduláris architektúrát használ, ötvözve a monolitikus alapot és a betölthető modulok használatának eszközeit, amelyek formájában a legtöbb elérhető eszközdriver található, például lemezmeghajtók (PATA és ATAPI), Ext2 és ISO9660 fájlrendszer, framebuffer, billentyűzetek, egerek, hálózati kártyák (AMD PCnet FAST, Realtek RTL8139 és Intel PRO/1000), hangszerelő chipek (Intel AC'97), valamint VirtualBox vendég rendszerek kiegészítői. A kernel támogatja az Unix-szálakat, TTY-t, virtuális fájlrendszert, pseudofájlrendszert /proc, többszálúságot, IPC-t, ramdisket, ptrace-t, megosztott memóriát, többfeladatos működést és más általánosan használt funkciókat.
A rendszer rendelkezik összetett ablakkezelővel, támogatja az ELF formátumú dinamikusan kötött futtatható fájlokat, a többfeladatos működést, a grafikus réteget, képes Python 3 és GCC futtatására. Fájlrendszerként az ext2-t alkalmazza. A bootloader támogatja a BIOS-t és az EFI-t. A hálózati verem lehetővé teszi a BSD-szerű socket API használatát, és támogatja a hálózati interfészeket, beleértve a loopbacket.
Saját alkalmazásai közül kiemelkedik a Vi-hez hasonló Bim kódszerkesztő, amelyet az utóbbi években a ToaruOS-ra jellemző alkalmazások, például fájlkezelő, terminálemulátor, grafikus panel widget támogatással, csomagkezelő, valamint kép támogatására szolgáló könyvtárak (PNG, JPEG) és TrueType betűtípusok fejlesztésére használnak. A ToaruOS-ra portolták az olyan programokat, mint a Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulátor, Bochs stb.
A projekt saját dinamikus programozási nyelvét is fejleszti Kuroko, amely a Python helyettesítésére készült segédprogramok és felhasználói alkalmazások fejlesztéséhez. A nyelv szintaxisa hasonlít a Pythonra (mint egy Python rövidített dialektus, amely explicit változók meghatározását tartalmazza) és nagyon kompakt megvalósítással rendelkezik. Támogatja a bájtcode fordítást és értelmezést. A bájtcode értelmező szemétgyűjtőt biztosít, és támogatja a több szálú végrehajtást globális zár alkalmazása nélkül. A fordító és az értelmező kis megosztott könyvtár formájában (~500KB) építhető, amely más programokkal integrálható és C API-n keresztül bővíthető. A ToaruOS-on kívül a nyelv használható Linux, macOS, Windows rendszereken és böngészőkben WebAssembly támogatással.
A új kiadásban:
- A terminálemulátor támogatást kapott a fülekhez, amelyek között az Alt-szám sorozattal lehet váltani. Megvalósították a vastag betűtípusok emulálását a glifák dupla rétegzésével. A 'Terminál állapota' almenü hozzáadódott a különböző módok állapotának megjelenítése érdekében, valamint a 'Jelzés küldése' a háttérfolyamatoknak küldendő jelekhez.
- Megvalósították a rendszer kézikönyvének böngészőjét, amely támogatja a roff formátumú man-oldalakat.
- A helyi menübe almennyt adtak hozzá az ablakok mozaik elrendezésének kezeléséhez.
- Az operációs rendszer magjában új rendszerhívások valósultak meg, többek között a pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage és fcntl. Támogatás került a FD_CLOEXEC és FD_CLOFORK flagokhoz. Megvalósították a kernel betöltési címének randomizálását. A rendszerhívások ABI-ját a syscall/sysret utasítások használatára fordították.
- Jelentősen kibővítették a virtuális konzol (TTY) képességeit, biztosítva a VGA szöveges üzemmód emulációját a keretbufferen alapulva.
- A Aarch64 architektúrára készült verzió lehetőséget biztosít a QEMU-alapú virtuális gépek indítására.
- A hálózati stackhez hozzáadódott a több ICMP socket egyidejű kezelésének támogatása.
- A libc szabványos könyvtárhoz hozzáadták a getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str és str2sig funkciókat.
- Új alapértelmezett segédprogramok várakoznak: rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. Új opciók kerültek be a ls, grep és fgrep parancsokba. Az ps, top, pstree, killall és pidof segédprogramokat új libtoaru_procfs könyvtárra írták át, amely egységesíti a műveleteket a /proc ál-fájlrendszerrel. Az esh parancsértelmező kibővült.
- Új check-image segédprogram került hozzáadásra, amely ellenőrzi, hogy a grafikus könyvtár képes-e betölteni egy képet, és megjeleníti a kép méretét.
- A Kuroko programozási nyelv frissítve lett a verzióra 1.5rc2.
- A 3.2 verzióra frissítették a szövegszerkesztőt Bim (github.com), amely a Vimra összpontosít. Az új verzióban javították a szintaxiskiemelést, kibővítették a Kuroko nyelvi szkriptek támogatását és egy új automatikus kiegészítő rendszert adtak hozzá.
Forrás: linux.org.ru
