Проект 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.

В отличие от WSL2, в WSL9x не се прилага виртуализация и 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