23 апреля 2026, 06:32
Представлен публике инициатива WSL9x — подсистема Windows 9x для Linux

Состоялся выпуск открытого проекта WSL9x (без использования ИИ и под лицензией GPL-3) — подсистемы Windows 9x для Linux (Windows 9x Subsystem for Linux). С помощью подсистемы Windows 9x для Linux можно запускать приложения Windows и Linux параллельно, используя современное ядро Linux, работающее совместно с ядром Windows в ring 0. И в противовес современных WSL, здесь не используется аппаратная виртуализация, поэтому WSL9x можно запустить даже на 486 процессоре.
Решение WSL9x использует современное движок Linux (6.19 на текущий момент) совместно с ядром Windows 9x, позволяя пользователям одновременно применять весь набор возможностей обеих операционных систем, в том числе файл подкачки, защиту памяти и вытесняющее планирование (pre‑emptive scheduling). «Запускайте все свои любимые приложения параллельно — перезагрузка не требуется!», — заявили в команде проекта.
Технические подробности решения:
WSL9x состоит из трёх компонентов: пропатченного ядра Linux (см. ветку win9x-um-6.19), драйвера VxD и клиентской программы wsl.com;
драйвер отвечает за инициализацию WSL9x (см. vxd/wsl9x.asm для точки входа драйвера). Он устанавливает начальные отображения для кода ядра и загружает vmlinux.elf с диска, используя прерывания DOS (см. vxd/loader.c и vxd/fs.asm). Движок компилируется с фиксированным базовым адресом 0xd0000000;
затем драйвер запускает свежий поток в виртуальной машине системы, выделяет стек размером 16 КБ для входа в Linux и переходит в цикл событий, который обрабатывает вход в движок, обработку прерываний, возврат в пользовательское пространство и режим ожидания. См. vxd/entry.c для этого кода;
драйвер также отвечает за обработку событий пользовательского пространства, которые должны быть переданы ядру, в настоящее время это ошибки страничного доступа и системные вызовы. Системные вызовы обрабатываются через обработчик ошибок общей защиты (GPF), поскольку в Win9x отсутствует в достаточной степени длинная таблица дескрипторов прерываний для установки надлежащего обработчика для прерывания int 0x80 — прерывания системного вызова Linux i386. Вместо этого обработчик GPF проверяет инструкцию, вызвавшую ошибку. Если это int 0x80, обработчик GPF перемещает указатель инструкции так, как если бы прерывание прошло успешно, и передаёт его в Linux как системный вызов. См. vxd/fault.c для получения этого кода;
ядро Linux работает в режиме user-mode Linux, но модифицировано для вызова api ядра Windows 9x вместо api POSIX и работает в ring 0 (режим супервизора/ядра), а не в ring 3 (пользовательский режим). Большая часть фактической интеграции ядра Win9x, в том числе переключение контекста, находится в ядре Linux. См. linux/arch/um/os-Win95 для получения основной информации об интеграции Win9x в код ядра. Точкой входа, вызываемой vxd/entry.c, является _start в main.c. Файлы process.c и mmu.c также важны;
новейший компонент — это клиент wsl.com. Это небольшая 16-битная программа DOS, реализованная на wsl/wsl.asm, которая позволяет WSL9x использовать командную строку MS-DOS в качестве окон TTY, вместо того чтобы реализовывать что-то своё;
при запуске wsl.com он выполняет первоначальный вызов программный оболочку WSL9x V86 (vxd/v86_api.asm), чтобы занять неиспользуемую консоль и уведомить WSL9x о необходимости отправки вывода с этой консоли. Затем он переходит в цикл обработки событий, ожидая прерывания и пытаясь считывать данные с клавиатуры при прерывании. Верхняя часть этого цикла обработки событий равным образом служит точкой синхронизации для драйвера консоли (vxd/console.c) — когда вывод из Linux готов, он планирует событие и выполняет прерывание 0x29 в контексте виртуальной машины MS-DOS для вывода символов в окно DOS. Это прерывание также является местом, где драйвер ANSI для DOS, например NNANSI, может перехватывать вывод терминала для реализации управляющих кодов ANSI.
Ранее вышла пятая релиз открытого проекта windows95 с исходным кодом полностью на JavaScript. «Это Windows 95, работающая в приложении Electron. Да, это полная релиз. Извините», — пояснил разработчик решения.
Проект работает в Windows, а также на macOS и Linux, что подарит вам ностальгию или возможность обойти ограничения старой операционной системы нев зависимости от вашей текущей платформы.

Читают сейчас
2 часа назад
BMX выпустила портативные зарядки с полутвердотельными батареями
Сингапурская компания BMX объявила о выпуске линейки магнитных портативных зарядных устройств SolidSafe с полутвердотельными батареями. Они будут стоить от $59. Ознакомиться далее
3 часа назад
После аварии ракеты New Glenn стартовало обсуждение безопасного периметра вокруг космодромов
После взрыва тяжёлой ракеты New Glenn компании Blue Origin стало понятно, что восстановление уничтоженной стартовой площадки займёт множество месяцев. Теперь эксперты оценивают возможности расширения

3 часа назад
Claude Code, но опенсорсный: вышел ИИ-агент Kimi Code CLI
Китайская Moonshot AI выпустила Kimi Code CLI — терминального агента для программирования, который по логике работы во многом повторяет Claude Code от Anthropic, но распространяется с открытым исходны

3 часа назад
Режим блокировки от OpenAI защитит конфиденциальные информация от атак с внедрением промптов
OpenAI анонсировала новую функцию, которая обеспечит дополнительную защиту от атак с внедрением вредоносных подсказок на веб-страницах и в других источниках контента. Ознакомиться далее

4 часа назад
Представлен публике публичный инициатива Opengram — хост для протокола Telegram
Команда энтузиастов представила публичный инициатива под названием Opengram. Это подход является реализацией серверной части мессенджера Telegram. Проект представляет собой самостоятельный сервер, реа