Турбо-перенос драйверов из Windows в LINUX-BSD




Готовый пример реализации или спроектировать— означает украсть - часть 2


На другой дискете находится "NTDLL.gz" (о происхождении которого догадаться нетрудно) и ntfschk.exe. Последний представляет собой полностью переписанный вариант штатной утили "chkdsk.exe", поскольку чтобы заставить консольное приложение заработать в MS-DOS пришлось бы эмулировать еще множество функций, что в планы Руссиновича очевидно не входило (тем не менее, легендарный хакер Юрий Харон все-таки создал расширитель, способный запускать Windows-приложения из под голого ДОС'а, без обращения к Windows вообще! Все умещается на одну дискетку, — красота! Сам расширитель можно скачать с http://www.doswin32.com. Для некоммерческого применения он бесплатен).

Еще на дискетах содержатся файлы C_866.gz, AUTOCHK.gz, C_437.gz, C_1252.gz, L_INTL.gz содержащие языковые страницы и прочую служебную мишуру, без которой можно в принципе и обойтись.

Суть в том, что ядро проекта "NTFS for MS-DOS" составляют три файла: NTOSKRNL.EXE, NTDLL.DLL и NTFS.SYS, которые помещаются в своеобразную скорлупу файла NTFSPRO.EXE, переводящего процессор в защищенный режим и транслирующего MS-DOS-запросы в "язык", понятный NTFS.SYS и наоборот. Как видите, это работает. Конечно, LINUX/BSD это совсем не чистая MS-DOS. Ядро по своему распределят прерывания и другие системные ресурсы, поэтому при написании "скорлупы-оболочки" возникает множество технических проблем, но все они решаемы. Пример аналогичного решения можно найти в другом проекте Марка Руссиновича "NTFS for Windows 9x". Здесь так же используется "скорлупа", создающая адекватное окружения для NTOSKRNL.EXE и транслятор запросов, но она уже работает совсем не в голой MS-DOS, с которой все и так ясно, а в агрессивной Windows 9x, которая отличается от NT ничуть не меньше, чем LINIX/BSD.




Содержание  Назад  Вперед