Функции загрузчика NTLDR (для компьютеров х86)
NTLDR управляет процессами выбора операционной системы и распознавания аппаратных средств перед инициализацией ядра. Загрузчик NTLDR должен находиться в корневом каталоге системного диска. Помимо этого, в системном разделе должны присутствовать файлы, перечисленные в табл. 3.1.
Когда NTLDR начинает выполнение, он очищает экран и выполняет следующие действия.
- Переключает процессор в режим использования 32-разрядной модели памяти с прямой адресацией. Компьютеры х86 при запуске стартуют в реальном режиме, подобном режиму, в котором стартуют процессоры 8088 и 8086. Поскольку NTLDR представляет собой 32-разрядную программу, для того чтобы загрузчик смог начать выполнять какие бы то ни было действия, процессор необходимо переключить в защищенный режим.
- Запускает соответствующую мини-файловую систему. Код, предназначенный для доступа к файлам на томах FAT и NTFS, встроен в NTFS. Этот код позволяет загрузчику читать файлы, получать доступ к ним и выполнять их копирование.
- Читает расположенный в корневом каталоге системного диска файл Boot.ini и отображает на экране соответствующее меню для выбора загружаемой операционной системы. Экран, выводимый на данном этапе загрузки, называется экраном загрузчика (boot loader screen). Если компьютер сконфигурирован для загрузки нескольких систем, и пользователь выбирает операционную систему, отличную от Windows NT/2000/XP или Windows Server 2003, то NTLDR загружает в память файл Bootsect.dos и передает ему управление. Другая операционная система стартует как обычно, поскольку файл Bootsect.dos содержит копию загрузочного сектора раздела, который находился на основном разделе или логическом диске до инсталляции Windows NT/2000/XP или Windows Server 2003.
- Если выбрана одна из версий Windows NT/2000/XP или Windows Server 2003, то выполняется Ntdetect.com, чтобы собрать информацию о физических устройствах, подключенных на данный момент к компьютеру.
- Загружает и запускает ядро операционной системы Ntoskrnl.exe и передает ему информацию, собранную программой Ntdetect.com.
Одним из наиболее значимых усовершенствований, впервые введенных в Windows XP и присутствующих в Windows Server 2003, является существенное повышение производительности, в том числе – так называемая ускоренная загрузка (Fast Boot), реализованная за счет повышения производительности загрузчика Ntldr.
Новые версии Ntldr, входящие в состав Windows XP и Windows Server 2003, оптимизируют операции чтения с диска и во время первой загрузки кэшируют все данные о дисковой подсистеме, включая метаданные файловой системы. Кэшированные данные используются при последующих перезагрузках для чтения системных файлов параллельно с другими операциями. Теперь в процессе загрузки считывание каждого из системных файлов происходит за одну операцию. Как результат, по сравнению с Windows 2000 производительность загрузчика выросла примерно в 4-5 раз.