2 часа назад
Представлен публике инициатива 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, что подарит вам ностальгию или возможность обойти ограничения старой операционной системы нев зависимости от вашей текущей платформы.

Читают сейчас

18 минут назад
Опубликована подборка 1000+ промптов для GPT Images 2. Подойдут и для других рисовалок
Команда Youmind запустила сайт с подборкой из более 1000 промптов для новой GPT Images 2. Ведущие ресурса отбирают промпты из X, Reddit и других ресурсов, дополнительно проверяют их, категоризируют и

38 минут назад
Дедлайн поддержки ядра Linux 6.18 истёк, всем рекомендуется перейти на движок Linux 7.0 или Linux 6.18 LTS
Мейнтейнер проекта Грег Кроа-Хартман предупредил, что срок поддержки ядра Linux 6.19 истёк. Он порекомендовал в объявлении в списке рассылки ядра Linux всем пользователям перейти на ядро Linux 7.0 или
55 минут назад
В АРПП «Отечественный софт» предложили создать согласительный орган для выработки взвешенной политики блокировок в сети
В Ассоциации разработчиков программных продуктов (АРПП) «Отечественный софт» (объединяет более 300 компаний — разработчиков программного обеспечения, в том числе 1С, «Лабораторию Касперского», «Базаль
1 час назад
В «Билайне» изучают функция введения белого списка VPN
Гендиректор «Билайна» Сергей Анохин сообщил СМИ, что оператор связи изучает функция введения белого списка VPN. По его словам, это возможно, поскольку некоторые сервисы блокируются (онлайн-кинотеатры,

3 часа назад
Вышел эмулятор QEMU 11.0
21 апреля 2026 2025 года вышел эмулятор QEMU 11.0. Открытый проект QEMU даёт возможность запустить приложение, собранное для одной аппаратной платформы, на системе с совершенно иной архитектурой, в ча