WSL9x научили запускать современное ядро Linux 6.19 внутри Windows 95 и новее — причём даже на машинах с Intel 486. Проект автор называет Windows 9x Subsystem for Linux и подчёркивает: тут нет виртуализации, ядра работают кооперативно на уровне ring 0.

Инструмент выложили на Codeberg. Разработчик Hailey пишет, что это «one of my greatest hacks of all time» — «один из моих величайших хаков».

Чем WSL9x отличается от привычного WSL

WSL9x запускает Linux не через аппаратную виртуализацию. Это ключевой момент, потому что из-за него проект совместим с процессорами вплоть до 486. Для сравнения, современный WSL в актуальных версиях Windows опирается на более новые механизмы, и на ретро-ПК просто не взлетит.

Продолжение после рекламы

Hailey описывает подход так: Linux-ядро работает «cooperatively with the Windows kernel in ring 0». Идея в том, что можно держать рядом Windows- и Linux-приложения, без перезагрузок и без отдельной «виртуалки».

Из чего состоит Windows 9x Subsystem for Linux

В репозитории WSL9x описаны три компонента. Они закрывают и запуск ядра, и ввод-вывод консоли, и связку с окружением Windows 9x.

Изображение к статье: WSL9x запускает Linux 6.19 прямо в Windows 95 и даже на 486
  • Патченный Linux kernel: ядро, адаптированное под кооперативную работу в Windows 9x.
  • VxD-драйвер: системный драйвер для Windows 9x, который участвует в интеграции на уровне ядра.
  • wsl.com: клиентская программа, которая держит DOS-окно и прокидывает ввод-вывод.

Про wsl.com разработчик объясняет прямо: это клиент, который «держит DOS window open» для консольного драйвера, чтобы тот мог «push chars» в окно. Плюс он «shuttling keystrokes from DOS to the console driver on IRQ» — то есть передаёт нажатия клавиш через прерывания.

Если собрать и запустить WSL9x по инструкции из репозитория, система поднимает «modern Linux kernel (6.19 at time of writing)» внутри Windows 9x. Hailey отдельно перечисляет, что в таком режиме доступны ключевые вещи уровня ОС: paging, memory protection и pre-emptive scheduling.

Почему эта новость звучит особенно вовремя

Ситуация забавно контрастирует с тем, что происходит в основном дереве Linux. Разработчики ядра начали убирать поддержку Intel 486. Линус Торвальдс ранее говорил, что «zero real reason» — «ноль реальных причин» — продолжать поддержку этого класса процессоров.

Один из шагов в эту сторону сделал разработчик Ingo Molnar. Он подготовил патч, который убирает опции CONFIG_M486SX, CONFIG_M486 и CONFIG_MELAN из Kconfig. Этот патч ожидают в ветке Linux 7.1, и после этого собрать i486-образ ядра уже не выйдет.

Сам Hailey добавляет, что WSL9x «proudly written without AI» и что проект варился шесть лет, с момента завершения её проекта doslinux.

Ссылки на проект: репозиторий WSL9x на Codeberg и короткое описание от Hailey в посте на Mastodon.

Продолжение после рекламы

Рейтинг: 0 / 5. Оценок: 0

Рекомендуем почитать

Оставьте комментарий

Перед оставлением комментария, пожалуйста, ознакомьтесь с правилами комментирования.