MS-DOS в составе Windows 95 использовалась для двух целей:
- Она служила загрузчиком.
- Она выступала в качестве слоя совместимости с 16-битными драйверами.
Когда Windows 95 стартовала, сначала загружалась специальная версия MS-DOS, именно она обрабатывала ваш файл CONFIG.SYS
, запускала COMMAND.COM
, который выполнял ваш AUTOEXEC.BAT
и в конце концов выполнял WIN.COM
, который в свою очередь начинал процесс загрузки 32-битного менеджера виртуальных машин VMM.
Эта специальная версия MS-DOS была полностью функциональна в той мере, в которой слова «полностью функциональна» вообще применимы к MS-DOS. По-другому и быть не могло, при выходе в режим эмуляции MS-DOS только эта версия и оставалась работать.
Программа WIN.COM
начинала загрузку того, что большинство людей называют собственно «Windows». Посредством копии MS-DOS она загружала менеджер виртуальных машин, считывала файл SYSTEM.INI
, загружала драйверы виртуальных устройств, затем выключала EMM386 (если таковой был) и переключалась в защищённый режим. «Настоящая Windows» с точки зрения большинства людей — именно защищённый режим.
В защищённом режиме драйверы виртуальных устройств творили свою магию. В числе их действий было вытаскивание всего состояния MS-DOS, перевод его в состояние 32-битной файловой подсистемы и отключение MS-DOS. Все дальнейшие файловые операции направлялись в 32-битную файловую подсистему. Когда программа обращалась к int 21h
, ответственной за обработку оказывалась 32-битная файловая подсистема.
Здесь вступает в игру вторая роль MS-DOS. Видите ли, программы и драйверы MS-DOS любили встраиваться в глубины операционной системы. Они могли заменять обработчик прерывания 21h
, они могли патчить код системы, они могли заменять низкоуровневые дисковые обработчики int 25h
и int 26h
. Они могли также творить умопомрачительные вещи с прерываниями BIOS типа int 13h
, ответственного за работу с дисками.
Читать полностью »