ToaruOS 2.1 sistema eragilearen kaleratzea

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ToaruOS 2.1, написанной с нуля ΠΈ поставляСмой со своим ядром, Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠΌ, стандартной Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ, ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ пространства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ графичСским интСрфСйсом с ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΌ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ развивался Π² Иллинойсском унивСрситСтС ΠΊΠ°ΠΊ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Π² области создания Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹Ρ… графичСских интСрфСйсов, Π½ΠΎ Π·Π°Ρ‚Π΅ΠΌ трансформировался Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Π‘ΠΈ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD. Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ live-ΠΎΠ±Ρ€Π°Π·, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 14.4 ΠœΠ‘, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² QEMU, VMware ΠΈΠ»ΠΈ VirtualBox.

ToaruOS 2.1 sistema eragilearen kaleratzea

ToaruOS arkitektura modular hibrido bat erabiltzen duen nukleo batean oinarritzen da, marko monolitikoa eta modulu kargagarriak erabiltzeko tresnak konbinatzen dituena, gailu erabilgarri dauden gailuen kontrolatzaile gehienak osatzen dituztenak, hala nola disko kontrolatzaileak (PATA eta ATAPI), EXT2 eta ISO9660 fitxategi sistemak, framebuffer. , teklatuak, saguak , sare-txartelak (AMD PCnet FAST, Realtek RTL8139 eta Intel PRO/1000), soinu-txipak (Intel AC'97), baita sistema gonbidatuentzako VirtualBox gehigarriak ere. Nukleoak Unix hariak, TTY, fitxategi sistema birtualak, pseudo fitxategi sistema / proc, multithreading, IPC, ramdisk, ptrace, memoria partekatua, multiataza eta beste ezaugarri estandarrak onartzen ditu.

CистСма снабТСна ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΌ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ динамичСски связываСмыС исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ELF, ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, графичСский стСк, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Python 3 ΠΈ GCC.Π’ качСствС Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы примСняСтся ext2. Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ BIOS ΠΈ EFI. Π‘Π΅Ρ‚Π΅Π²ΠΎΠΉ стСк позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ API сокСтов Π² стилС BSD-систСм ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сСтСвыС интСрфСйсы, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ loopback.

Из собствСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ выдСляСтся ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° Vi Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Bim, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ послСдниС нСсколько Π»Π΅Ρ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ спСцифичных для ToaruOS ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, эмулятор Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, графичСская панСль с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (PNG, JPEG) ΠΈ TrueType-ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ². Для ToaruOS Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠ°ΠΊ Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs ΠΈ Ρ‚.ΠΏ.

Proiektua bere programazio-lengoaia dinamikoa garatzen ari da, Kuroko, Python ordezkatzeko diseinatua sistemarako utilitateak eta aplikazio pertsonalizatuak garatzerakoan. Hizkuntzak Python-a gogoratzen du sintaxian (Python-en dialekto laburtu gisa kokatuta aldagaien definizio esplizituan) eta oso inplementazio trinkoa du. Bytecodeen konpilazioa eta interpretazioa onartzen da. Bytecode interpreteak zabor-biltzailea eskaintzen du eta multithreading onartzen du blokeo globala erabili gabe. Konpilatzailea eta interpretea partekatutako liburutegi txiki baten moduan konpila daitezke (~ 500KB), beste programekin integratuta eta C APIaren bidez heda daiteke. ToaruOSez gain, hizkuntza Linux, macOS, Windows-en erabil daiteke eta WebAssembly onartzen duten arakatzaileetan exekutatu.

Argitalpen berrian:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ AArch64 (ARMv8), Π² Ρ‚ΠΎΠΌ числС с ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ использования ToaruOS Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Raspberry Pi 400 ΠΈ Π² эмуляторС QEMU.
  • ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° сигналов процСссам Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π²Ρ‹Π·ΠΎΠ²Ρ‹ sigaction, sigprocmask, sigwait ΠΈ sigsuspend.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ систСмный Π²Ρ‹Π·ΠΎΠ² munmap.
  • Π’ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ эффСкт размытия ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠΊΠ½Π°.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° отрисовка Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° отлоТСнная отрисовка ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ кэш Π³Π»ΠΈΡ„ΠΎΠ² для ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² TrueType.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ°.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ для установки часов, Π² Ρ‚ΠΎΠΌ числС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ систСмный Π²Ρ‹Π·ΠΎΠ² settimeofday ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ date.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ сСтСвой стСк. Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ifconfig Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° установки адрСсов IPv4 ΠΈ настроСк ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° сокСтов ICMP. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ recvfrom для сокСтов UDP ΠΈ ICMP.
  • Π’ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с USB-ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°ΠΌΠΈ.
  • Π’ контСкстноС мСню Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡƒΠ½ΠΊΡ‚ для удалСния Ρ„Π°ΠΉΠ»ΠΎΠ².
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π² систСмном ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° grep с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ps (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ столбцы).

ToaruOS 2.1 sistema eragilearen kaleratzea


Iturria: opennet.ru

Gehitu iruzkin berria