Подробности
Как работает WSL9xНезависимый разработчик создал проект WSL9x (Windows 9x Subsystem for Linux), который позволяет запускать современные ядра Linux внутри операционных систем Windows 95, Windows 98 и Windows ME. Инструментарий даёт возможность одновременно выполнять приложения для Linux и Windows 9x в одной системе, по аналогии с подсистемой WSL в современных версиях Windows. На данный момент поддерживается только запуск консольных программ. Код написан на языках C и ассемблере и распространяется под лицензией GPLv3. В отличие от WSL 2, в новом проекте не применяется виртуализация.
Ядро Linux выполняется в нулевом кольце защиты параллельно с ядром Windows. Это позволяет использовать разработку на старых системах без поддержки аппаратной виртуализации, включая процессоры i486. В системе применяется модифицированное ядро Linux 6. 19, собранное для работы в режиме User mode Linux, который предназначен для запуска ядра как пользовательского процесса.
Любое обращение к POSIX API в слое трансляции заменяется вызовом API ядра Windows 9x. В операционную систему загружается специальный драйвер VxD. Он отвечает за инициализацию подсистемы, размещение ядра в памяти, диспетчеризацию прерываний и обработку событий из пространства пользователя. Ядро Windows 9x не поддерживает таблицу векторов прерываний IDT, поэтому установить собственный обработчик прерывания 0x80 нельзя. Для системных вызовов применяется обработчик General Protection Fault, перехватывающий исключения при выполнении инструкции SYSCALL.
Пользователям доступна утилита wsl. com, оформленная в виде 16-битного приложения DOS. Она позволяет использовать командную строку MS DOS для запуска программ Linux. Утилита обеспечивает передачу событий ввода и симулирует работу консоли для отображения вывода с поддержкой кодов ANSI.

Комментарии
Оставляйте комментарии, отвечайте другим пользователям и добавляйте быстрые реакции.