Wydanie systemu operacyjnego ToaruOS 1.14 i języka programowania Kuroko 1.1

Dostępna jest wersja projektu ToaruOS 1.14, rozwijającego system operacyjny typu Unix napisany od podstaw z własnym jądrem, modułem ładującym, standardową biblioteką C, menedżerem pakietów, komponentami przestrzeni użytkownika i interfejsem graficznym ze złożonym menedżerem okien. Na obecnym etapie rozwoju możliwości systemu są wystarczające do uruchomienia Pythona 3 i GCC. Kod projektu napisany jest w języku C i rozpowszechniany na licencji BSD. Do pobrania przygotowano obraz na żywo o rozmiarze 14 MB, który można przetestować w QEMU, VMware lub VirtualBox.

Wydanie systemu operacyjnego ToaruOS 1.14 i języka programowania Kuroko 1.1

Projekt rozpoczął się w 2010 roku na Uniwersytecie Illinois i początkowo rozwijał się jako praca badawcza w zakresie tworzenia nowych kompozytowych interfejsów graficznych. Od 2012 roku rozwój przekształcił się w system operacyjny ToaruOS, który początkowo był rozwijany jako projekt studencki, a następnie stał się weekendowym hobby, podjętym przez społeczność utworzoną wokół projektu. W obecnej formie system wyposażony jest w złożony menedżer okien, obsługuje dynamicznie łączone pliki wykonywalne w formacie ELF, wielozadaniowość, grafikę i stosy sieciowe.

Pakiet zawiera port języka programowania Python 3.6, który jest używany do tworzenia niektórych aplikacji graficznych specyficznych dla ToaruOS, takich jak menedżer pakietów, edytor graficzny, przeglądarka plików PDF, kalkulator i proste gry. Programy innych firm przeniesione do ToaruOS obejmują Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulator Super Nintendo, Bochs itp.

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.

Do prymitywów dostarczanych przez jądro należą wątki uniksowe, TTY, wirtualny system plików, wielowątkowość, IPC, pamięć współdzielona, ​​wielozadaniowość i inne standardowe funkcje. ext2 jest używany jako system plików. Do interakcji z jądrem dostępna jest implementacja pseudo-FS /proc, stworzona analogicznie do Linuksa.

Plany na rok 2021 obejmują prace nad 64-bitową architekturą x86-64 (na razie zespoły generowane są tylko dla 32-bitowych systemów x86) oraz wsparcie dla systemów wieloprocesorowych (SMP). Inne cele obejmują poprawę zgodności ze specyfikacjami POSIX w zakresie metod przetwarzania sygnałów i synchronizacji, doprowadzenie standardowej biblioteki C do poziomu Newlib oraz wdrożenie własnego kompilatora i narzędzi programistycznych języka C.

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 obsługuje kompilację i interpretację kodu bajtowego, jego składnia przypomina Pythona (jest pozycjonowany jako skrócony dialekt Pythona z wyraźną definicją zmiennych) i ma bardzo zwartą implementację. 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.

Nowa wersja ToaruOS skupiała się na rozwoju standardowej biblioteki C i języka programowania Kuroko. Przykładowo do libc dodano funkcje matematyczne niezbędne do prawidłowego obliczenia parametrów oświetlenia w grze Quake. Poprawiono możliwość uruchamiania VirtualBoxa w trybie EFI. Rozmiar obrazu ISO został zmniejszony poprzez zastosowanie kompresji obrazu dysku RAM.

Nowa wersja języka Kuroko 1.1 dodaje obsługę asynchronizacji i oczekiwania, implementuje wielowątkowość, poprawia kompatybilność z Pythonem 3, obsługuje wielokrotne przypisywanie wartości, rozszerza narzędzia do pisania procedur obsługi w języku C, dodaje obsługę adnotacji typu dla funkcji, dodaje słowa kluczowe „yield” i „yield from”, zintegrowano moduły os, dis, fileio i time, zaimplementowano nowe metody w str, list, dict i bytes, dodano obsługę prekompilacji do kodu bajtowego, dodano licencję zmieniono na MIT (poprzednio istniało połączenie MIT i ISC).

Źródło: opennet.ru

Dodaj komentarz