Wydanie systemu operacyjnego ToaruOS 2.1

Opublikowano wydanie uniksowego systemu operacyjnego ToaruOS 2.1, napisanego od podstaw i wyposażonego w własne jądro, moduł ładujący, standardową bibliotekę C, menedżera pakietów, komponenty przestrzeni użytkownika i interfejs graficzny ze złożonym menedżerem okien. Projekt początkowo rozwijany na Uniwersytecie Illinois jako praca badawcza w zakresie tworzenia nowych kompozytowych interfejsów graficznych, później jednak przekształcił się w odrębny system operacyjny. Kod projektu napisany jest w języku C i rozpowszechniany na licencji BSD. Do pobrania przygotowano obraz na żywo o rozmiarze 14.4 MB, który można przetestować w QEMU, VMware lub VirtualBox.

Wydanie systemu operacyjnego ToaruOS 2.1

ToaruOS opiera się na jądrze wykorzystującym hybrydową architekturę modułową, która łączy w sobie monolityczny framework i narzędzia umożliwiające wykorzystanie ładowalnych modułów, które stanowią większość dostępnych sterowników urządzeń, takich jak sterowniki dysków (PATA i ATAPI), systemy plików EXT2 i ISO9660, bufor ramki , klawiatury, myszy, karty sieciowe (AMD PCnet FAST, Realtek RTL8139 i Intel PRO/1000), układy dźwiękowe (Intel AC'97), a także dodatki VirtualBox dla systemów gościnnych. Jądro obsługuje wątki uniksowe, TTY, wirtualny system plików, pseudo system plików /proc, wielowątkowość, IPC, ramdysk, ptrace, pamięć współdzieloną, wielozadaniowość i inne standardowe funkcje.

System wyposażony jest w złożony menedżer okien, obsługuje dynamicznie łączone pliki wykonywalne w formacie ELF, wielozadaniowość, stos graficzny, może uruchamiać Python 3 i GCC, jako system plików używany jest Ext2. Bootloader obsługuje BIOS i EFI. Stos sieciowy umożliwia korzystanie z interfejsów API gniazd w stylu BSD i obsługuje interfejsy sieciowe, w tym pętlę zwrotną.

Wśród aplikacji natywnych wyróżnia się podobny do Vi edytor kodu Bim, który od kilku lat jest używany do tworzenia aplikacji specyficznych dla ToaruOS, takich jak menedżer plików, emulator terminala, panel graficzny z obsługą widżetów, menedżer pakietów, a także jako biblioteki obsługujące obrazy (PNG, JPEG) i czcionki TrueType. Programy takie jak Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulator Super Nintendo, Bochs itp. zostały przeniesione do ToaruOS.

W ramach projektu opracowywany jest także własny dynamiczny język programowania Kuroko, który ma zastąpić Pythona podczas tworzenia narzędzi i niestandardowych aplikacji dla systemu. Język przypomina składnię Pythona (pozycjonowany jako skrócony dialekt Pythona z wyraźną definicją zmiennych) i ma bardzo zwartą implementację. Obsługiwana jest kompilacja i interpretacja kodu bajtowego. Interpreter kodu bajtowego udostępnia moduł zbierający elementy bezużyteczne i obsługuje wielowątkowość bez stosowania blokowania globalnego. Kompilator i interpreter można skompilować w formie małej współdzielonej biblioteki (~500 KB), zintegrowanej z innymi programami i rozszerzalnej poprzez API C. Oprócz ToaruOS języka można używać w systemach Linux, macOS, Windows i uruchamiać w przeglądarkach obsługujących WebAssembly.

W nowym wydaniu:

  • Dodano wstępne wsparcie dla architektury AArch64 (ARMv8), w tym eksperymentalną możliwość wykorzystania ToaruOS na płycie Raspberry Pi 400 oraz w emulatorze QEMU.
  • Przeprojektowano przetwarzanie i transmisję sygnałów do procesów w przestrzeni użytkownika. Zaimplementowano wywołania sigaction, sigprocmask, sigwait i sigsuspend.
  • Poprawione zarządzanie pamięcią w przestrzeni użytkownika. Dodano wywołanie systemowe munmap.
  • Menedżer kompozytów implementuje efekt rozmycia i zmienia obsługę zdarzeń w przypadku zmiany rozmiaru okna.
  • Ulepszono renderowanie terminala, zaimplementowano renderowanie leniwe i dodano pamięć podręczną glifów dla czcionek TrueType.
  • Możliwości kompozytora zostały rozszerzone.
  • Dodano mechanizmy ustawiania zegara, w tym wywołanie systemowe settimeofday i rozszerzone możliwości narzędzia daty.
  • Ulepszony stos sieciowy. Narzędzie ifconfig dodało obsługę ustawiania adresów IPv4 i ustawień routingu. Włączono obsługę gniazd ICMP. Dodano obsługę funkcji recvfrom dla gniazd UDP i ICMP.
  • Bootloader dodał możliwość pracy z klawiaturami USB.
  • Do menu kontekstowego menedżera plików dodano opcję usuwania plików.
  • Poprawione wyświetlanie wykresów na monitorze systemu.
  • Dodano narzędzie grep z obsługą wyrażeń regularnych.
  • Ulepszone wyjście polecenia ps (dodano dodatkowe kolumny).

Wydanie systemu operacyjnego ToaruOS 2.1


Źródło: opennet.ru

Dodaj komentarz