«Один из величайших хаков»: энтузиастка запустила современный Linux на Windows 95

от aadmin

Энтузиастка, представившаяся как Хейли (Hailey), выпустила оригинальный проект, который назвала «одним из своих величайших хаков всех времён». Он получил название Windows 9x Subsystem for Linux или WSL9x.

Компьютер месяца, спецвыпуск: эпоха отката, или Как дефицит чипов памяти влияет на выбор железа для игрового ПК

Обзор ноутбука HONOR MagicBook X16 2026: как раньше, только лучше

От Ryzen 7 1800X до Ryzen 7 9850X3D: девять лет эволюции AMD в одном тесте

Гид по выбору OLED-монитора в 2026 году: эволюция в деталях

Обзор Apple MacBook Neo: удивительно хороший ноутбук с процессором от iPhone

Обзор Ryzen 7 9850X3D: три процента за двадцать баксов

Ryzen и 16 Гбайт DDR5: как сэкономить на памяти так, чтобы не лишиться 15 % производительности

Обзор Samsung Galaxy Z TriFold: тройной складной смартфон по цене квартиры в Воркуте

Можно ли экономить на DDR5 для Ryzen? Сравниваем дешёвую память с дорогой

Система WSL9x совместно с платформой семейства Windows 9x запускает ядро Linux 6.19, обеспечивая пользователю те же возможности, что и экземпляры WSL в современных системах Windows, за исключением графического интерфейса. Система состоит из трёх компонентов: ядра Linux, модифицированного для вызова API Windows 9x вместо POSIX, драйвера виртуального устройства VxD и самого клиента WSL.

Рекомендую посмотреть
Sony анонсировала большой июньский выпуск State of Play — он посвящён играм для PS5, которые нельзя пропускать

Значительную часть работы принимает на себя VxD, который отвечает за инициализацию WSL9x и обработку событий пользовательской среды, которые должны транслироваться в ядро. Из-за ограничений архитектуры Win9x для этого потребовались некоторые ухищрения. «Системные вызовы обрабатываются через обработчик ошибки общей защиты (GPF), потому что в Win9x отсутствует таблица дескрипторов прерываний достаточной длины для установки корректного обработчика прерывания „int 0x80“», которое является системным для i386 под Linux, пояснила автор проекта. Обработчик GPF в WSL9x отслеживает инструкции, которые вызывают ошибки, и при появлении «int 0x80» он «перемещает указатель инструкции, как если бы прерывание прошло успешно, и отправляет системный вызов в Linux».

Сам же клиент представляет собой 16-битное приложение DOS, которое позволяет WSL9x передавать ввод командных строк DOS ядру Linux как TTY вместо полноценного пользовательского клиента. Отмечается также, что ядро Linux в этом проекте получает те же привилегии центрального процессора уровня 0, что и ядро Windows — следует помнить о сопутствующих угрозах безопасности и готовиться к некоторой нестабильности в работе. То есть если выходит из строя одна система, то перестаёт работать и другая.

Связанные посты