Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.19;
Скачать: CL | DM;

Вниз

Мультизагрузчик ОС   Найти похожие ветки 

 
Германн ©   (2006-01-25 00:27) [0]

Кто, или точнее что, читает boot.ini в процессе загрузки системы? Для уменьшения числа сущностей, примем что данный мультизагрузчик появился при установке WinXP. Но и другие варианты интересуют.


 
Джо ©   (2006-01-25 00:31) [1]

AFAIK, ntldr.


 
Германн ©   (2006-01-25 00:39) [2]


> Джо ©   (25.01.06 00:31) [1]
>
> AFAIK, ntldr.
>

Принято.
А кто его вызывает?


 
Gero ©   (2006-01-25 00:43) [3]

Да, это ntldr.


 
Джо ©   (2006-01-25 00:44) [4]

> [2] Германн ©   (25.01.06 00:39)
> А кто его вызывает?

AFAIK, загрузочный сектор. :)


 
Gero ©   (2006-01-25 00:44) [5]

> А кто его вызывает?

BIOS


 
Gero ©   (2006-01-25 00:45) [6]

> AFAIK, загрузочный сектор. :)

Дык загрузочный сектор это всего лишь сектор :)


 
Джо ©   (2006-01-25 00:46) [7]

> [5] Gero ©   (25.01.06 00:44)
> > А кто его вызывает?
>
> BIOS

Нет, БИОС загружает загрузочный сектор в MBR, а он уже (если он NT-шный, разумеется) загружает ntldr.


 
Gero ©   (2006-01-25 00:50) [8]

> а он уже

MBR это всего лишь Record :)

Да, я перепутал немного.
Запуск произовдит NSB (Non-System Bootstrap), который находится в MBR и поставляется с жестким диском.


 
Джо ©   (2006-01-25 00:51) [9]

С предлогами и падежами сумятица :)
Программа в ПЗУ считывает первый 512 байт из определенного места на определенном носителе в определенное место оперативной памяти. А затем передает управление на первый байт этой области. Ежели в этих 512 байтах содержится "правильный код" (назовем его загрузчиком NT-ОСи), то он уже считывает ntldr и передает управление ему. Во. ;)


 
Gero ©   (2006-01-25 00:52) [10]

> Джо ©   (25.01.06 00:51)

Точно )


 
Джо ©   (2006-01-25 00:55) [11]

> который находится в MBR и поставляется с жестким диском.

Не, ничего он не поставляется :) MBR так же просто записывается и стирается, как и любое другое место на носителе. Содержимое Master Boot Record как правило записывают Оп. Системы при своей установке.


 
Германн ©   (2006-01-25 00:56) [12]

Спасибо всем.


 
Gero ©   (2006-01-25 00:57) [13]

> Джо ©   (25.01.06 00:55)

Спасибо, не знал.


 
Джо ©   (2006-01-25 01:07) [14]

Забыл сказать, как загрузочная программа в ПЗУ определяет, что этому загрузочному сектору можно передавать управление, т.е, что он является реальным загрузчиком какой-нибудь ОС.
По принятым соглашениям, в конце этой 512-байтной области должно находиться слово-сигнатура $55AA. Если его там нет, БИОС считает, что загрузочного сектора нету и, вместо того, чтобы передать ему выполнение, выводится сообщение о "Missing operating system...".

Кстати, написание загрузчик облегчается тем обстоятельством, что заранее известно, по какому адресу в ОЗУ он будет загружен (фиксированная загрузка по физическому адресу $7C00).
Спасибо за внимание :)

П.С. Придут зубры и меня запинают за вольное обращение с жаргоном ;)


 
Германн ©   (2006-01-25 01:11) [15]

У меня есть ещё вопросы по поводу BIOS, который что-то там загружает, но я их пока не сформулировал. :(
И ещё раз спасибо!
Будут конкретные вопросы, спрошу.


 
Джо ©   (2006-01-25 01:15) [16]

> [15] Германн ©   (25.01.06 01:11)

А поищи в Инете, статей довольно много на эту тему, включая подробное описание как всего процесса загрузки, так и примеров написания собственных загрузчиков. Я в свое время немало нарыл, когда понадобилось :)


 
Германн ©   (2006-01-25 01:31) [17]


> Джо ©   (25.01.06 01:15) [16]
>
> > [15] Германн ©   (25.01.06 01:11)
>
> А поищи в Инете, статей довольно много на эту тему, включая
> подробное описание как всего процесса загрузки, так и примеров
> написания собственных загрузчиков. Я в свое время немало
> нарыл, когда понадобилось :)

Не Серёг. Пока мне хватает информации! Спасибо большое!
Буду в Киеве, с меня пыво! Встретимся у моих друзей с "ветрянных гор".


 
Джо ©   (2006-01-25 01:55) [18]

> [17] Германн ©   (25.01.06 01:31)
> Буду в Киеве, с меня пыво! Встретимся у моих друзей с "ветрянных
> гор".

Не возражаю! :0)


 
Игорь Шевченко ©   (2006-01-25 11:23) [19]


> Кто, или точнее что, читает boot.ini в процессе загрузки
> системы?


А толку от этих знаний ?


 
AlexKniga ©   (2006-01-25 12:29) [20]

Джо ©   (25.01.06 00:51) [9]
Один шаг пропустил.
BIOS -> MBR -> BS -> ntldr
Обычно MBR у всех одинаков. Он по признаку активности $80 в таблице разделов PT передает управление соответствующему Boot Sector"у.
Обычно ОСи MBR не трогают. При смени оси меняется тока BS.


 
PAVIA ©   (2006-01-25 13:03) [21]

AlexKniga
Ты из какого времени??? Это было давно когда у всех был дос.
Win2K, winXP, Линуксы  все они перезописывают MBR.


 
Игорь Шевченко ©   (2006-01-25 13:10) [22]

PAVIA ©   (25.01.06 13:03) [21]


> Win2K, winXP  все они перезописывают MBR.


У меня не перезаписывают. Что я делаю не так ?


 
Piter ©   (2006-01-25 15:56) [23]

Gero ©   (25.01.06 0:50) [8]
Запуск произовдит NSB (Non-System Bootstrap), который находится в MBR и поставляется с жестким диском


не совсем правильно.

Вообще, лучше говорить об MBS - это сектор, располагающийся на цилиндре 0, плоскости (головка) 0 и имеющий номер 1. Именно туда передается управление при загрузке с харда.

MBR - это вообще вся структура, которая обеспечивает загрузку. Зачастую весь MBR умещается в MBS, для винд - это так. Но не обязательно. MBS может передавать управление дальше, хоть весь хард в теории может быть MBR.

Поэтому BAD блоки - это плохо, но совсем плохо когда запорот именно первый сектор - тогда MBS ку-ку, загрузиться с винта невозможно.


 
VirEx ©   (2006-01-25 17:19) [24]


>  [22] Игорь Шевченко ©   (25.01.06 13:10)
> PAVIA ©   (25.01.06 13:03) [21]
>
>
> > Win2K, winXP  все они перезописывают MBR.
>
>
> У меня не перезаписывают. Что я делаю не так ?

в биосе отключи опцию "virus warning", зайди в режиме консоли восстановления, набери fixmbr, заодно и fixboot

из моего диплома для техникума И.И.Ползунова:

8.11  Загрузка операционной системы

При загрузке 32-разрядных версий операционной системы Windows NT 5 (2000, ХР или Server 2003) используются следующие файлы:
C:\NTLDR — стадии подготовки к загрузке и загрузка
C:\BOOT.INI — стадия загрузки ядра
C:\BOOTSECT.DOS — стадия загрузки ядра (опционально)
C:\NTDETECT.COM — стадия загрузки ядра
%systemroot%\System32\NTOSKRNL.EXE — стадия загрузки ядра (или NTKRNLPA.EXE)
%systemroot%\System32\ HAL.DLL — стадия загрузки ядра
Раздел реестра HKLM\SYSTEM — стадия инициализации ядра
%systemroot%\System32\*.sys — стадия инициализации ядра
Здесь под %systemroot% подразумевается директория, где размещены основные файлы операционной системы, например, D:\Windows — для Windows XP, установленной на логический диск D. Для системы Windows 2000, например, установленной на логическом диске С, это будет директория C:\WINNT.

8.11.1  Подготовка к загрузке

1. Компьютер тестирует себя (стадия POST, Power On Self Test), оперативную память, физические устройства. Если BIOS поддерживает спецификацию РnР, то происходит определение и настройка такого типа устройств.
2. BIOS обнаруживает загрузочное устройство (жесткий диск, привод CD ROM), загружает и запускает на выполнение основную загрузочную запись (MBR).
3. MBR просматривает таблицу разделов (partition table), чтобы найти активный, загружает загрузочный вектор активного раздела в память и запускает его на выполнение.
4. Загружает и инициализирует файл NTLDR, который представляет собой загрузчик ОС.

8.11.2  Начальная стадия загрузки

Загрузчик NTLDR переключает процессор из реального режима в 32-разрядный защищенный, что необходимо для получения возможности выполнить любую дополнительную функцию. Файловая мини-система, встроенная в NTLDR позволяет загружать Windows NT 5 с носителей FAT, FAT32 и NTFS.

8.11.3  Загрузка

Загрузчик NTLDR считывает файл BOOT.INI, использует его для отображения экрана загрузчика, предоставляет пользователю возможность выбора ОС, выбирает профиль оборудования и загружает ядро, но не инициализирует его.

8.11.3.1  Распознавание оборудования

NTDETECT.COM запускается после надписи «Выберите операционную систему для загрузки», составляет список установленного на данный момент оборудования, и возвращает этот список в NTLDR для последующего включения его в раздел системного реестра HKLM\HARDWARE. NTDETECT.COM выполняет определение характеристик устройств:
• Тип шины.
• Последовательные порты.
• Математический сопроцессор.
• Гибкие диски.
• Клавиатура и указывающие устройства.
• Параллельные порты.
• Адаптеры SCSI.
• Видео адаптеры.
Следует отметить, что устройства, которые подключаются к шинам и должны быть обнаружены шинными драйверами (например, внешние устройства на шинах USB), здесь не обнаруживаются — по той простой причине, что шинные драйверы, которые должны выполнить эту работу, на данный момент еще не загружены.

8.11.3.2  Выбор конфигурации

После того как NTLDR начинает загрузку и получит информацию об оборудовании, будет отображен экран с диалогом «Выбор профиля оборудования/Восстановление системы» (Hardware profile/Configuration recovery). В случае если профиль оборудования является единственным, то диалога представлено не будет.

8.11.3.3  Загрузка ядра

На этапе загрузки ядра NTLDR выполняет следующие действия:
Загружает код ядра из файла NTOSKRNL.EXE (NTKRNLPA.EXE при наличии опции /РАЕ в файле boot.ini), но не инициализирует его.
Загружает код слоя аппаратных абстракций из файла HAL.DLL.
Загружает раздел HKLM\SYSTEM из %systemroot%\System32\Config\System.
Выбирает набор параметров для конфигурации (список драйверов, устройств, устройств и служб, которые необходимо запустить).
Загружает драйверы (обычно это низкоуровневые драйвера, как, например, драйвера дисков) со значением параметра Start равным 0x0.
Значение параметра List в HKLM\SYSTEM\CurrentContorlSet\Control\Service-GroupOrder определяет порядок загрузки их загрузчиком NTLDR. Драйверы, регулирующие свою загрузку таким способом, должны иметь соответствующие значения параметра Group в своих подразделах раздела Системного Реестра HKLM\Sys-tem\ CurrentControlSet\Services.

8.11.4  Инициализация ядра

По завершении загрузки, ядро инициализируется и ему передается управление от загрузчика NTLDR.
1. Создается раздел HKLM\Hardware по результатам распознавания аппаратуры, куда заносится информация о системной плате, устройствах и прерываниях.
2. Создается набор параметров Clone путем копирования управляющих параметров, информация о которых содержится в параметре Current в разделе HKLM\System\Select. Набор Clone никогда не модифицируется.
3. Загружаются драйверы, указанные в разделе системного реестра HKLM\System\CurrentControlSet\Services, в параметрах которых присутствует значение Start равное 0x01 , порядок загрузки которых так же, как и было указано выше, определяется в параметре Group. Драйверы инициализируются сразу же после их загрузки. Значения параметра ErrorControl в описании драйвера (то есть в его параметре, указанном в Системном Реестре) определяет реакцию системы в том случае, если при загрузке и инициализации данного драйвера произошла ошибка.
4. Запускаются сервисы (например, Служба Журнала Событий) и драйверы.


 
Игорь Шевченко ©   (2006-01-25 18:01) [25]

VirEx ©   (25.01.06 17:19) [24]

Руссинович пишет увлекательнее. Целую главу посвятил загрузке и завершению работы Windows.


 
VirEx ©   (2006-01-25 18:11) [26]


>  [25] Игорь Шевченко ©   (25.01.06 18:01)
> VirEx ©   (25.01.06 17:19) [24]
>
> Руссинович пишет увлекательнее. Целую главу посвятил загрузке
> и завершению работы Windows.

тема диплома:
МЕТОДИЧЕСКОЕ ПОСОБИЕ ПО РАЗРАБОТКЕ ДРАЙВЕРОВ ДЛЯ УСТРОЙСТВ СОПРЯЖЕНИЯ ПК С НЕСТАНДАРТНЫМ ОБОРУДОВАНИЕМ


 
Игорь Шевченко ©   (2006-01-25 18:17) [27]

VirEx ©   (25.01.06 18:11) [26]

Тема конечно интересная, но по поводу написания драйверов есть DDK, как последняя инстанция. Там и Help есть достаточно подробный.

Ты меня извини, а что, этим методическим пособием (надо понимать, там методика разработки драйверов изложена) будет народ пользоваться ?


 
VirEx ©   (2006-01-25 19:23) [28]


>  [27] Игорь Шевченко ©   (25.01.06 18:17)

ну ты и мастер оффтопа :) нескем поговорить о смысле жизни?? в инфе есть аська, поговорим раз тебе нетерпиться.
дЫк вот, есть причины:
техникум в котором я учился по идее горный, и специальность ВМКСС (вычислительные машины комплексы системы и сети) появилась недавно когда я поступил, вообщем наш выпуск был вторым и на нас проверяли новые методики обучения и "оценко-образования" так сказать...
мой руководитель дипломного проекта (кстати хороший человек, доцент каких-то там наук :) ) не зря я думаю сначало для курсовой предложил тему "Устройства сопряжения персонального компьютера со стиральной машиной “Вятка Автомат”" (получился такой ...программно-аппаратный комплекс...) а затем и для диплома эту тему ([26]), так как остальные не выбрали ничего кроме как "копи-пастной" работёнки на тему создания "учебника по C,C++" либо еще какой-нибудь лабуды.
дык вот, как ты уважаемый Игорь Шевченко думаешь: зачем техникуму нужны вообще такие темы в дальнейшем способствующие написанию новых интересных дипломов за которые другие студенты получат корочки? нафиг вообще нужны методические пособия о разработке софта, драйверов и тому подобное? кому нужен этот материал? студентам! в колледже не было материала на эту тему вот и предложили мне, т.к. я этим интересовался больше остальных. это большая работа: надо объяснить что это, зачем, "как оно там делается", притом доступным языком и как можно постараться не раздувать объем материала (у меня сначало было около 300 страниц, но пришлось многое убрать, урезать. урезал - до 160 ст. :) ). сейчас с помощью этого материала возможно учащиеся там будут делать интересные работы, т.к. раньше по видимому до меня, небыло "за что схватиться". лёд тронулся господа присяжные заседатели.


 
Германн ©   (2006-01-26 02:31) [29]


> Игорь Шевченко ©   (25.01.06 11:23) [19]
>
>
> > Кто, или точнее что, читает boot.ini в процессе загрузки
>
> > системы?
>
>
> А толку от этих знаний ?

Интересно было в плане "общего развития". Плюс, хотел попытаться найти решение некоторой задачи без вреда для своего домашнего компьютера и для пользователей оного!
Ответ получил. Решение нашёл.

Ты, как модератор, можешь "Закрыть обсуждение" в сей ветке. Не имею возражений и не имею желания "возобновить дискуссию" по данной теме!
Твои лмчные дискуссии с VirEx © меня не касаются.


 
Дмитрий Белькевич   (2006-01-26 03:19) [30]

>Поэтому BAD блоки - это плохо, но совсем плохо когда запорот именно первый сектор - тогда MBS ку-ку, загрузиться с винта невозможно.

MHDD?


 
Игорь Шевченко ©   (2006-01-26 11:30) [31]

Германн ©   (26.01.06 02:31) [29]


> Интересно было в плане "общего развития".


А в плане общего развития есть очень увлекательная книжка Руссиновича и Соломона "Внутреннее устройство Windows", я вполне серьезно.


 
Piter ©   (2006-01-26 14:40) [32]

Дмитрий Белькевич   (26.01.06 3:19) [30]
MHDD?


VMWare?



Страницы: 1 вся ветка

Текущий архив: 2006.02.19;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.027 c
15-1138713626
ПЛОВ
2006-01-31 16:20
2006.02.19
Возник такой вопрос интересный


3-1135269387
hawkins
2005-12-22 19:36
2006.02.19
Неправильное значение в таблице Interbase, после запроса...


2-1138884273
Silver__Dragon
2006-02-02 15:44
2006.02.19
HotKey


15-1138717831
stone
2006-01-31 17:30
2006.02.19
С Днём рождения! 31 января


2-1138968917
~ShamaN~
2006-02-03 15:15
2006.02.19
Перемещение курсора в DateTimePicker