De release van het Unix-achtige besturingssysteem ToaruOS 2.3 is gepubliceerd. Het is helemaal opnieuw geschreven en beschikt over een eigen kernel, bootloader, standaard C-bibliotheek, pakketbeheerder, gebruikerscomponenten en een grafische interface met een samengestelde windowmanager. Het project werd aanvankelijk ontwikkeld aan de Universiteit van Illinois als onderzoeksproject op het gebied van het creΓ«ren van nieuwe samengestelde grafische interfaces, maar is vervolgens omgezet naar een apart besturingssysteem. De projectcode is geschreven in C en wordt gedistribueerd onder de BSD-licentie. Een live image van 7.4 MB is beschikbaar om te downloaden en kan worden getest in QEMU, VMware of VirtualBox.

ToaruOS is gebaseerd op een kernel die gebruikmaakt van een hybride modulaire architectuur. Deze combineert een monolithische basis met middelen voor het gebruik van ladbare modules. Dit zijn de meeste beschikbare apparaatstuurprogramma's, zoals schijfstuurprogramma's (PATA en ATAPI), EXT2- en ISO9660-bestandssystemen, framebuffer, toetsenbord, muis, netwerkkaarten (AMD PCnet FAST, Realtek RTL8139 en Intel PRO/1000), geluidschips (Intel AC'97) en VirtualBox-add-ons voor gastsystemen. De kernel ondersteunt Unix-threads, TTY, virtueel FS, pseudo-FS /proc, multithreading, IPC, ramdisk, ptrace, gedeeld geheugen, multitasking en andere typische functies.
CΠΈΡΡΠ΅ΠΌΠ° ΡΠ½Π°Π±ΠΆΠ΅Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΠΌ ΠΎΠΊΠΎΠ½Π½ΡΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ELF, ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ, Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠ΅ΠΊ, ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Python 3 ΠΈ GCC. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ext2. ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ BIOS ΠΈ EFI. Π‘Π΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ΅ΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ API ΡΠΎΠΊΠ΅ΡΠΎΠ² Π² ΡΡΠΈΠ»Π΅ BSD-ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ loopback.
Onder de native applicaties valt de Vi-achtige code-editor Bim op, die de afgelopen jaren is gebruikt om ToaruOS-specifieke applicaties te ontwikkelen, zoals een bestandsbeheerder, een terminalemulator, een grafisch paneel met widgetondersteuning, een pakketbeheerder en bibliotheken voor de ondersteuning van afbeeldingen (PNG, JPEG) en TrueType-lettertypen. Programma's zoals Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo-emulator, Bochs, enz. zijn geporteerd naar ToaruOS.
Het project ontwikkelt ook een eigen dynamische programmeertaal, Kuroko, die Python moet vervangen bij het ontwikkelen van hulpprogramma's en gebruikersapplicaties voor het systeem. De taal is qua syntaxis vergelijkbaar met Python (het wordt gepositioneerd als een verkort dialect van Python met expliciete definities van variabelen) en onderscheidt zich door een zeer compacte implementatie. Compilatie en interpretatie van bytecode worden ondersteund. De bytecode-interpreter biedt een garbage collector en ondersteunt multithreading zonder gebruik te maken van een globale vergrendeling. De compiler en interpreter kunnen worden gecompileerd als een kleine gedeelde bibliotheek (~500 KB), geΓ―ntegreerd met andere programma's en uitbreidbaar via de C API. Naast ToaruOS kan de taal worden gebruikt op Linux, macOS, Windows en in browsers die WebAssembly ondersteunen.
In de nieuwe uitgave:
- Π ΡΠΌΡΠ»ΡΡΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Alt-ΡΠΈΡΡΠ°. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠΌΡΠ»ΡΡΠΈΡ ΠΆΠΈΡΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΡ ΡΡΠΈΡΡΠΎΠ² ΡΠ΅ΡΠ΅Π· Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π³Π»ΠΈΡΠΎΠ². ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ Β«Terminal stateΒ» Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΈ Β«Send signalΒ» Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΡΠΎΠ½ΠΎΠ²ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ.

- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΡΠΎΡΠΌΠΎΡΡΡΠΈΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ man-ΡΡΡΠ°Π½ΠΈΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ roff.

- Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ·Π°ΠΈΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΎΠΉ ΠΎΠΊΠΎΠ½.

- Π ΡΠ΄ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage ΠΈ fcntl. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ»Π°Π³ΠΎΠ² FD_CLOEXEC ΠΈ FD_CLOFORK. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·Π°ΡΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΄ΡΠ°. ABI ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ syscall/sysret.
- ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ (TTY), ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΡΠΌΡΠ»ΡΡΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° VGA Π½Π° Π±Π°Π·Π΅ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΠ°.
- Π Π²Π΅ΡΡΠΈΠΈ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Aarch64 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ Π½Π° Π±Π°Π·Π΅ QEMU.
- Π ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ΅ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ ICMP.
- Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ libc Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΏΡΠΈΠΈ Π² ls, grep ΠΈ fgrep. ΠΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Ρ ΡΡΠΈΠ»ΠΈΡΡ ps, top, pstree, killall ΠΈ pidof, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Ρ Π½Π° Π½ΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ libtoaru_procfs, ΡΠ½ΠΈΡΠΈΡΠΈΡΡΡΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠ΅Π²Π΄ΠΎ-Π€Π‘ /proc. Π Π°ΡΡΠΈΡΠ΅Π½ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ esh.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΠΈΠ»ΠΈΡΠ° check-image Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
- Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kuroko ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 1.5rc2.
- ΠΠΎ Π²Π΅ΡΡΠΈΠΈ 3.2 ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Bim, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Ρ ΠΎΠ³Π»ΡΠ΄ΠΊΠΎΠΉ Π½Π° Vim. Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΡΠ°ΡΡΠΈΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Kuroko ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°.
Bron: opennet.ru



