← На главную

Проект WSL9x запускает Linux 6.19 в Windows 9x без перезагрузки

13.05.2026 10:37 · hackernews

Проект WSL9x запустил современное ядро Linux версии 6.19 прямо внутри ядра Windows 9x, позволяя пользоваться возможностями обеих систем одновременно. Это решение обеспечивает работу с обменом страницами, защитой памяти и прерывистым планированием без необходимости перезагрузки. Разработчики утверждают, что проект создан без помощи искусственного интеллекта и состоит из трёх частей: исправленного ядра Linux, драйвера VxD и клиентской программы wsl.com. Драйвер VxD отвечает за инициализацию, загружает файл vmlinux.elf с диска через прерывания DOS и настраивает начальную структуру памяти по фиксированному адресу 0xd0000000. Он запускает новый поток в виртуальной машине системы, выделенный стек размером 16 KiB и запускает цикл событий, который управляет заходом в ядро, обработкой прерываний IRQ и возвратом в пользовательское пространство.

Интеграция требует модификации ядра, чтобы оно вызывало API ядра Windows 9x вместо POSIX, работая в привилегированном режиме ядра, а не в пользовательском. Большая часть кода, отвечающего за переключение контекста, находится в подсистеме Linux. Клиент wsl.com — это небольшая 16-битная DOS-программа на языке ассемблера, которая позволяет использовать стандартные окна командной строки MS-DOS как терминалы. При запуске она заявляет неиспользуемый консоль и передаёт вывод ядра Linux обратно в окно. Код использует прерывание 0x29 для вывода символов, что также позволяет драйверам вроде NNANSI перехватывать вывод и обрабатывать ANSI-последовательности для поддержки цветных шрифтов. Обработка системных вызовов реализована через обработчик общих ошибок защиты, так как у Win9x не хватило дескрипторов прерываний для установки стандартной обработки int 0x80.

Для сборки проекта понадобится кросс-компилятор для i386-linux-musl и инструментальная цепочка Open Watcom версии 2. Процесс сборки включает обновление подмодуля ядра Linux и последующее использование make build-linux для компиляции. Необходимо подготовить образ жёсткого диска hdd.base.img с предустановленной Windows 9x. После завершения сборки вы получаете образ hdd.img, содержащий готовую систему. Для запуска используется команда wsl в командной строке DOS, после чего открывается PTY. Если нужна поддержка цветов, следует загрузить драйвер nnansi.com перед запуском. Лицензионные условия распространяются под GPL-3.

Читать оригинал →