Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
Германн ©   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.038 c
2-1138555718
JEK2
2006-01-29 20:28
2006.02.19
TImage как рисовать поверх другой картинки?


11-1119593161
Trubis
2005-06-24 10:06
2006.02.19
Demo KOLListView


1-1137578199
__DATA__
2006-01-18 12:56
2006.02.19
CreateProcess не запускает файлы с параметрами


10-1113541861
12345
2005-04-15 09:11
2006.02.19
Связь м/у CoInitializeEx и OpenDialog?


1-1137859614
5463
2006-01-21 19:06
2006.02.19
Закладки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский