Энтузиастка, представившаяся как Хейли (Hailey), выпустила оригинальный проект, который назвала «одним из своих величайших хаков всех времён». Он получил название Windows 9x Subsystem for Linux или WSL9x.
Система WSL9x совместно с платформой семейства Windows 9x запускает ядро Linux 6.19, обеспечивая пользователю те же возможности, что и экземпляры WSL в современных системах Windows, за исключением графического интерфейса. Система состоит из трёх компонентов: ядра Linux, модифицированного для вызова API Windows 9x вместо POSIX, драйвера виртуального устройства VxD и самого клиента WSL.
Значительную часть работы принимает на себя VxD, который отвечает за инициализацию WSL9x и обработку событий пользовательской среды, которые должны транслироваться в ядро. Из-за ограничений архитектуры Win9x для этого потребовались некоторые ухищрения. «Системные вызовы обрабатываются через обработчик ошибки общей защиты (GPF), потому что в Win9x отсутствует таблица дескрипторов прерываний достаточной длины для установки корректного обработчика прерывания „int 0x80“», которое является системным для i386 под Linux, пояснила автор проекта. Обработчик GPF в WSL9x отслеживает инструкции, которые вызывают ошибки, и при появлении «int 0x80» он «перемещает указатель инструкции, как если бы прерывание прошло успешно, и отправляет системный вызов в Linux».
Сам же клиент представляет собой 16-битное приложение DOS, которое позволяет WSL9x передавать ввод командных строк DOS ядру Linux как TTY вместо полноценного пользовательского клиента. Отмечается также, что ядро Linux в этом проекте получает те же привилегии центрального процессора уровня 0, что и ядро Windows — следует помнить о сопутствующих угрозах безопасности и готовиться к некоторой нестабильности в работе. То есть если выходит из строя одна система, то перестаёт работать и другая.
Источник:


MWC 2018
2018
Computex
IFA 2018






