Процесс запуска Windows NT

Поделись знанием:
Перейти к: навигация, поиск

Процесс запуска Windows NT — это процесс инициализации операционных систем Microsoft Windows NT, Windows 2000, Windows XP и Windows Server 2003. В Windows Vista процесс сильно изменён.





Фаза начальной загрузки

Фаза начальной загрузки различается в зависимости от аппаратной платформы. Начиная с ранней фазы, не привязанной к ОС, началом процесса загрузки считается:

  • Для x86 или x64: когда код сектора загрузочного раздела исполняется в реальном режиме и загружает NTLDR
  • Для IA-64: когда исполняется программа IA64ldr.efi EFI (позднее называемая просто как IA64ldr)

От данной точки процесс загрузки продолжает выполнять следующее:

Файл NTLDR, размещенный в корневой папке загрузочного диска, состоит из двух частей. Первая — это модуль StartUp, после которого следует загрузчик ОС (osloader.exe), обе части хранятся в файле NTLDR. При загрузке NTLDR в память управление передается модулю StartUp, при этом центральный процессор работает в реальном режиме. Основная задача StartUp — перевод процессора в защищённый режим, что позволяет использовать 32-разрядную адресацию памяти, а также создать таблицу дескрипторов прерываний, таблицу глобальных дескрипторов, таблицу страниц и включение страничной работы с памятью. Это делается с использованием возможностей основного операционного окружения, на котором установлена операционная система. Затем модуль StartUp загружает и запускает загрузчик ОС.

Загрузчик ОС в NTLDR содержит основные функции для доступа к дискам IDE, отформатированным в файловых системах NTFS, FAT, CDFS (ISO 9660), ETFS или UDFS в новейших версиях операционных систем. Доступ к дискам производится через BIOS посредством встроенной программы ARC на системах с ARC или посредством сети, используя протокол TFTP. Помимо этой точки, все вызовы к BIOS проходят через виртуальный режим 8086, так как из защищённого режима невозможен прямой доступ к BIOS. Если загрузочный диск является SCSI и SCSI-контроллер не использует 13-ое прерывание реального режима, то для получения доступа к диску загружается дополнительный файл Ntbootdd.sys. Он является копией того же драйвера miniport для SCSI, который используется, когда запускается Windows.

Затем загрузчик считывает содержимое файла boot.ini для обнаружения информации о системном томе. Если такой файл отсутствует, то загрузчик пытается обнаружить информацию из стандартного установочного каталога. Для машин под Windows NT это каталог C:\WINNT. Для машин под Windows XP и 2003 загружается из C:\WINDOWS.

В этом месте экран очищается и в Windows 2000 и поздних версиях NTLDR и IA64ldr, которые поддерживают гибернацию системы, корневой каталог тома по умолчанию определён в boot.ini для поиска файла гибернации hiberfil.sys. Если этот файл найден и активная память работает, содержимое файла (который совпадает по размеру с физической памятью в машине) загружается в память и передаёт управление в ядро Windows с точки, с которой гибернация была восстановлена. После этого файл сразу же помечается как неактивный, так что повреждение или другие сбои не могут вызвать это (уже устаревшее) состояние памяти в виде повторной загрузки. Если возвращение состояния не удалось, то в следующий раз NTLDR спросит пользователя, надо ли снова пытаться восстанавливать или отменить обработку файла и произвести обычную загрузку.

Если boot.ini содержит запись более чем об одной операционной системе, то пользователю показывается меню загрузки, позволяющее выбрать, какую именно из операционных систем загружать. Если выбрана операционная система, не основанная на NT, подобно Windows 98, то NTLDR загружает соответствующий файл загрузочного сектора, указанный в списке в boot.ini (по умолчанию это bootsect.dos, если не задано иное имя файла) и контроль над выполнением переходит к нему. Если выбрана операционная система, основанная на NT, NTLDR запускает ntdetect.com, который собирает основную информацию об аппаратном обеспечении компьютера, сообщаемую BIOS'ом.

В этой точке процесса загрузки NTLDR очищает экран и выводит псевдографический индикатор состояния (который часто не виден под системами XP или 2003 из-за их скорости инициализации); Windows 2000 также показывает текст «Starting Windows…». Если во время этой фазы пользователь нажмёт F8, то показывается расширенное меню загрузки, содержащее различные специальные режимы загрузки, включающие в себя безопасный режим с конфигурацией последней успешной загрузки, с включением отладки и (в случае серверных редакций) режим восстановления служб Директорий.

Загрузка продолжается, как только выбирается один из пунктов или если повторно нажимается F8.

Фаза загрузки ядра

  1. ntoskrnl.exe (ядро)
  2. hal.dll (тип абстрактного уровня аппаратного обеспечения)
  3. kdcom.dll (библиотека расширения ядра отладчика аппаратного обеспечения)
  4. bootvid.dll (для логотипа Windows и индикатора статуса загрузки)
  5. config\system — реестр
    1. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
    2. процессы служб в порядке готовности
    3. *HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder

Инициализация подсистемы ядра и подсистемы выполнения Windows делается за две фазы.

Во время первой фазы создаются базовые внутренние структуры памяти и инициализируется контроллер прерываний каждого процессора. Инициализируется менеджер памяти, создаются области для файлового кэша системы, страничных и нестраничных опросов памяти. Менеджер объектов[1] инициализирует токен безопасности для назначения первому процессу системы и менеджер процессов инициализирует сам себя. В этой точке также как системный процесс создаётся System Idle Process.

Второй этап предполагает инициализацию драйверов устройств, которые были определены NTLDR как системные драйверы.

Во время процесса загрузки драйверов устройств в нижней части экрана систем под Windows 2000 виден индикатор статуса; в Windows XP и Windows Server 2003 это было заменено анимированной полоской, которая не отражает реального времени процедуры. До Windows 2000 эта часть процесса загрузки занимала значительно больше времени, потому что драйверы инициализировались последовательно по одному. В Windows XP и Windows Server 2003 все драйверы инициализируются асинхронно.

См. также

Напишите отзыв о статье "Процесс запуска Windows NT"

Примечания

  1. [channel9.msdn.com/ShowPost.aspx?PostID=73995 Windows, NT Object Manager]

Ссылки

  • Russinovich Mark. Startup and Shutdown // Microsoft Windows Internals. — 4th edition. — Microsoft Press, 2005. — P. pp. 251-273. — ISBN ISBN 0-7356-1917-4.
  • [www.microsoft.com/technet/prodtechnol/winxppro/reskit/c29621675.mspx Troubleshooting the Startup Process]. Windows XP Resource Kit. Microsoft Technet. Проверено 15 февраля 2006. [www.webcitation.org/66e2fgosM Архивировано из первоисточника 3 апреля 2012].
  • Mark Minasi, John Enck. [www.windowsitlibrary.com/Content/169/01/31.html Troubleshooting NT Boot Failures]. Administrator's Survival Guide: System Management and Security. Windows IT Library. Проверено 15 февраля 2006. [www.webcitation.org/66e2gdAbl Архивировано из первоисточника 3 апреля 2012].
  • [support.microsoft.com/kb/244036/ Microsoft KB Article 244036 on remote installation & booting]
  • [support.microsoft.com/default.aspx?scid=kb;EN-US;137367 Definition of the RunOnce Keys]
  • [support.microsoft.com/default.aspx?scid=kb;en-us;833721 boot.ini switches]
  • [www.sysinfo.org/startuplist.php Startup Applications List]
  • [www.microsoft.com/technet/prodtechnol/winxppro/reskit/c29621675.mspx Troubleshooting Windows XP Startup Process]
  • [www.anvir.net/ AnVir Task Manager] — утилита для анализа и редактирования программ автозагрузки Windows

Отрывок, характеризующий Процесс запуска Windows NT

– Не хочу больше. Тимохин тут? – спросил он. Тимохин подполз к нему по лавке.
– Я здесь, ваше сиятельство.
– Как рана?
– Моя то с? Ничего. Вот вы то? – Князь Андрей опять задумался, как будто припоминая что то.
– Нельзя ли достать книгу? – сказал он.
– Какую книгу?
– Евангелие! У меня нет.
Доктор обещался достать и стал расспрашивать князя о том, что он чувствует. Князь Андрей неохотно, но разумно отвечал на все вопросы доктора и потом сказал, что ему надо бы подложить валик, а то неловко и очень больно. Доктор и камердинер подняли шинель, которою он был накрыт, и, морщась от тяжкого запаха гнилого мяса, распространявшегося от раны, стали рассматривать это страшное место. Доктор чем то очень остался недоволен, что то иначе переделал, перевернул раненого так, что тот опять застонал и от боли во время поворачивания опять потерял сознание и стал бредить. Он все говорил о том, чтобы ему достали поскорее эту книгу и подложили бы ее туда.
– И что это вам стоит! – говорил он. – У меня ее нет, – достаньте, пожалуйста, подложите на минуточку, – говорил он жалким голосом.
Доктор вышел в сени, чтобы умыть руки.
– Ах, бессовестные, право, – говорил доктор камердинеру, лившему ему воду на руки. – Только на минуту не досмотрел. Ведь вы его прямо на рану положили. Ведь это такая боль, что я удивляюсь, как он терпит.
– Мы, кажется, подложили, господи Иисусе Христе, – говорил камердинер.
В первый раз князь Андрей понял, где он был и что с ним было, и вспомнил то, что он был ранен и как в ту минуту, когда коляска остановилась в Мытищах, он попросился в избу. Спутавшись опять от боли, он опомнился другой раз в избе, когда пил чай, и тут опять, повторив в своем воспоминании все, что с ним было, он живее всего представил себе ту минуту на перевязочном пункте, когда, при виде страданий нелюбимого им человека, ему пришли эти новые, сулившие ему счастие мысли. И мысли эти, хотя и неясно и неопределенно, теперь опять овладели его душой. Он вспомнил, что у него было теперь новое счастье и что это счастье имело что то такое общее с Евангелием. Потому то он попросил Евангелие. Но дурное положение, которое дали его ране, новое переворачиванье опять смешали его мысли, и он в третий раз очнулся к жизни уже в совершенной тишине ночи. Все спали вокруг него. Сверчок кричал через сени, на улице кто то кричал и пел, тараканы шелестели по столу и образам, в осенняя толстая муха билась у него по изголовью и около сальной свечи, нагоревшей большим грибом и стоявшей подле него.
Душа его была не в нормальном состоянии. Здоровый человек обыкновенно мыслит, ощущает и вспоминает одновременно о бесчисленном количестве предметов, но имеет власть и силу, избрав один ряд мыслей или явлений, на этом ряде явлений остановить все свое внимание. Здоровый человек в минуту глубочайшего размышления отрывается, чтобы сказать учтивое слово вошедшему человеку, и опять возвращается к своим мыслям. Душа же князя Андрея была не в нормальном состоянии в этом отношении. Все силы его души были деятельнее, яснее, чем когда нибудь, но они действовали вне его воли. Самые разнообразные мысли и представления одновременно владели им. Иногда мысль его вдруг начинала работать, и с такой силой, ясностью и глубиною, с какою никогда она не была в силах действовать в здоровом состоянии; но вдруг, посредине своей работы, она обрывалась, заменялась каким нибудь неожиданным представлением, и не было сил возвратиться к ней.
«Да, мне открылась новое счастье, неотъемлемое от человека, – думал он, лежа в полутемной тихой избе и глядя вперед лихорадочно раскрытыми, остановившимися глазами. Счастье, находящееся вне материальных сил, вне материальных внешних влияний на человека, счастье одной души, счастье любви! Понять его может всякий человек, но сознать и предписать его мот только один бог. Но как же бог предписал этот закон? Почему сын?.. И вдруг ход мыслей этих оборвался, и князь Андрей услыхал (не зная, в бреду или в действительности он слышит это), услыхал какой то тихий, шепчущий голос, неумолкаемо в такт твердивший: „И пити пити питии“ потом „и ти тии“ опять „и пити пити питии“ опять „и ти ти“. Вместе с этим, под звук этой шепчущей музыки, князь Андрей чувствовал, что над лицом его, над самой серединой воздвигалось какое то странное воздушное здание из тонких иголок или лучинок. Он чувствовал (хотя это и тяжело ему было), что ему надо было старательна держать равновесие, для того чтобы воздвигавшееся здание это не завалилось; но оно все таки заваливалось и опять медленно воздвигалось при звуках равномерно шепчущей музыки. „Тянется! тянется! растягивается и все тянется“, – говорил себе князь Андрей. Вместе с прислушаньем к шепоту и с ощущением этого тянущегося и воздвигающегося здания из иголок князь Андрей видел урывками и красный, окруженный кругом свет свечки и слышал шуршанъе тараканов и шуршанье мухи, бившейся на подушку и на лицо его. И всякий раз, как муха прикасалась к егв лицу, она производила жгучее ощущение; но вместе с тем его удивляло то, что, ударяясь в самую область воздвигавшегося на лице его здания, муха не разрушала его. Но, кроме этого, было еще одно важное. Это было белое у двери, это была статуя сфинкса, которая тоже давила его.
«Но, может быть, это моя рубашка на столе, – думал князь Андрей, – а это мои ноги, а это дверь; но отчего же все тянется и выдвигается и пити пити пити и ти ти – и пити пити пити… – Довольно, перестань, пожалуйста, оставь, – тяжело просил кого то князь Андрей. И вдруг опять выплывала мысль и чувство с необыкновенной ясностью и силой.
«Да, любовь, – думал он опять с совершенной ясностью), но не та любовь, которая любит за что нибудь, для чего нибудь или почему нибудь, но та любовь, которую я испытал в первый раз, когда, умирая, я увидал своего врага и все таки полюбил его. Я испытал то чувство любви, которая есть самая сущность души и для которой не нужно предмета. Я и теперь испытываю это блаженное чувство. Любить ближних, любить врагов своих. Все любить – любить бога во всех проявлениях. Любить человека дорогого можно человеческой любовью; но только врага можно любить любовью божеской. И от этого то я испытал такую радость, когда я почувствовал, что люблю того человека. Что с ним? Жив ли он… Любя человеческой любовью, можно от любви перейти к ненависти; но божеская любовь не может измениться. Ничто, ни смерть, ничто не может разрушить ее. Она есть сущность души. А сколь многих людей я ненавидел в своей жизни. И из всех людей никого больше не любил я и не ненавидел, как ее». И он живо представил себе Наташу не так, как он представлял себе ее прежде, с одною ее прелестью, радостной для себя; но в первый раз представил себе ее душу. И он понял ее чувство, ее страданья, стыд, раскаянье. Он теперь в первый раз поняд всю жестокость своего отказа, видел жестокость своего разрыва с нею. «Ежели бы мне было возможно только еще один раз увидать ее. Один раз, глядя в эти глаза, сказать…»
И пити пити пити и ти ти, и пити пити – бум, ударилась муха… И внимание его вдруг перенеслось в другой мир действительности и бреда, в котором что то происходило особенное. Все так же в этом мире все воздвигалось, не разрушаясь, здание, все так же тянулось что то, так же с красным кругом горела свечка, та же рубашка сфинкс лежала у двери; но, кроме всего этого, что то скрипнуло, пахнуло свежим ветром, и новый белый сфинкс, стоячий, явился пред дверью. И в голове этого сфинкса было бледное лицо и блестящие глаза той самой Наташи, о которой он сейчас думал.