Microsoftiga mitt seotud entusiast on välja töötanud WSL9x (Windows 9x Subsystem for Linux) tööriistakomplekti, mis võimaldab kaasaegsete Linuxi tuumade käitamist Windows 95/98/ME tuumas. Projekt võimaldab ühes süsteemis kõrvuti käitada Linuxi ja Windows 9x rakendusi, sarnaselt sellele, kuidas WSL kiht võimaldab töötada Linuxi rakendustega kaasaegsetes Windowsi versioonides. Toetatakse ainult Linuxi konsoolirakenduste käivitamist. WSL9x komponentide kood on kirjutatud C-s ja assembleris ning jaotatakse GPLv3 litsentsi alusel.
Erinevalt WSL2-st ei kasutata WSL9x-s virtualiseerimist ning Linuxi tuum töötab nullkaitsel kõrvuti Windowsi tuumaga, mis võimaldab WSL9x kasutamist süsteemides, kus riistvara virtualiseerimist ei toetata, isegi CPU i486-ga. Süsteemis kasutatakse muudetud Linuxi tuuma 6.19, mis on koostatud UML (User-mode Linux) režiimiks, mis on ette nähtud tuuma käitamiseks kui kasutaja protsessina. POSIX API-l märkimine UML kihis on asendatud Windows 9x tuuma API väljakutsetega.
Windowsi laaditakse projekti VxD-draiver, mis vastutab WSL9x alamsüsteemi initsialiseerimise, Linuxi tuuma laadimise ja mälu paigutamise, katkestuste suunamise, Linuxi tuumale suunatud juhtimise tsüklilise edastamise ning kasutajaruumi kaudu Linuxi tuumale suunatud sündmuste töötlemise, nagu süsteemikõnede teostamine ja mittejaotatud mälu lehekülgede (page faults) käsitlemine. Kuna Windows 9x tuum ei toeta katkestuste kirjeldustabelit (IDT, Interrupt Descriptor Table), mis ei võimalda seadistada oma katkestuse töötlejat 0x80, kasutatakse süsteemikõnede jaoks GPF (General Protection Fault) töötlejat, mis püüab kinni erandeid, mis tekivad SYSCALL instruktsiooni täitmisel.
Kasutajatele pakutakse wsl.com utiliiti, mis on kujundatud 16-bitise DOS-rakenduse vormis ja võimaldab MS-DOS käsurida Linuxi rakenduste käitamiseks. Utiliit tagab sisendiürituste edastamise ja simuleerib konsooli funktsionaalsust väljundi kuvamiseks, toetades ANSI escape-koode.

Allikas: opennet.ru
