Процесс загрузки Windows 9x
С чего начинается Windows…
Операционная система Windows 9х — не такая простая штука, как многим кажется. А программисты Microsoft не ставят перед собой задачи как следует поиздеваться над пользователями изощрёнными сбоями и «глюками». Качество и надёжность работы Windows зависит от множества факторов, среди которых, как ни парадоксально, компьютерная грамотность пользователя стоит на одном из первых мест. Система, которая ни при каких условиях не будет реагировать на любые самые разрушительные действия пользователя или некорректно написанной программы, должна попросту не позволять пользователю или программе эти действия совершать, то есть в идеале вообще обходиться без пользователя и стороннего программного обеспечения. Бред? Конечно, бред.
Несколько похожего результата можно, правда, добиться, если запретить пользователю делать какие-либо настройки, скрыть от него как можно больше всевозможных меню и панелей управления и сделать так, чтобы пользователь мог запускать только одно-два проверенных приложения. В Windows 9x такое, в принципе, допустимо, утилиты типа WinBoost [1] 2001 Gold или System Policy Editor позволяют спрятать от шаловливых ручонок юзеров почти все элементы управления, хоть сколько-нибудь влияющие на работу и настройки ОС. Но такой подход годится разве что в интернет- или игровых клубах, где админ обязан любой ценой сохранять работоспособность парка машин при постоянных атаках вандалов-посетителей. Да и всё равно не удастся обойтись без периодического полного восстановления информации с помощью программ, делающих резервные копии-клоны содержимого жёстких дисков.
Но дома ведь не станешь сам же от себя все прятать, даже если знаешь, что временами любимое пиво становится причиной неадекватного поведения! В таких случаях спасёт только доскональное изучение операционной системы и профилактика сбоев в виде резервирования жизненно важных конфигурационных файлов — благо, таких файлов не так уж и много. Часто причина «глюка» оказывается в неприметной строчке одного из тщательно скрытых от глаз пользователя системных файлов, которые хоть и предназначены для настройки различных и достаточно важных параметров ОС, но при этом искать документацию по ним в системе помощи Windows практически бесполезно. И тут спасение утопающих — дело рук самих утопающих, пользователям, желающим повысить живучесть Windows 9x надо, не надеясь на Microsoft, чётко знать, какой файл в ОС за что отвечает, и какой параметр на что влияет, дабы всегда максимально целенаправленно искать источник возникших проблем.
А поскольку настройки Windows 9х задаются ещё на этапе загрузки операционной системы, в процессе которой один за другим обрабатываются всевозможные «конфиги», пользователь, который хочет общаться с системой на «ты», обязан также абсолютно чётко представлять начала из начал операционной системы: как происходит загрузка ОС, в каком порядке она обращается к системным файлам, каким образом допускается управлять процессом загрузки и как конфигурировать систему под свои нужды. Без этих основополагающих знаний причины многих элементарно разрешимых проблем навсегда останутся тайной за семью печатями для пользователей, не старающихся вникать в работу ОС подчас из-за примитивной лености.
Включение компьютера
Загрузка операционной системы — строго регламентированная процедура, во время которой какие-либо сбои абсолютно недопустимы. Если что-то нежелательное всё же происходит, то для того, чтобы устранить причину неполадок, надо выяснить, на каком этапе загрузки ОС она произошла, а для этого необходимо представлять себе, как эта самая загрузка производится.
При включении компьютера в первую очередь происходит загрузка BIOS, самой главной программы, «вшитой» в одну из микросхем ПК, и начальное тестирование памяти и оборудования (так называемая POST — проверка Power-on Self Test). Всё это дело отображается на экране в виде минимума информации об обнаруженных устройствах и в ряде случаев сопровождается звуковыми сигналами «пищалки» компьютера. Сигналы эти предназначены для оповещения пользователя о проблемах, возникших во время инициализации оборудования, и помогают определить причину неисправности, даже если из-за какой-то поломки отсутствует вывод изображения на экран монитора. Более-менее общепринятой считается такая расшифровка этой «азбуки Морзе»:
- один длинный непрерывный гудок или очень много коротких — проблемы с блоком питания;
- один длинный плюс два-три коротких сигнала — проблемы с видеокартой;
- один длинный и один короткий гудок — проблемы с материнской платой;
- один короткий — ошибка регенерации RAM (либо проблемы с монитором или видеокартой) — самая безобидная ошибка;
- два коротких — ошибка чётности памяти;
- три коротких — неисправна оперативная память (ошибка в первых 64 килобайтах);
- четыре коротких — отказ системного таймера;
- пять коротких — отказ процессора;
- шесть коротких — отказ контроллера клавиатуры;
- семь коротких — ошибка при проверке виртуального режима центрального процессора;
- восемь коротких — неисправна видеокарта;
- девять коротких гудков — неверная контрольная сумма BIOS;
- десять коротких — ошибка при считывании или записи CMOS-RAM.
Но, конечно, наиболее точную информацию по звуковой сигнализации вы найдёте, обратившись на сайты производителей материнской платы и BIOS.
По окончании тестирования и инициализации оборудования осуществляется считывание в память внесистемного, общего для всех ОС загрузчика (Non-System Bootstrap — NSB), расположенного в стартовом секторе физического жёсткого диска. Данный загрузчик создаётся во время разбиения и конфигурирования жёсткого диска программой FDISK и является одной из привлекательных целей для деструктивных вирусов. Восстановить его при повреждении можно, переразбив диск заново (и потеряв информацию на нём), либо использовав утилиту FDISK с недокументированным ключом MBR, предназначенным для восстановления главной загрузочной записи диска: FDISK /MBR
. Но и в этом случае вам для восстановления информации с «убитого» диска придётся воспользоваться программами типа Easy Recovery [2] или Lost & Found [3]. В обязанности NSB входит уже считывание и запуск системного загрузчика (System Bootstrap — SB), который устанавливается вместе с ОС и находится в стартовом секторе логического диска. В Windows 9x этот загрузчик восстанавливается командой SYS C:
, вводимой после загрузки ПК с системной дискеты, созданной специально для этого предусмотренным инструментом: «Панель управления» → «Установка и удаление программ» → «Загрузочный диск».
Загрузка MS-DOS
Далее в Windows 9х начинается этап, называемый в Microsoft «фазой совместимости с операционной системой реального режима», что в переводе на нормальный язык оказывается загрузкой старичка MS-DOS, без которого Windows работать не в состоянии — в дело вступает файл IO.SYS
(ядро MS-DOS версии 7 или 8, в зависимости от типа Windows), находящийся, как и многие другие системные файлы, в корневом каталоге загрузочного диска. Файл IO.SYS
должен располагаться в строго определённом секторе жёсткого диска, и в случае каких-либо повреждений переписать его заново следует командой SYS C:
. Так что, спасательной загрузочной дискетой пренебрегать ни в коем случае не стоит. Надо заметить, что помимо загрузки ядра MS-DOS, на которое опирается в своей работе Windows, в функции IO.SYS
входит ещё и отображение начальной заставки–логотипа Windows, которая находится в упакованном виде в коде этого файла. Картинка из IO.SYS
выбирается Windows в том случае, если в корневой директории системного диска отсутствует файл LOGO.SYS
с альтернативной заставкой.
Модуль IO.SYS
в Windows совместил в себе функции двух основополагающих файлов из MS-DOS 6.22 — собственно самого IO.SYS
и файла MSDOS.SYS
, который теперь тоже существует, но в несколько другой роли — конфигурационного файла. MSDOS.SYS
— самый первый конфигурационный файл, обрабатываемый Windows на данном этапе загрузки, в нём содержится несколько базовых параметров, управляющих запуском ОС, ошибка в которых может привести к полной невозможности загрузить ПК, либо к неэффективному расходованию машинных ресурсов. Этот файл является обычным текстовым файлом, который можно открыть и отредактировать в каком-нибудь простом текстовом редакторе типа Блокнота, или даже во встроенном редакторе простейшей DOS-оболочки Norton Commander. Если же желательно что-нибудь совсем уж доступное, то воспользуйтесь для работы с этим файлом утилитой MSDOS.SYS Editor [4] — она даёт начинающим пользователям удобный и интуитивно понятный графический интерфейс для редактирования любых параметров этого файла. При работе с этим редактором абсолютно не требуется знание ни параметров MSDOS.SYS
, ни правил их написания — программа сама сделает всё за вас, лишь флажки ставьте где нужно. Учтите только, что ввиду важности файла MSDOS.SYS
ему присвоены атрибуты «Только чтение», «Системный», «Скрытый», поэтому перед его изменениями вам надо будет позаботиться о снятии этих атрибутов, для чего удобно использовать все тот же Norton Commander, или, щёлкнув по значку файла в Проводнике правой кнопкой мыши и, выбрав в контекстном меню пункт «Свойства», просто снять флажки этих атрибутов в появившемся диалоговом окне. Разумеется, необходимо, чтобы скрытые файлы отображались в Проводнике, иначе вы его просто не увидите — этот режим устанавливается в меню «Свойства папок». Не забудьте только потом вернуть все снятые атрибуты на место — устойчивость системы от этого немного повысится. Да и резервная копия этого файла (как и всех остальных конфигурационных файлов), сделанная перед экспериментами по его редактированию, будет совсем не лишней. Обратите также внимание, что если у вас имеются сжатые утилитой DriveSpace диски, то ещё один файл MSDOS.SYS
должен находиться в корневой директории сжатого диска, причём оба файла должны быть идентичны.
Открыв файл MSDOS.SYS
, вы увидите два раздела — [Path]
и [Options]
с набором параметров в каждом из них. Комментарии записаны в строках, начинающихся с точки с запятой — ;
, таких строк вы увидите в этом файле пару десятков, в которых в подавляющем большинстве случаев прописан набор крестиков — это сделано для совместимости с некоторыми программами, дабы файл MSDOS.SYS
имел размер не менее килобайта — не удаляйте эти строки. Кстати, без этого файла некоторые DOS-программы тоже не заработают, хотя сама Windows в нём, в принципе, не нуждается.
В разделе [Path]
заданы важнейшие пути к системным папкам и файлам Windows, которые необходимо задавать исключительно в стандарте 8.3
, то есть не используя длинные названия — имя папки не должно содержать более 8 букв:
Host
— буква диска, с которого следует загружать ОС;Win Boot Drv=С Win
— путь к папке Windows с системными файлами;Boot Dir= C:\WINDOWS WinDir=
— путь к папке, в которую установлена Windows;C:\WINDOWS Uninstall
— диск, на котором расположены файлыDir=С W98undo.dat
иW98undo.ini
, предназначенные для удаления Windows, если при установке ОС поверх её предыдущего варианта вы выбрали сохранение файлов старой ОС для возможности последующего возврата к ней. При чистой установке системы или при отказе от сохранения системных файлов этот пункт не появляется.
В разделе [Options]
уже гораздо больше параметров, которые имеют вид типа параметр=
, при этом каждый параметр обязательно располагается в отдельной строке. Если какой-то параметр не записан в вашем файле, или записан с ошибками, то система использует то его значение, которое принято по умолчанию, так что совсем не обязательно прописывать в этот файл всё, что только можно. Наиболее подробный перечень параметров MSDOS.SYS
приведён на сайте MAX Speed Windows [5], но при желании вы без труда найдёте в Интернете и другие материалы с расшифровкой всех его параметров, в том числе и на русском языке.
Вот таблица с директивами, которые могут встретиться в разделе [Options]
файла MSDOS.SYS
:
Параметр | Назначение | Значение по умолчанию | Возможные значения |
---|---|---|---|
AutoScan |
Управляет режимами запуска утилиты ScanDisk после ненормального завершения работы Windows. Используется, начиная с Windows OSR2. Полезен, если другими путями от постоянного сканирования диска не удается избавиться | 1 — выдаётся запрос на осуществление проверки диска, а если пользователь на него не реагирует в течение минуты, то проверка диска запускается автоматически | 0 — никогда не запускать ScanDisk 2 — сканирование производится автоматически без запроса |
BootConfig |
Недокументированный переключатель, позволяет обрабатывать текущие параметры загрузки | 1 — используются текущие параметры загрузки | 0 — используются альтернативные параметры |
BootDelay |
В Windows 95 пауза после выдачи сообщения «Starting Windows 95» (в секундах), в течение которой можно было вызвать загрузочное меню клавишей F8. Теперь только запрещает выдачу этого сообщения | В Windows 95 — 2 секунды. В Windows 98/Me — 0, при этом не будет выводится сообщение «Starting Windows 98» | |
BootFailSafe |
В Windows 95 вызывал загрузку в режиме защиты от сбоев, теперь следует использовать параметр BootSafe | 0 — нормальный режим загрузки | 1 — Windows загрузится в режиме защиты от сбоев |
BootGUI |
Управляет загрузкой графической оболочки, в «Миллениуме» не действует | 1 — загрузка GUI разрешена | 0 — произойдёт загрузка только до командной строки MS-DOS |
BootKeys |
Управляет использованием горячих клавиш, применяемых для быстрого выбора отдельных пунктов загрузочного меню | 1 — горячие клавиши разрешены | 0 — запрещены |
BootMenu |
Управляет появлением загрузочного меню | 0 — для вызова меню надо нажать F8 или Ctrl | 1 — меню появляется автоматически |
BootMenuDefault |
Устанавливает пункт загрузочного меню, который будет выбран системой по умолчанию, даже если меню не открывается | 1 — нормальная загрузка | 2—8 — любой из пунктов меню |
BootMenuDelay |
Задержка в секундах при выводе загрузочного меню, по истечении которой автоматически выбирается пункт, установленный по умолчанию | 30 секунд | 0—99 |
BootMulti |
Управляет возможностью двухвариантной загрузки. В Windows Me не используется | 1 — в загрузочном меню будет пункт для выбора предыдущей ОС | 0 — пункта «Предыдущий режим MS-DOS» в меню не будет |
BootSafe |
Управляет принудительной загрузкой режима защиты от сбоев | 0 — загрузка произойдёт в нормальном режиме | 1 — система будет загружена в режиме защиты от сбоев |
BootWarn |
Управляет выдачей предупреждающего сообщения при выборе режима защиты от сбоев. Обычно лучше отключить | 1 — сообщение будет выдаваться | 0 — предупреждение выдаваться не будет |
BootWin |
Управляет загрузкой ОС при выборе предыдущего режима MS-DOS | 1 — загружается Windows | 0 — загружается предыдущая ОС (MS-DOS 6.xx) |
DblSpace |
Управляет загрузкой драйвера сжатия дисков DoubleSpace. Если сжатие дисков не используется, то лучше отключить | 1 — DoubleSpace загружается всегда, даже если не используется | 0 — DoubleSpace не загружается |
DisableLog |
Управляет созданием файла протокола загрузки BOOTLOG.TXT . Протокол полезен при диагностике причин сбоев, обычно же лучше его выключить, дабы ускорить загрузку ОС |
1 — протокол создаётся | 0 — протокол не создаётся |
DoubleBuffer |
Управляет двойной буферизацией, необходимой некоторым SCSI-, старым ESDI-/ |
0 — двойная буферизация запрещена | 1 — двойная буферизация включается при необходимости 2 — двойная буферизация включена всегда |
DrvSpace |
Управляет загрузкой драйвера сжатия дисков DRVSPACE (если он имеется на диске). Если сжатие дисков не используется, то желательно отключить |
1 — DriveSpace включён | 0 — DriveSpace не загружается |
LoadTop |
Управляет загрузкой файлов COMMAND.COM и DRVSPACE.BIN (DBLSPACE.BIN ) в область памяти выше первых 640K. Можно использовать для совместимости с некоторыми программами, которым нужны верхние адреса |
1 — файлы загружаются в верхние адреса стандартной памяти, экономя тем самым базовую память | 0 — файлы будут расположены в первых 640 килобайтах, верхние же адреса достанутся требующим их приложениям |
Logo |
Управляет графической заставкой Windows, отображаемой при загрузке ОС | 1 — логотип отображается | 0 — логотип отключён |
Network |
Управляет отображением пункта «Safe Mode with network support» в загрузочном меню | 1 — отображение разрешено | 0 — запрещено |
SystemReg |
Управляет сканированием реестра при загрузке ОС | 1 — реестр сканируется | 0 — реестр не сканируется |
WinVer |
Отображает версию ОС | В «Миллениуме» 4.90.3000 Windows ME | 4.10.2222 в Windows 98 SE или 4.10.1998 в Windows 98 |
На данном этапе вы также можете наблюдать на экране монитора сообщение «Starting Windows 98…». Если в этот момент нажать клавишу F8 или Ctrl, то вы получите ещё одну возможность управлять загрузкой ОС с помощью специального загрузочного меню, состоящего в Windows 95 из восьми пунктов, а в «Миллениуме» — из четырёх. Вот эти пункты:
- Normal — продолжение загрузки в обычном режиме, если вы попали в загрузочное меню случайно или не хотите выбирать другие опции.
- Logged (BOOTLOG.TXT) — нормальная загрузка с созданием в корневой директории системного диска файла
BOOTLOG.TXT
с подробным протоколом хода загрузки компонентов ОС. Данный режим чрезвычайно полезен при поиске и анализе возможных причин неполадок, в частности, причин зависания ПК на этапах загрузки или выключения. Удобный интерфейс для анализа протокола загрузки даёт утилита BootLog Analizer [6]. - Safe Mode — режим защиты от сбоев, при котором в память загружается минимальный набор сверхнадёжных драйверов: драйвер сжатых дисков DoubleSpace или DriveSpace, расширенной памяти
HIMEM.SYS
, файловой системыIFSHLP.SYS
, «виндовые» драйвера клавиатуры, мыши, VGA-адаптера. Директивы из конфигурационных файловCONFIG.SYS
,AUTOEXEC.BAT
иSYSTEM.INI
игнорируются, а автоматически загружаемые программы не запускаются. Если в этом режиме «глюк» пропадает, то ищите его причину в тех драйверах и программах, которые работают в фоновом режиме при выборе нормальной загрузки ОС. При некоторых сбоях доступ к управлению ОС можно получить только из этого режима, называемого иногда «безопасным». - Safe mode with network support — тоже загрузка в режиме защиты от сбоев, но ещё и с сетевой поддержкой (в Windows 98/Me отсутствует).
- Step-by-Step confirmation — интерактивная, пошаговая загрузка системы, при которой вы можете выбирать, какую директиву конфигурационных файлов следует выполнять, а какую надо игнорировать. Драйвера виртуальных устройств будут загружаться также только после вашего подтверждения. Используется, когда надо выяснить, какая конкретно строка в конфигурационных файлах (например, в
AUTOEXEC.BAT
) вызывает сбой или если необходимо отменить загрузку проблемного драйвера. - Command Prompt only — загрузка системы только до командной строки, без графической оболочки Windows. Фактически при этом вы получаете чистый MS-DOS седьмой версии, входящий в состав Windows 98. Причём игнорируются не только файлы
CONFIG.SYS
иAUTOEXEC.BAT
, но и скрытые вIO.SYS
директивы, подменяющие эти файлы в их отсутствие. Загрузится только драйвер сжатых дисков, если таковые имеются. Чтобы запустить затем GUI (графический интерфейс), надо набрать на клавиатуре команду WIN. В «Миллениуме» эта возможность была исключена, и теперь для полноценного выхода в MS-DOS надо создавать загрузочную дискету, и грузить ПК уже с неё. - Safe mode command prompt only — режим защиты от сбоев без графической оболочки, в Windows Me опять-таки отсутствует.
- Previous version of MS-DOS — загрузка предыдущей версии MS-DOS (или Windows 3.11, если она у вас ранее стояла поверх MS-DOS). Для того, чтобы этот пункт работал, надо, чтобы сохранились резервные копии системных файлов MS-DOS 6.22 с расширениями
.DOS
в коневой директории системного диска — ОС при выборе данного пункта их переименует так, чтобы они получили нормальные названия, типаAUTOEXEC.BAT
, а «виндовые» файлы будут временно переименованы в файлы с расширением .W40 (дабы не запутаться, после выбора предыдущей ОС не удаляйте никакие файлы в корне системного диска, к тому же часто Windows не удаётся вернуть все имена к исходному состоянию, и приходится это делать вручную). Учтите, что если в файлеMSDOS.SYS
будет строкаBoot
, то этот пункт отображаться в загрузочном меню не будет. В «Миллениуме» он также не предусмотрен.Multi=0
После того как вы выберете режим загрузки или проигнорируете вызов загрузочного меню, будет загружен драйвер сжатых дисков DBLSPACE.BIN
или DRVSPACE.BIN
, если вы, конечно, ранее не отключили его автоматическую загрузку в файле MSDOS.SYS
и он имеется на диске. Но, поскольку сегодня мало уже кто использует сжатие дисков (разве что на старых ноутбуках пока есть в ней необходимость), то весьма рекомендуется сэкономить немного памяти и времени, отказавшись от загрузки этих драйверов, для чего следует задать соответствующий параметр в MSDOS.SYS
. Далее будут считаны некоторые параметры из системного реестра, проанализированы аппаратные средства компьютера и, если у вас имеется несколько конфигураций оборудования, заданных в Свойствах системы на странице «Профили оборудования», то вам будет предложено выбрать нужную конфигурацию (или система сама сделает это за вас).
Затем следует исполнение инструкций файла CONFIG.SYS
, второго конфигурационного файла Windows, опять-таки расположенного в корневой директории системного диска. CONFIG.SYS
предназначен для задания некоторых ключевых системных параметров и загрузки драйверов реального режима. Он также является обычным текстовым файлом, и поэтому для его редактирования тоже достаточно Блокнота, хотя, в Windows 98 появилась и гораздо более удобная и безопасная утилита для редактирования основных конфигурационных файлов — Программа настройки системы (System Configuration Utility) — MSCONFIG.EXE
. Главное преимущество этой утилиты в том, что в ней предусмотрена возможность отмены ошибочно введённых изменений. Необрабатываемые комментарии в CONFIG.SYS
также начинаются с точки с запятой либо со слова REM
(ремарка, комментарий). Но, по большому счёту, файл этот операционной системе не очень-то и нужен, так как все необходимые Windows параметры задаются автоматически ещё на этапе загрузки файла IO.SYS
— в нём содержатся все нужные системе параметры, используемые в том случае, если в CONFIG.SYS
явно не прописаны альтернативные установки. Получается, что «Винды» сами загружают по умолчанию как бы «невидимый» CONFIG.SYS
, в котором такие строки:
dos=high
— ядро MS-DOS помещается в высокую память, что немного высвобождает базовую память;device=
— этот драйвер обеспечивает доступ к расширенной и верхней памяти;c:\windows\ himem.sys device=
— драйвер поддержки файловых систем, без него Windows обычно не может загрузиться;c:\windows\ ifshlp.sys device=
— данный драйвер нужен для того, чтобы устаревшие приложения не отказывались работать с современными реализациями MS-DOS — на запрос старой программы он отвечает, что установлена именно та версия MS-DOS, которая ей нужна;c:\windows\ setver.exe fileshigh=30
— максимальное количество одновременно открытых файлов, для многих DOS-программ требуется увеличить это значение до 100;lastdrivehigh=z
— последняя буква, которую можно использовать для обозначения дисков;buffershigh=30
— количество буферов дискового ввода-вывода;stackshigh=9,256
— количество и размер стеков, предназначенных для временного хранения различной системной информации;shell=
— путь и параметры используемого командного интерпретатора;command.com /p fcbshigh=4
— количество блоков управления файлами, необходимых старым DOS-программам.
Все эти параметры и драйвера грузятся, даже если в вашем CONFIG.SYS
они не прописаны, и даже, если вообще отсутствует файл CONFIG.SYS
. Значения, задаваемые командами files
, lastdrive
, buffers
, stacks
, fcbs
и драйвер SETVER.EXE
нужны только приложениям MS-DOS, а Windows 98 эти параметры не требуются. Вообще говоря, параметров, команд, драйверов, задаваемых через CONFIG.SYS
, очень много, чаще всего же этот файл используется для загрузки каких-либо специфичных DOS-драйверов, Windows же обычно все это хозяйство абсолютно не нужно, так как она имеет собственные 32-разрядные драйверы для любого устройства. Исключение составляет, пожалуй, лишь поддержка кириллицы, для неё необходимо, чтобы в CONFIG.SYS
присутствовали строки:
device=
Country=
А в файле Autoexec.bat
, о котором речь пойдёт ниже, строки
mode con codepage prepare=
mode con codepage select=866
keyb ru,,
В Windows Me, однако, ситуация несколько иная: файл CONFIG.SYS
(а ещё и COMMAND.COM
, и AUTOEXEC.BAT
) уже не обрабатывается системой при загрузке, а переменные среды окружения (Environment Variables) берутся из системного реестра. Так что, вписать в него свой драйвер вам не удастся — ОС этого не позволит, перезаписав изменённый файл старым вариантом (за это отвечает программа Regenv32.exe
), так что о его содержимом пользователям «Миллениума» задумываться не надо. Если же возникла необходимость что-то подправить, то делать это следует с помощью программы MSCONFIG.EXE
— там вы можете изменить значения некоторых переменных среды окружения, либо изменить региональные установки, так как поддержка кириллицы в Windows Me включается тоже только через эту утилиту, которая заносит соответствующие настройки в системный реестр. В Windows 98 же файл CONFIG.SYS
позволяет создавать даже меню мультиконфигурации, при использовании которого вы получаете шанс при каждой загрузке выбирать нужные в данный конкретный момент параметры и соответствующую этим параметрам ветвь в файле AUTOEXEC.BAT
, что просто незаменимо для тех, кто часто использует MS-DOS — получается очень гибкая и удобная система.
После обработки CONFIG.SYS
в Windows 98 загружается командный интерпретатор COMMAND.COM
, программа, отвечающая, например, за такие задачи, как: приём и выполнение команд, внутренних или введенных с клавиатуры; выполнение командных (с расширением BAT
) файлов; загрузка в память DOS-программ. По умолчанию используется COMMAND.COM
, находящийся в корневой директории системного диска, хотя с помощью команды SHELL
в CONFIG.SYS
можно задать любой путь к этому файлу. Файл этот тоже легко восстанавливается командой SYS C:
, после загрузки ПК с дискеты. С помощью только что загруженного COMMAND.COM
обрабатывается файл AUTOEXEC.BAT
, предназначенный для запуска резидентных DOS-программ, для выполнения каких-либо команд или установки некоторых системных параметров. Как и в случае с CONFIG.SYS
, файл AUTOEXEC.BAT
не является жизненно необходимым для Windows, поскольку всё, что нужно операционной системе, задаётся в «скрытом» AUTOEXEC.BAT
, также встроенном в файл IO.SYS
:
@echo off
— отключение вывода информации на экран при выполнении команд изAUTOEXEC.BAT
;net start
— загрузка сетевых компонентов реального режима, если они установлены;set tmp=
— установка значения переменнойC:\windows\ temp TMP
— путь к папке временных файлов;set temp=
— установка значения переменнойC:\windows\ temp TEMP
— опять путь к папке временных файлов;set COMSPEC=
— задаётся значение переменнойC:\COMMAND.COM COMSPEC
— путь к командному интерпретатору;prompt $p$g
— настройка вида курсора командной строки MS-DOS;path c:\windows; c:\windows\
— пути поиска выполнимых файлов, если при вводе команды путь явно не задавался.command
Если вас по какой-то причине не устраивают эти параметры, то отменить автоматическое выполнение всех директив из «невидимых» конфигурационных файлов можно, надо лишь в CONFIG.SYS
добавить строку DOS=NOAUTO
, либо записать в один из конфигурационных файлов явную команду, изменяющую требуемый параметр. На этом фаза загрузки компонентов реального режима завершается. Посмотреть, что в результате загрузилось можно, введя в строке «Выполнить» меню «Пуск» команды mem /p/c
или mem /d/p
— перед вами предстанет картина занятости памяти с перечнем всех загруженных DOS-драйверов и резидентных программ. Присутствие каких-либо DOS-драйверов без особой, чётко осознанной необходимости, строго говоря, не рекомендуется. Windows не всегда способна их отключить, подменяя своими драйверами, а это серьёзно снижает и быстродействие системы и её устойчивость — убедитесь в том, что вы не используете такие драйвера, заглянув ещё и на страничку «Быстродействие» Свойств Системы. Если используется какой-то нежелательный DOS-драйвер, то там будет присутствовать запись «Режим совместимости» вместо «32-битный», придётся в этом случае просмотреть ещё раз все конфигурационные файлы и удалить строку, вызывающую загрузку старого драйвера.
Загрузка Windows
Теперь начинается загрузка самой Windows. Автоматически запускается стартовый «виндовый» файл WIN.COM
, загружается диспетчер виртуальных машин из файла Vmm32.vxd
и создаётся системная виртуальная машина. После этого автоматически исполняется ещё один недокументированный командный файл — WINSTART.BAT
, если он имеется в корневой директории системного диска. Из него можно загрузить некоторые резидентные DOS-программы в системную виртуальную машину, так, чтобы они не занимали ценную базовую память, используемую при запуске программ MS-DOS из-под Windows (в «Миллениуме» этот файл также не обрабатывается). Далее загружаются статические (то есть постоянно находящиеся в памяти) драйвера. При этом сначала загружаются статические драйвера виртуальных устройств, прописанные в разделе реестра
HKEY_
и имеющие параметр StaticVxD
. Далее, загружаются драйвера, упакованные внутри главного файла Windows — Vmm32.vxd
, формируемого во время установки ОС на этапе определения имеющегося в наличии оборудования и уникального для каждого компьютера, поскольку в нём как бы собраны воедино используемые на данном компьютере драйвера. Собственно именно поэтому при повреждениях этого файла вас спасёт только его удаление и переустановка системы, во время которой он будет создан заново. Посмотреть, какие драйвера в нём заключены, вы можете в файле System.ini
, в разделе [386enh]
— ищите там строки типа device=
— это и будет список драйверов Vmm32.vxd
. И, наконец, загружаются драйвера из папки C:\Windows\
. Если какое-то устройство или программа после удаления некорректно подчистила за собой реестр или файл System.ini, то при загрузке ОС иногда выдаётся сообщение об отсутствии требуемого системе файла. Если ОС говорит, что нет какого-то файла с расширением .386
, то закомментируйте его вызов в файле System.ini
, поставив перед строкой с ним точку с запятой, например:
;device=Example.386
Если же расширение — .VXD
, то придётся поискать его вызов в реестре, в ключе
HKEY_
— удалите здесь его упоминание, опять-таки сохранив предварительно реестр на случай непредвиденных ошибок и сбоев. А если система запрашивает конкретно файл Vnetsup.vxd
, что бывает часто после удаления компонентов Microsoft Network в Свойствах сети, то удалите параметр StaticVxD
в ключе
HKEY_
Затем доходит очередь до обработки ещё одного конфигурационного файла C:\WINDOWS\
— выполняются те его команды, которые не присутствуют в реестре, причём записи в SYSTEM.INI
имеют приоритет перед аналогичными параметрами в реестре. Если есть какая-то несогласованность System.ini
с реестром, то система выбирает запись из System.ini
— он для неё главнее. Файл этот, как и Win.ini
, является рудиментом, оставшимся от Windows 3.11 и нужным для сохранения совместимости со старыми приложениями. Однако удалять их ни в коем случае не стоит: несмотря на утверждения Microsoft о вторичной роли этих файлов, Windows хранит в них множество критичных параметров, без считывания которых во время загрузки ОС не может работать. Расположены они в папке Windows и также являются чисто текстовыми файлами, составленными по весьма несложным правилам. Если в этих файлах какой-то обязательный параметр не прописан, то используется значение по умолчанию, ремарки, как обычно — точка с запятой, а максимальный размер этих файлов ограничен 64 килобайтами. Редактировать их удобнее всего с помощью все той же Программы настройки системы MSCONFIG.EXE
, которая, кроме того, предоставляет весьма широкие возможности управления загрузкой системы, вплоть до отключения статических драйверов в Windows Me, а почитать о параметрах, используемых в этих файлах, лучше всего опять на сайте MAX Speed Windows [5], одном из лучших и наиболее информативных сайтов, полностью посвящённом недокументированным настройкам Windows.
Далее процессор компьютера переключается в защищённый режим, и загружаются динамические драйвера виртуальных устройств — их список берётся из раздела реестра
HKEY_
— там загрузчики этих драйверов прописаны в параметрах DevLoader. И, наконец, загружается ядро Windows (файлы Krnl386.exe
, Kernel32.exe
, Gdi.exe
, Gdi32.exe
, User.exe
, User32.exe
), шрифты, исполняются команды последнего конфигурационного файла (если не считать реестра) WIN.INI
, загружается графическая оболочка, запрашивается пароль пользователя на вход в Windows, формируются параметры интерфейса в соответствии с установками текущего пользователя, запускаются программы, автозагрузка которых прописана в реестре или задана с использованием папки «Автозагрузка» меню «Пуск». Кстати, автозагрузку этих программ можно оперативно отменить, если при запуске Windows держать нажатой клавишу Shift. Список загруженных динамических и статических драйверов можно проконтролировать, воспользовавшись утилитой «Сведения о системе»: «Сведения о системе» → «Программная среда» → «Драйверы» → «Драйверы ядра» («System Information» → «Software Environment» → «Drivers» → «Core drivers»); она умеет выдавать целую кучу и других, не менее полезных данных.
В заключение хочу упомянуть ещё один недокументированный файл — DOSSTART.BAT
, расположенный в папке Windows. К загрузке операционной системы он, правда, отношения не имеет, но команды из него выполняются, когда вы выбираете в меню «Выключить компьютер» опцию «Перезагрузить ПК в режим MS-DOS». С помощью DOSSTART.BAT
вы легко обеспечите в этом режиме и автоматический запуск Norton Commander, и поддержку мыши, и кэширование дисков, и работу с CD-ROM, получив тем самым все то, что вам нужно в работе с DOS-программами. В «Миллениуме» он, как и режим MS-DOS, естественно, исключён.
Таким образом, для загрузки Windows необходимы следующие файлы: IO.SYS
, COMMAND.COM
(в «Миллениуме» он не обязателен), SYSTEM.INI
, WIN.INI
, файлы реестра SYSTEM.DAT
, USER.DAT
(в «Миллениуме» ещё и CLASSES.DAT
). Файлы MSDOS.SYS
, AUTOEXEC.BAT
и CONFIG.SYS
требуются только для специфического конфигурирования ОС, и Windows может обходиться и без них. Все эти файлы грамотный пользователь должен регулярно сохранять в специально отведённой для резервного копирования папочке, только в этом случае вы практически без усилий, воспользовавшись системной дискетой, восстановите сбившиеся настройки и вернёте систему к жизни. И уж по меньшей мере, рекомендуется хотя бы приблизительно представлять, для чего каждый файл необходим, и какое влияние на систему в целом оказывают его параметры — это ещё больше облегчит выявление причин внезапных сбоев, а в идеале — позволит настроить любимые «форточки» на максимальное быстродействие и надёжность.