- •Лабораторная работа № 1 Режимы загрузки Windows xp
- •1. Теоретические сведения. Загрузка Windows xp
- •Самотестирование при загрузке
- •Файлы, необходимые для запуска системы
- •Инициализация при запуске
- •Работа загрузчика
- •Функции загрузчика ntldr
- •Выбор запускаемой операционной системы
- •Опции отладочного меню при загрузке Windows xp
- •Распознавание аппаратных средств
- •Выбор конфигурации
- •Загрузка ядра
- •Инициализация ядра
- •Регистрация пользователя в системе
- •Файл boot.Ini
- •Раздел [boot loader]
- •Раздел [operating systems]
- •Редактирование файла boot.Ini
Работа загрузчика
Загрузчик (boot loader) позволяет выбрать операционную систему, которую требуется запустить, и загружает файлы операционной системы из загрузочного раздела. Общие задачи, выполняемые на данном этапе, сводятся к установке 32-разрядной модели памяти с прямой адресацией (flat addressing), сбору данных об аппаратной конфигурации, построению ее описания в памяти и передаче указателя на это описание в блок загрузчика. После этого NTLDR (для платформ х86) загружает образ ядра, HAL и драйверы для устройств и файловой системы тома, с которого производится загрузка системы. Помимо всего прочего, на данном этапе производится также и загрузка некоторых драйверов, для которых равен нулю параметр реестра start, расположенный под следующим ключом реестра:
HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\ServiceName
Здесь service/feme представляет собой имя сервиса, например:
HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Services\atapi
Важность системного реестра невозможно переоценить, т. к. уже на данном этапе (работа загрузчика) он становится необходимым для загрузки системы. Если улей (hive) System, требующийся в том числе и для загрузки драйверов, не будет обнаружен (или окажется поврежденным), то на экране появится примерно следующее сообщение об ошибке:
Windows could not start because the following file is missing of corrupt: \WINDOWS\SYSTEM32\CONFIG\SYSTEM You can attempt to repair this file by starting Windows Setup using the original Setup CD-ROM. Select 'r' at the first screen to start repair.
Здесь же следует отметить, что улей реестра System в работающей системе пользователи видят в составе дерева HKEY_LOCAL_MACHINE. Этот улей определяет порядок загрузки всех драйверов системы, и доступ к нему получают как загрузчик операционной системы, так и диспетчер ввода/вывода.
Функции загрузчика ntldr
NTLDR управляет процессами выбора операционной системы и распознавания аппаратных средств перед инициализацией ядра. Загрузчик NTLDR должен находиться в корневом каталоге системного диска. Помимо этого, в системном разделе должны присутствовать файлы, перечисленные в табл. 3.1.
Когда NTLDR начинает выполнение, он очищает экран и выполняет следующие действия.
1. Переключает процессор в режим использования 32-разрядной модели памяти с прямой адресацией. Компьютеры х86 при запуске стартуют в реальном режиме, подобном режиму, в котором стартуют процессоры 8088 и 8086. Поскольку NTLDR представляет собой 32-разрядную программу, для того чтобы загрузчик смог начать выполнять какие бы то ни было действия, процессор необходимо переключить в защищенный режим.
2. Запускает соответствующую мини-файловую систему. Код, предназначенный для доступа к файлам на томах FAT и NTFS, встроен в NTFS. Этот код позволяет загрузчику читать файлы, получать доступ к ним и выполнять их копирование.
3. Читает расположенный в корневом каталоге системного диска файл Boot.ini и отображает на экране соответствующее меню для выбора загружаемой операционной системы. Экран, выводимый на данном этапе загрузки, называется экраном загрузчика (boot loader screen). Если компьютер сконфигурирован для загрузки нескольких систем, и пользователь выбирает операционную систему, отличную от Windows NT/2000/XP или Windows Server 2003, то NTLDR загружает в память файл Bootsect.dos и передает ему управление. Другая операционная система стартует как обычно, поскольку файл Bootsect.dos содержит копию загрузочного сектора раздела, который находился на основном разделе или логическом диске до инсталляции Windows NT/2000/XP или Windows Server 2003.
4. Если выбрана одна из версий Windows NT/2000/XP или Windows Server 2003, то выполняется Ntdetect.com, чтобы собрать информацию о физических устройствах, подключенных на данный момент к компьютеру.
5. Загружает и запускает ядро операционной системы Ntoskrnl.exe и передает ему информацию, собранную программой Ntdetect.com.
Одним из наиболее значимых усовершенствований, впервые введенных в Windows XP и присутствующих в Windows Server 2003, является существенное повышение производительности, в том числе — так называемая ускоренная загрузка (Fast Boot), реализованная за счет повышения производительности загрузчика Ntldr. Новые версии Ntldr, входящие в состав Windows XP и Windows Server 2003, оптимизируют операции чтения с диска и во время первой загрузки кэшируют все данные о дисковой подсистеме, включая метаданные файловой системы. Кэшированные данные используются при последующих перезагрузках для чтения системных файлов параллельно с другими операциями. Теперь в процессе загрузки считывание каждого из системных файлов происходит за одну операцию. Как результат, по сравнению с Windows 2000 производительность загрузчика выросла примерно в 4—5 раз.