Nesouvisející s firmou Microsoft nadšenec realizoval nástroj WSL9x (Windows 9x Subsystem for Linux), který umožňuje spouštět moderní Linux jádra uvnitř jádra Windows 95/98/ME. Projekt poskytuje možnost vykonávat aplikace pro Linux a Windows 9x vedle sebe ve stejném systému, podobně jako jak WSL vrstva umožňuje pracovat s Linux aplikacemi v moderních verzích Windows. Podporováno je spuštění pouze konzolových Linux programů. Kód komponent WSL9x je napsán v jazyce C a assembleru a je distribuován pod licencí GPLv3.
Na rozdíl od WSL2 ve WSL9x se nepoužívá virtualizace a Linux jádro běží v nulovém ochraném módu paralelně s jádrem Windows, což umožňuje používat WSL9x na systémech bez podpory hardwarové virtualizace, dokonce i s CPU i486. V systému je použito modifikované jádro Linux 6.19, které bylo sestaveno pro práci v režimu UML (User-mode Linux), určeném pro spouštění jádra jako uživatelského procesu. Oslovování POSIX API v UML vrstvě překladů je nahrazeno voláním API jádra Windows 9x.
Do Windows se načte připravený VxD ovladač, který je zodpovědný za inicializaci subsystému WSL9x, načítání a umisťování Linux jádra do paměti, směrování přerušení, cyklické předávání řízení Linux jádru v režimu sdíleného multitaskingu a zpracování událostí adresovaných Linux jádru z uživatelského prostoru, jako jsou provádění systémových volání a přístup k nealokovaným stránkám paměti (page faults). Protože jádro Windows 9x nepodporuje tabulku vektorů přerušení (IDT, Interrupt Descriptor Table), což neumožňuje nastavit vlastní obslužný program přerušení 0x80, pro systémová volání se používá obslužný program GPF (General Protection Fault), který zachytává výjimky vznikající při provádění instrukce SYSCALL.
Pro uživatele je nabízena utilita wsl.com, která je navržena jako 16bitová DOS aplikace a umožňuje používat příkazový řádek MS-DOS pro spouštění Linux programů. Tato utilita zajišťuje předávání vstupních událostí a simuluje funkcionalitu konzole pro zobrazení výstupu s podporou ANSI escape kódů.

Zdroj: opennet.ru
