Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » начальная загрузка компьютера

Ответить
Настройки темы
начальная загрузка компьютера
jah jah вне форума

Старожил


Сообщения: 215
Благодарности: 7

Профиль | Отправить PM | Цитировать


Изменения
Автор: jah
Дата: 03-09-2014
Здравствуйте!

Прошу помочь разобраться с начальной загрузкой компьютера (IBM PC-совместимого).

За основу беру статью википедии
Начальная загрузка компьютера
и некоторые другие статьи оттуда,
а также начал прикладываться к
Intel® 64 and IA-32 Architectures Software Developer Manuals

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


Итак, нажимаем кнопку включения (power) или кнопку сброса (reset).
В последнем случае сначала идёт так называемое "снятие сигнала RESET" (здесь нужно будет уточнить, что конкретно происходит).

Далее

1. x86-совместимый процессор начинает работать в реальном режиме (Real-address mode) и исполняет инструкции с предопределённого адреса FFFF:0 (формат "segment_selector : offset" === "сегмент:смещение"), то есть с начала второго сегмента.
Исполнение инструкций с адреса оперативной памяти FFFF:0 является следствием помещения встроенными средствами компьютера, значения FFFF в сегментный регистр CS (таким образом, это значение FFFF расценивается как адрес, с которого начинается сегмент кода программы) и значения 0 в регистр-указатель инструкций IP (таким образом, это значение 0 расценивается как адрес (смещение) внутри сегмента CS, с которого начинается инструкция, которую процессор должен выполнить следующей).

Для справки:
Режим реальных адресов является программным окружением (programming environment) для процессора Intel 8086, которое для совместимости сохранёно в последующих версиях процессоров.
У процессора Intel 8086 всего 20 адресных линий, поэтому ему доступно всего 2 ^ 20 = 1 048 576 (физических) адресов оперативной памяти (это адреса от 0 до 1 048 575),
то есть 1МиБ (мебибайт (а может и мёбибайт), 1MиБ = 2^20 = 1 048 576 Б (байт), то есть приблизительно 10^6 = 1МБ (мегабайт)).
1 сегмент в реальном режиме занимает 64КиБ (кибибайт, 1КиБ = 2^10 = 1024 Б (байт), то есть приблизительно 10^3 = 1КБ (килобайт)),
64КиБ = 64 * 1024 = 65536 Б, то есть в одном сегменте доступны эффективные адреса (смещения, offset) от 0 до 65536.
Сегменты также называются страницами памяти.
Всего сегментов 16 (= 1 048 576 / 65536).
Также есть ещё понятие параграфа: 1 параграф = 16 байт, в 1МиБ ровно 65536 параграфов.
Каждый сегмент удовлетворяет условию: он должен начинаться ровно на границе параграфа.
Селектор сегмента как раз представляет собой номер параграфа, с которого начинается сегмент,
то есть линейный (он отображает физический) адрес байта оперативной памяти при таком раскладе вычисляется как segment_selector * 16 + offset.

2. В конец доступного процессору физического адресного пространства оперативной памяти (а в реальном режиме ему доступен 1МиБ, реально чуть больше из-за наличия дополнительной памяти типа Upper Memory Area, High Memory Area), опять же встроенным в материнскую плату механизмом, копируется содержимое микросхемы BIOS.
По адресу FFFF:0 содержится команда безусловного перехода (нечто типа jmp в ассемблере) на начало этого кода BIOS (скопированного из микросхемы BIOS).
Тут, вроде бы очевидно, что начало кода BIOS и адрес, на который идёт безусловный переход в команде по адресу FFFF:0, должны зависеть от размера программы BIOS (обычно говорят о наборе программ BIOS).
Если так, то размер новой версии BIOS при перепрошивке либо должен совпадать с размером прежней версии, либо при несовпадении размеров переводить командой безусловного перехода из места, в которое будет осуществлён безусловный переход по команде по адресу FFFF:0 в место начала кода новой версии.

Вероятно здесь важно понимать, что процессор не читает напрямую содержимое микросхемы микросхемы BIOS, а читает её копию, отображённую (встроенными механизмами платы) в оперативную память.
Далее, говоря "BIOS что-то делает", имеется в виду эти действия являются результатами выполнения кода BIOS в оперативной памяти.

3. BIOS запускает процедуру POST (Power-On Self-Test - самотестирование при включении), которая производит опрос и тестирование доступных устройств и ряд других операций,
после успешного выполнения POST программа BIOS продолжает исполняться дальше или пытается сообщить о возникших проблемах.

4. BIOS опрашивает по порядку загрузочные устройства из списка, который сформирован настройками программы BIOS Setup (или CMOS Setup, эти настройки хранятся в CMOS-памяти, питаемой от батарейки), опрос продолжается до тех пор, пока загрузочное устройство не будет найдено или список не закончится.

5. BIOS считывает первый (нулевой - под номером 0) сектор (в 512 байт) загрузочного устройства (например, жёсткого диска), в котором предполагается находится MBR (Master Boot Record - главная загрузочная запись),
размещает содержимое этого сектора в оперативной памяти по адресу 0:07C0 (07C0h = 31744),
проверяет значение (сигнатуру) в последних двух байтах этого содержимого (там должно быть значение 55 AA)
и при корректной сигнатуре управление передаётся в начало этого содержимого.

6. Далее всё зависит от содержимого MBR ....





Спасибо!

Отправлено: 00:43, 03-09-2014

 
jah jah вне форума Автор темы

Старожил


Сообщения: 215
Благодарности: 7

Профиль | Отправить PM | Цитировать


Неужели всё правильно и нечего добавить или нет интереса к этой важной теме?


Цитата jah:
В последнем случае сначала идёт так называемое "снятие сигнала RESET" (здесь нужно будет уточнить, что конкретно происходит). »
может есть что уточнить по этому поводу, помимо найденного мной в
Колесниченко О.В, Шишигин И.В, Соломенчук В.Г. Аппаратные средства PC (6-е изд.)
читать дальше »
Переключатель Reset
Переключатель Reset (Сброс) служит для перезапуска РС. Это так называе-
мый горячий старт, который очень похож на холодный старт, но (в отличие
от холодного старта) при нажатии кнопки Reset компоненты РС остаются под
напряжением.
С помощью Reset осуществляется прерывание сигнала Power_Good. При
этом формируется сигнал сброса и повторяется последовательность событий,
происходящих при холодном старте PC.
Результат нажатия кнопки Reset внешне похож, но не аналогичен нажатию
комбинации клавиш <Ctrl>+<Alt>+<Del>. После нажатия этой комбинации
клавиш не выполняется процедура POST, а просто происходит перезагрузка
операционной системы. При серьезном зависании системы горячий старт вы-
полняется не всегда после нажатия клавиш <Ctrl>+<Alt>+<Del>.
В некоторых корпусах имеется сдвоенный переключатель Reset. Двухжиль-
ный кабель подключения, как правило, маркируется красно-белым цветом.
Место подключения разъема на материнской плате отмечено символами RES
или RESET. Полярность подключения здесь не важна.

и лаконичного
Цитата:
Сигнал сброса. Специальный сигнал, подаваемый с помощью кнопки перезагрузки системы и вызывающий сброс процессора и перевод его в некоторое исходное известное состояние. Сигнал reset автоматически активируется также при включении питания, это называется power-on reset; он может возникнуть также из-за аппаратных сбоев и тогда называется unexpected reset (неожидаемый сброс).



или разве не возникает вопрос
Цитата jah:
BIOS считывает первый (нулевой - под номером 0) сектор (в 512 байт) загрузочного устройства (например, жёсткого диска), в котором предполагается находится MBR (Master Boot Record - главная загрузочная запись), »
а что происходит, если сектор диска не 512, а, к примеру, 4096 байт?

Отправлено: 22:40, 03-09-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Дед


Contributor


Сообщения: 40597
Благодарности: 9332

Профиль | Отправить PM | Цитировать


Цитата jah:
или нет интереса к этой важной теме? »
Гм... вы на техническом форуме. Поэтому, если представить два вопроса - "почему включается ПК?" и "почему не включается ПК?" большинство будет думать именно над вторым вопросом

-------
Меня больше нет

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:00, 03-09-2014 | #3


Ветеран


Сообщения: 1630
Благодарности: 220

Профиль | Отправить PM | Цитировать


Цитата jah:
или нет интереса к этой важной теме »
Скорее всего интерес небольшой, потому что на форуме тусуются люди, обслуживающие комп-ы, а не разрабатывающие их.
Для разработчиков есть другие форумы, но если уж спрашивать, то по частям, а не одним большим текстом.
Непонятен также практический смысл для Вас столь детального изучения процесса загрузки
или приведения чрезмерно подробных азбучных истин про Reset.

Цитата jah:
а что происходит, если сектор диска не 512, а, к примеру, 4096 байт? »
Тогда читает информацию с сектора большего размера. У оптических дисков - 2048 байт.

Последний раз редактировалось alef2474, 03-09-2014 в 23:58.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:50, 03-09-2014 | #4


Аватара для Tau_0

Ветеран


Сообщения: 6211
Благодарности: 1393

Профиль | Отправить PM | Цитировать


Цитата jah:
Неужели всё правильно и нечего добавить или нет интереса к этой важной теме? »
Это походит на набросок студенческого реферата...
Ведь в литературе это давно (лет 25-30 назад) в общих словах расписано. А конкретика постоянно меняется.

Да и про BIOS пора забывать, --- активно внедряется UEFI

Отправлено: 00:42, 04-09-2014 | #5

jah jah вне форума Автор темы

Старожил


Сообщения: 215
Благодарности: 7

Профиль | Отправить PM | Цитировать


спасибо за ответы, по меньшей мере, не с собой разговариваю и дело двигается

Цитата WSonic:
Гм... вы на техническом форуме. Поэтому, если представить два вопроса - "почему включается ПК?" и "почему не включается ПК?" большинство будет думать именно над вторым вопросом »
а разве понимание деталей реализации не позволяет избежать большинства вопросов?

Цитата alef2474:
Скорее всего интерес небольшой, потому что на форуме тусуются люди, обслуживающие комп-ы, а не разрабатывающие их.
Для разработчиков есть другие форумы, но если уж спрашивать, то по частям, а не одним большим текстом.
Непонятен также практический смысл для Вас столь детального изучения процесса загрузки
или приведения чрезмерно подробных азбучных истин про Reset. »
Предполагаю, что не совсем так: контингент здесь самый разнообразный, от новичков до мастеров универсального профиля
В данном случае спрашивать по частям не вижу смысла, иначе большинство ответов сведётся к изложению, того, что можно было изложить сразу, и потом долго притираться в понятиях,
к тому же не такой большой объём я затронул, в основном блоки крупные, хочется уточнить некоторые потенциально принципиальные детали, о которых возможно я не знаю, или знаю с ошибками
когда объём информации велик, а её исчерпываемость не достаточна, то то, что для одного азбучные истины, для другого - вопрос, отложенный для дальнейшего изучения и поиска источника для изучения
разве про reset больше нечего добавить?

Цитата alef2474:
Тогда читает информацию с сектора большего размера. У оптических дисков - 2048 байт. »
у меня было такое предположение (предположение, так как подтверждающей информации я не встретил),
но только сейчас начинают прояснятся вроде бы очевидные вещи, которые раньше были для меня неочевидными:
раз сектор диска - это минимальная адресуемая единица хранения информации на дисковых запоминающих устройствах (НЖМД, дискета, CD),
значит механизм заключается в том, что bios начинает считывать первую из этих единиц,
остаётся вопрос как программа определяет сколько для устройства является минимально адресуемой единицей,
очевидно, информация об этом становится доступной во время опроса устройства при выполнении процедуры POST

если всё так, то похоже, что удалось выявить нексколько принципиальных деталей

Цитата Tau_0:
Это походит на набросок студенческого реферата... »
скорее на компиляцию информации по теме в понятный для мозга формат

Цитата Tau_0:
Ведь в литературе это давно (лет 25-30 назад) в общих словах расписано. А конкретика постоянно меняется. »
да этот вопрос меня тоже интересует как связать прошлое с настоящим, начав с изучения IBM PC-совместимых компьютеров

Цитата Tau_0:
Да и про BIOS пора забывать, --- активно внедряется UEFI »
насколько я представляю, UEFI помимо всего прочего также выполняет основные функции BIOS: инициализацию оборудования и т.п.
схема с UEFI меня тоже интересует, так как, допустим я хочу разработать свою ОС, значит мне как-то необходимо будет загрузить её в оперативную память для выполнения при включении компьютера

Последний раз редактировалось jah, 04-09-2014 в 01:39.


Отправлено: 01:25, 04-09-2014 | #6


Дед


Contributor


Сообщения: 40597
Благодарности: 9332

Профиль | Отправить PM | Цитировать


jah,
Цитата:
а разве понимание деталей реализации не позволяет избежать большинства вопросов?
Нет, не помогает. Голова и так забита проблемами, еще только осталось подумать о процессе включения ПК :-)

-------
Меня больше нет


Отправлено: 01:45, 04-09-2014 | #7


Аватара для topotun32

Ветеран


Сообщения: 2270
Благодарности: 346

Профиль | Отправить PM | Цитировать


jah, я Вам больше скажу: многие не только не понимают, что происходит с ПК во время включения-выключению. Но им это не особенно нужно в повседневной деятельности.

Отправлено: 08:43, 04-09-2014 | #8


Ветеран


Сообщения: 3945
Благодарности: 795

Профиль | Цитировать


Цитата jah:
а разве понимание деталей реализации не позволяет избежать большинства вопросов? »
это никому не интересно и не нужно.

Изучайте спецификации, интересно.

Последний раз редактировалось Nerdy, 15-09-2014 в 19:58.


Отправлено: 11:14, 04-09-2014 | #9


Аватара для Tau_0

Ветеран


Сообщения: 6211
Благодарности: 1393

Профиль | Отправить PM | Цитировать


Цитата jah:
да этот вопрос меня тоже интересует как связать прошлое с настоящим, начав с изучения IBM PC-совместимых компьютеров »
При всей своей очевидности --- Это бездна, это мрак, это каша манная...

Отправлено: 11:14, 04-09-2014 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » начальная загрузка компьютера

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
8 / 2012 - [решено] Загрузка компьютера thevlados907@vk Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 3 16-06-2013 13:15
загрузка компьютера DeBill Непонятные проблемы с Железом 0 11-06-2011 15:20
[решено] долгая загрузка компьютера PV25 Непонятные проблемы с Железом 3 17-04-2011 22:05
2008 R2 - Начальная настройка DrZoD Windows Server 2008/2008 R2 1 04-12-2010 12:02
Начальная настройка Samba Admiral83 Общий по Linux 7 27-01-2006 23:37




 
Переход