ToaruOS 2.3 i 2.3.1

ToaruOS 2.3 i 2.3.1 ToaruOS 2.3 i 2.3.1 ToaruOS 2.3 i 2.3.1 ToaruOS 2.3 i 2.3.1

28 kwietnia i 5 maja odbyły się wydania 2.3 i 2.3.1 systemu operacyjnego podobnego do Unix ToaruOS, napisanego od podstaw i dostarczanego z własnym jądrem, bootloaderem, standardową biblioteką C, menedżerem pakietów, komponentami przestrzeni użytkownika oraz interfejsem graficznym z kompozytowym menedżerem okien.

Początkowo projekt rozwijał się na Uniwersytecie w Illinois jako praca badawcza dotycząca tworzenia nowych kompozytowych interfejsów graficznych, następnie jednak przekształcił się w niezależny system operacyjny. Kod projektu napisany jest w języku C i rozpowszechniany objęty licencją BSD. Przygotowano do pobrania live obraz (2.3.1), o rozmiarze 7.4 MB, który można testować w QEMU, VMware lub VirtualBox.

Podstawą ToaruOS jest jądro korzystające z hybrydowej modułowej architektury, łączącej monolityczną podstawę oraz środki do używania modułów ładowanych w czasie rzeczywistym, dzięki czemu zaprojektowano większość dostępnych sterowników urządzeń, takich jak sterowniki dysku (PATA i ATAPI), systemy plików Ext2 i ISO9660, framebuffer, klawiatury, myszy, kart sieciowych (AMD PCnet FAST, Realtek RTL8139 i Intel PRO/1000), układy dźwiękowe (Intel AC’97) oraz rozszerzenia VirtualBox dla systemów gościnnych. Jądro obsługuje Unixowe wątki, TTY, wirtualny system plików, pseudoplik systemu /proc, wielowątkowość, IPC, ramdisk, ptrace, pamięć dzieloną, wielozadaniowość i inne typowe funkcje.

System jest wyposażony w kompozytowy menedżer okien, obsługuje dynamicznie powiązane pliki wykonywalne w formacie ELF, wielozadaniowość, stos graficzny, jest w stanie uruchamiać Pythona 3 oraz GCC. Jako system plików stosuje się ext2. Bootloader obsługuje BIOS i EFI. Stos sieciowy pozwala korzystać z API gniazd w stylu systemów BSD i obsługuje interfejsy sieciowe, w tym loopback.

Do własnych aplikacji należy edytor kodu przypominający Vi, Bim, który jest używany od kilku lat do rozwoju aplikacji specyficznych dla ToaruOS, takich jak menedżer plików, emulator terminala, graficzny panel z obsługą widgetów, menedżer pakietów, a także biblioteki do obsługi obrazów (PNG, JPEG) oraz czcionek TrueType. Na ToaruOS portowano takie programy jak Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulator Super Nintendo, Bochs i wiele innych.

Projekt rozwija również własny dynamiczny język programowania Kuroko, przeznaczony do zastąpienia Pythona w tworzeniu narzędzi i aplikacji użytkowych dla systemu. Język syntaktycznie przypomina Pythona (pozycjonowany jako skrócona wersja Pythona z wyraźnym określeniem zmiennych) i charakteryzuje się bardzo kompaktową implementacją. Obsługuje kompilację i interpretację bajtowego kodu. Interpreter bajtowego kodu zapewnia zbieracz śmieci, obsługuje wielowątkowość bez zastosowania globalnej blokady. Kompilator i interpreter mogą być skompilowane w formie małej, współdzielonej biblioteki (~500KB), integrowanej z innymi programami i rozszerzalnej przez C API. Oprócz ToaruOS język może być używany w Linuxie, macOS, Windowsie i uruchamiany w przeglądarkach obsługujących WebAssembly.

W nowej wersji:

  • W emulatorze terminala dodano obsługę zakładek, między którymi można przełączać się sekwencją Alt-cyfra. Zrealizowano emulację pogrubionej czcionki poprzez podwójne nakładanie glifów. Dodano podmenu „Stan terminala” do włączania wyświetlania stanu różnych trybów oraz „Wyślij sygnał” do wysyłania sygnałów do procesów w tle.
  • Zrealizowano przeglądarkę podręczników systemowych, wspierającą strony man w formacie roff.
  • Do menu kontekstowego dodano podmenu do zarządzania mozaikowym układem okien.
  • W jądrze wprowadzono nowe wywołania systemowe, w tym pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage i fcntl. Dodano obsługę flag FD_CLOEXEC i FD_CLOFORK. Wprowadzono obsługę randomizacji adresu ładowania jądra. ABI wywołań systemowych przetłumaczone na użycie instrukcji syscall/sysret.
  • Zdecydowanie rozszerzono możliwości wirtualnej konsoli (TTY), zapewniając emulację trybu tekstowego VGA na bazie ramki buforowej.
  • W wersji dla architektury Aarch64 wprowadzono możliwość uruchamiania w maszynach wirtualnych opartych na QEMU.
  • Do stosu sieciowego dodano wsparcie dla jednoczesnej pracy z wieloma gniazdami ICMP.
  • Do standardowej biblioteki libc dodano funkcje getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
  • Dodano nowe standardowe narzędzia rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. Dodano nowe opcje do ls, grep i fgrep. Przepisano narzędzia ps, top, pstree, killall i pidof, które zostały przeniesione na nową bibliotekę libtoaru_procfs, ujednolicającą działanie z pseudo-FS /proc. Rozszerzono interpreter poleceń esh.
  • Dodano narzędzie check-image do sprawdzania możliwości załadowania obrazu przez bibliotekę graficzną oraz wyświetlania rozmiaru obrazu.
  • Język programowania Kuroko zaktualizowany do wersji 1.5rc2.
  • Zaktualizowano edytor tekstu do wersji 3.2 Bim (github.com), zaprojektowany z myślą o Vimie. W nowej wersji poprawiono podświetlenie składni, rozszerzono wsparcie dla skryptów w języku Kuroko i dodano nowy system autouzupełniania.

Źródło: linux.org.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster