Проект WSL9x за стартиране на съвременни Linux ядра в среда Windows 95

Не свързан с компанията Microsoft ентусиаст реализира инструменти WSL9x (Windows 9x Subsystem for Linux), които позволяват стартиране на модерни ядра на Linux в ядрото на Windows 95/98/ME. Проектът предоставя възможност за едновременно изпълнение на приложения за Linux и Windows 9x в една система, аналогично на начина, по който слоя WSL позволява работа с Linux приложения в съвременните версии на Windows. Поддържа се само стартиране на конзолни Linux програми. Кодът на компонентите WSL9x е написан на C и асемблер и се разпространява под лиценцията GPLv3.

В контекста на WSL9x в сравнение с WSL2 не се прилага виртуализация, а ядрото на Linux се изпълнява в нулево защитно ниво паралелно с ядрото на Windows, което позволява използването на WSL9x на системи без поддръжка на хардуерна виртуализация, дори с CPU i486. В системата се използва модифицирано ядро на Linux 6.19, компилирано за работа в режим UML (User-mode Linux), предназначено за изпълнение на ядрото като потребителски процес. Обажданията до POSIX API в слоя UML транслация са заменени с извикване на API на ядрото на Windows 9x.

В Windows се зарежда подготвен VxD-драйвер от проекта, който отговаря за инициализацията на подсистемата WSL9x, зареждането и разполагането на ядрото на Linux в паметта, диспетчеризацията на прекъсвания, цикличната передача на управление към ядрото на Linux в режим на съвместна многозадачност и обработката на адресирани към Linux ядрото събития от потребителското пространство, като изпълнение на системни извиквания и достъп до неразпределени страници памет (page faults). Тъй като ядрото на Windows 9x не поддържа таблица на векторите за прекъсвания (IDT, Interrupt Descriptor Table), което не позволява установяване на собствен обработчик на прекъсване 0x80, за системни извиквания се прилага обработчик на GPF (General Protection Fault), който улавя изключения, възникващи при изпълнението на инструкциите SYSCALL.

На потребителите е предоставена утилита wsl.com, оформена като 16-битово DOS приложение, което позволява използването на командния ред на MS-DOS за стартиране на Linux програми. Утилитата осигурява предаване на входни събития и симулира функционалността на конзолата за показване на изхода с поддръжка на ANSI escape кодове.

Проект WSL9x за стартиране на съвременни Linux ядра в среда Windows 95


Източник: opennet.ru
Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster