Fa'asa'olotoina le faiga fa'aogaina ToaruOS 2.1

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

Fa'asa'olotoina le faiga fa'aogaina ToaruOS 2.1

ToaruOS e faΚ»avae i luga o se fatu e faΚ»aogaina ai se fausaga faΚ»apipiΚ»i faΚ»apipiΚ»i e tuΚ»ufaΚ»atasia ai se auivi monolithic ma meafaigaluega mo le faΚ»aogaina o modules e mafai ona faΚ»aaogaina, lea e fausia ai le tele o avetaavale masini avanoa, e pei o avetaavale tisiki (PATA ma ATAPI), EXT2 ma ISO9660 faila faiga, framebuffer , keyboards, isumu , kata fesoΚ»otaΚ»iga (AMD PCnet FAST, Realtek RTL8139 ma Intel PRO / 1000), meataalo leo (Intel AC'97), faΚ»apea foΚ»i ma faΚ»aopoopoga VirtualBox mo faiga faΚ»apitoa. E lagolagoina e le fatu filo Unix, TTY, faila faila faila, pseudo file system / proc, multithreading, IPC, ramdisk, ptrace, manatu faΚ»asoa, multitasking ma isi tulaga masani.

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 ΠΈ Ρ‚.ΠΏ.

O lo'o fa'atupuina fo'i e le poloketi lana lava gagana fa'apolokalame malosi, Kuroko, ua fuafuaina e suitulaga i le Python pe a atia'e mea fa'aoga ma fa'aoga masani mo le faiga. O le gagana e fa'amanatu ai le Python i le syntax (fa'atulagaina o se gagana fa'apu'upu'u o le Python fa'atasi ai ma fa'amatalaga manino o fesuiaiga) ma o lo'o i ai se fa'atinoga fa'apitoa. E lagolagoina le tu'ufa'atasiga ma le fa'amatalaina o le bytecode. O le fa'aliliuga bytecode e tu'uina atu ai se fa'aputu lapisi ma lagolagoina le multithreading e aunoa ma le fa'aogaina o le lokaina o le lalolagi. E mafai ona tu'ufa'atasia le tu'ufa'atasia ma le fa'aliliu upu i le tulaga o se tama'i faletusi fa'asoa (~ 500KB), fa'atasi ma isi polokalame ma fa'alautele e ala i le C API. I le faaopoopo atu i ToaruOS, e mafai ona faΚ»aoga le gagana i Linux, macOS, Windows ma faΚ»atautaia i suΚ»esuΚ»ega e lagolagoina WebAssembly.

I le faΚ»asalalauga fou:

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

Fa'asa'olotoina le faiga fa'aogaina ToaruOS 2.1


puna: opennet.ru

Faaopoopo i ai se faamatalaga