
Я читал об архитектуре MS-DOS и наткнулся на такие файлы, какAutoexec.batиconfig.sys.
Autoexec.batпакетный ( .bat
) файл, содержащий команды, которые использовались для инициализации путей, переменных среды, CWD, Prompt и т. д. Этот файл (вместе сconfig.sys) автоматически выполняются во время процедуры запуска ОС (если они существуют).
С,MS-DOSиКомандная строкапо большей части одинаковы (или похожи) друг на друга, я думал, что та же процедура будет перенесена и в текущие версии ОС Windows.
Это кажется понятным, поскольку, когда мы начинаем, cmd
мы уже каждый раз находимся в определенном CWD, имеем набор указанных мест path
и т. д.
Но оказывается,Windows XPа в более поздних версиях ОС Windows его не было.
Поэтому я думал, как теперь все инициализируется, и почемуAutoexec.batудалили?
решение1
Windows NT была совершенно другой ОС, которая не зависела от DOS, поэтому все ее потомки (включая Windows 2000, а не только XP и выше) также не используют DOS-вещи, такие как AUTOEXEC.BAT. При этом AUTOEXEC.NT есть %SystemRoot%\system32
для настройки среды при запуске приложения DOS
Windows ME, несмотря на то, что в линейке Windows 9x, также пыталась отойти от DOS. Поэтому она анализирует только переменные окружения в AUTOEXEC.BAT
решение2
CONFIG.SYS
установил различные опции и загрузил драйверы с помощью строк DEVICE=
и DEVICEHIGH=
. Он был прочитан во время запуска DOS.
Когда DOS завершит инициализацию, он запустит оболочку. Это указывается строкой SHELL=
в CONFIG.SYS и обычно так, COMMAND.COM
но не обязательно.
COMMAND.COM
будет работать AUTOEXEC.BAT
при запуске с /P
параметром — обычно это указывается в CONFIG.SYS
COMSPEC=
строке (Примеры), что означает «сделать постоянным» (это не «подоболочка»). Переключатель /D
может это подавить.
Различия между DOS и другими операционными системами Microsoft уходят корнями дальше XP. Они уходят далеко в 1993 год, когда Windows впервые работала над веткой NT Windows; затем два года спустя, когда вышла Windows 95. И ветка 9x, и ветка NT отличаются от MS-DOS под капотом — в случае NT, сильно и чрезвычайно.
В качестве грубого обзора различий NT Windows и MS-DOS можно привести следующие моменты:
- Использует защищенный режим ЦП для создания барьера между ядром и пользовательским пространством.
- Ожидает, что несколько программ будут работать и обращаться к одним и тем же дискам, дисплею и т. д., за исключением примитивной и ограниченной системы TSR DOS.
- Имеет систему обмена сообщениями, поддерживающую событийное программирование, необходимое для поддержки методологии ввода графического интерфейса мыши и окна.
- Имеет API (GDI и т. д.), которые необходимо использовать для создания окон, виджетов и изменения отображения.
- Ожидает, что программы будут выполнять системные вызовы для взаимодействия со всеми устройствами, и не разрешает прямой доступ к оборудованию.
- Вначале NT не предоставляла большого количества инструментов командной строки, доступных из COMMAND.COM или эквивалентных им для выполнения задач в операционной системе.
Итак, процессы загрузки отличаются, и опять же, для ветки Windows NT (включая XP) они существенно отличаются.
В Википедии есть хорошие статьи по темеподробности об инициализации Windows NT.
9x Windows больше похожа на многозадачное расширение MS-DOS, со странными механизмами для расширения до 32 бит. Процесс загрузки для 9x немного больше похож на MS-DOS,это хорошее описание. Windows ME была последней из 9x-ветви Windows до того, как Microsoft сделала XP как потребительской, так и деловой версией Windows, основанной на NT.
решение3
Запуск выполняется службами и папкой «Автозагрузка» для запуска приложений (см. вкладку «Автозагрузка» диспетчера задач). На сегодняшний день нет аналога тому, как запускался DOS. Начиная с NT4, службы могут запускаться даже без входа в систему. Очень по-другому.