28. april og 5. mai fant sted utgivelsene av 2.3 og 2.3.1 Unix-lignende operativsystemet ToaruOS, skrevet fra bunnen av og levert med sitt eget kjerne, bootloader, standard C-bibliotek, pakkebehandler, brukerromskomponenter og grafisk grensesnitt med en sammensatt vindusbehandler.
Prosjektet startet opprinnelig ved University of Illinois som en forskningsoppgave innen utvikling av nye sammensatte grafiske grensesnitt, men utviklet seg deretter til et eget operativsystem. Koden til prosjektet er skrevet i C og distribueres lisensiert under BSD. For nedlastning er det forberedt live-bilde (2.3.1), på 7.4 MB, som kan testes i QEMU, VMware eller VirtualBox.
Kjernen i ToaruOS bruker en hybrid modulær arkitektur som kombinerer en monolitisk kjerne med muligheter for bruk av lastbare moduler, der de fleste tilgjengelige driverne for enheter, som diskdrivere (PATA og ATAPI), filsystemer Ext2 og ISO9660, framebuffer, tastaturer, mus, nettverkskort (AMD PCnet FAST, Realtek RTL8139 og Intel PRO/1000), lyddrivere (Intel AC’97), samt tillegg for VirtualBox for gjestesystemer, er utformet. Kjernen støtter Unix-tråder, TTY, virtuell FS, pseudo-FS /proc, flertråding, IPC, ramdisk, ptrace, delt minne, multitasking og andre typiske funksjoner.
Systemet er utstyrt med en sammensatt vindusbehandler, støtter dynamisk linkede kjørbare filer i ELF-format, multitasking, grafisk stakk, kan kjøre Python 3 og GCC. Filsystemet som brukes er ext2. Bootloaderen støtter BIOS og EFI. Nettverksstakken tillater bruk av BSD-stil socket API og støtter nettverksgrensesnitt, inkludert loopback.
Blant egne applikasjoner finner vi kodeditoren Bim, som ligner på Vi, og som de siste årene har vært brukt til å utvikle spesifikke applikasjoner for ToaruOS, som filbehandler, terminalemulator, grafisk panel med støtte for widgets, pakkebehandler, samt biblioteker for bildestøtte (PNG, JPEG) og TrueType-skrifter. For ToaruOS er det portert programmer som Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs, osv.
Prosjektet utvikler også sitt eget dynamiske programmeringsspråk Kuroko, designet for å erstatte Python ved utvikling av verktøy og brukerapplikasjoner for systemet. Språket ligner på Python i syntaks (posisjoneres som en forkortet dialekt av Python med klar definisjon av variabler) og har en svært kompakt implementering. Støtter kompilering og tolkning av bytekode. Bytekodeinterpreteren gir en søppelsamler, støtter flertrådede programmer uten bruk av global lås. Kompilatoren og tolken kan bygges som et lite delt bibliotek (~500KB), som kan integreres med andre programmer og utvides gjennom C API. Bortsett fra ToaruOS kan språket brukes i Linux, macOS, Windows og kjøres i nettlesere med støtte for WebAssembly.
- Terminalemulatoren har fått støtte for faner, som man kan bytte mellom med Alt-tall sekvens. Implementert emulering av fet skrift gjennom dobbel overlapping av glyphs. Lagt til undermeny «Terminalstate» for å vise tilstanden til forskjellige moduser og «Send signal» for å sende signaler til bakgrunnsprosesser.
- Implementert en seer for systemhåndbøker som støtter man-sider i roff-format.
- En undermeny for å administrere mosaikkoppsett av vinduer er lagt til kontekstmenyen.
- Det er implementert nye systemanrop i kjernen, blant dem pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage og fcntl. Støtte for flaggene FD_CLOEXEC og FD_CLOFORK er lagt til. Støtte for randomisering av lastingsadressen til kjernen er implementert. ABI for systemanrop er oversatt til bruk av instruksjonene syscall/sysret.
- Mulighetene for den virtuelle konsollen (TTY) er betydelig utvidet, tekstmodus VGA er emulert på basis av framebuffer.
- I versjonen for Aarch64-arkitektur er det mulig å kjøre i virtuelle maskiner basert på QEMU.
- Det er lagt til støtte for samtidig drift med flere ICMP-sokler i nettverksstakken.
- Funksjoner som getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig er lagt til i standardbiblioteket libc.
- Nye standardverktøy som rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum er lagt til. Nye alternativer er lagt til i ls, grep og fgrep. Verktøyene ps, top, pstree, killall og pidof er skrevet om og overført til det nye biblioteket libtoaru_procfs, som forener arbeidet med pseudo-FS /proc. Kommandotolken esh er utvidet.
- Verktøyet check-image er lagt til for å sjekke om et bilde kan lastes opp av det grafiske biblioteket og for å vise bildets størrelse.
- Programmeringsspråket Kuroko er oppdatert til versjon 1.5rc2.
- Teksteditoren er oppdatert til versjon 3.2 Bim (github.com), laget med tanke på Vim. I den nye versjonen er syntaksfremheving forbedret, støtte for skriptspråket Kuroko er utvidet, og det er lagt til et nytt system for automatisk utfylling av inndata.
Kilde: linux.org.ru
