Projekt WSL9x do uruchamiania nowoczesnych jąder Linux w środowisku Windows 95

Nieskalibrowany entuzjasta niezwiązany z firmą Microsoft stworzył narzędzie WSL9x (Windows 9x Subsystem for Linux), pozwalające na uruchamianie nowoczesnych jąder Linuxa w obrębie systemu Windows 95/98/ME. Projekt umożliwia jednoczesne uruchamianie aplikacji dla Linuxa i Windowsa 9x w jednym systemie, analogicznie do tego, jak warstwa WSL pozwala na pracę z aplikacjami Linux w nowoczesnych wersjach Windows. Obsługiwane są tylko programy konsolowe Linux. Kod komponentów WSL9x napisany jest w języku C i assemblerze, a jego dystrybucja odbywa się na zasadzie licencji GPLv3.

W przeciwieństwie do WSL2 w WSL9x nie jest wykorzystywana wirtualizacja, a jądro Linuxa działa w zerowym pierścieniu ochrony współbieżnie z jądrem Windows, co pozwala na używanie WSL9x na systemach, które nie wspierają sprzętowej wirtualizacji, nawet z CPU i486. W systemie zastosowano zmodyfikowane jądro Linux 6.19, skompilowane do pracy w trybie UML (User-mode Linux), które jest przeznaczone do uruchamiania jądra jako procesu użytkownika. Odwołania do interfejsu POSIX API w warstwie UML są zamieniane na wywołania API jądra Windows 9x.

W systemie Windows ładowany jest odpowiedni dla projektu sterownik VxD, odpowiedzialny za inicjalizację podsystemu WSL9x, ładowanie i lokowanie jądra Linux w pamięci, dyspozycję przerwań, cykliczne przekazywanie kontroli do jądra Linux w trybie współdzielonego wielozadaniowości oraz obsługę zdarzeń adresowanych do jądra Linux z przestrzeni użytkownika, takich jak wykonywanie wywołań systemowych i dostęp do nieprzydzielonych stron pamięci (page faults). Ponieważ jądro Windows 9x nie wspiera tabeli wektorów przerwań (IDT, Interrupt Descriptor Table), co uniemożliwia zainstalowanie własnego obsługiwacza przerwania 0x80, dla wywołań systemowych używany jest obsługiwacz GPF (General Protection Fault), przechwytujący wyjątki, które pojawiają się podczas wykonywania instrukcji SYSCALL.

Użytkownikom oferowane jest narzędzie wsl.com, zaprezentowane w formie 16-bitowej aplikacji DOS, umożliwiające korzystanie z wiersza poleceń MS-DOS do uruchamiania programów Linux. Narzędzie zapewnia przesyłanie zdarzeń wejściowych i symuluje funkcjonalność konsoli do wyświetlania wyników z obsługą kodów ucieczki ANSI.

Projekt WSL9x do uruchamiania nowoczesnych jąder Linux w środowisku Windows 95


Źródło: opennet.ru
Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster