ТОП 10:

Апаратна ініціалізація комп'ютера



 

Коли комп'ютер увімкнений в електромережу, він по суті порожній - усі його мікросхеми пам'яті містять випадкові значення, процесор не виконує код. Для по­чатку процедури завантаження на процесор подають команду RESET (скидання). Після її прийняття, деякі регістри процесора (зокрема регістр лічильника коман­ди) набувають фіксованих значень, і починається виконання коду за фізичною адре­сою OxftrrrffO. Апаратне забезпечення відображає цю адресу на спеціальну ділянку енергонезалежної пам'яті (ROM). Набір програм, що зберігається у ROM, за тради­цією називають BIOS (Basic Input/Output System, базова система введення/виве­дення), він включає набір керованих перериваннями низькорівневих процедур, які можна використати для керування пристроями, підключеними до комп'ютера.

Більшість сучасних ОС використовують BIOS тільки на етапі початкового за­вантаження (який називають bootstrapping). Після цього вони ніколи не зверта­ються до процедур BIOS і всі функції керування пристроями в ОС беруть на себе драйвери цих пристроїв. Річ у тому, що процедури BIOS можуть виконуватися тільки в реальному режимі процесора, а ядро — у захищеному режимі; крім того, звичайно код BIOS не має високої якості. Реальну адресацію використовують у коді BIOS тому, що тільки такі адреси виявляються доступними, коли ком­п'ютер тільки-но увімкнено.

Процедура початкового завантаження BIOS (bootstrap procedure) зводиться до чотирьох операцій.

 

1. Виконання набору тестів апаратного забезпечення для з'ясування, які при­строї в системі присутні та чи всі вони працюють коректно. Цей етап назива­ють самотпестуванням після увімкнення живлення (Power-On Self-Test, POST).

2. Ініціалізація апаратних пристроїв. Цей етап дуже важливий у сучасних архі­тектурах, заснованих на шині РСІ, оскільки він гарантує, що всі пристрої пра­цюватимуть без конфліктів у разі використання ліній переривань або портів введення-виведення. Наприкінці цього етапу буде відображено список уста­новлених РСІ-пристроїв.

3. Пошук і виконання початкового коду завантаження. Залежно від установок BIOS здійснюють спробу доступу (у заздалегідь визначеному порядку, який можна змінити) до першого сектора гнучкого диска, заданого жорсткого диска або компакт-диска. У жорсткому диску, як уже відомо з розділу 12, перший сектор називають головним завантажувальним записом (MBR).

4. Коли пристрій знайдено, BIOS копіює вміст його першого сектора в оператив­ну пам'ять (починаючи із фіксованої фізичної адреси 0x00007сОО), виконує ко­манду переходу на цю адресу і починає виконувати щойно завантажений код. За все інше відповідає операційна система.

 

Завантажувач ОС

 

Завантажувачем ОС (boot loader) називають програму, викликану кодом BIOS під час виконання процедури початкового завантаження для створення образу ядра операційної системи в оперативній пам'яті. Розглянемо основні принципи роботи найпростішого завантажувача в архітектурі PC.

Як зазначалося, BIOS починає виконувати код, який зберігається у MBR. Звичайно MBR містить таблицю розділів і невелику програму, що завантажує перший (завантажувальний) сектор одного із розділів у пам'ять і починає викону­вати код, що перебуває в ньому, - зазвичай цей код називають кодом завантажува­ча ОС. Вибір розділу, з якого потрібно завантажити сектор, переважно здійснюють за допомогою прапорця активного розділу, заданого для елемента таблиці розді­лів. У такий спосіб можна завантажити тільки ту ОС, ядро якої перебуває на ак­тивному розділі, інші підходи розглянемо пізніше.

Завантажувач ОС звичайно записують у завантажувальний сектор під час ін­сталяції системи, тоді ж задається і код для MBR. Код найпростішого завантажу­вача зводиться до пошуку на диску ядра ОС (зазвичай це файл, що перебуває у фіксованому місці кореневого каталогу) і завантаження його у пам'ять.

 

Двоетапне завантаження

Використання завантажувального сектора для безпосереднього завантаження яд­ра ОС має такі недоліки:

♦ код завантажувача вимушено є дуже простим, тому в ньому не можливо вико­нувати складніші дії (наприклад, керувати завантаженням кількох ОС), біль­шість інших недоліків є наслідками цього;

♦ не можливо передавати параметри у завантажувач;

♦ процес обмежений описаною схемою перемикання із MBR на завантажуваль­ний сектор, немає можливості керувати цим процесом;

♦ немає змоги завантажувати ядро з іншого розділу диска або із підкаталогу;

♦ ОС завжди буде запущена в реальному режимі процесора.

Для того щоб вирішити ці проблеми, код завантажувача ОС має бути усклад­нений. Природно, що ускладнений код не поміститься в один сектор, тому запро­поновано підхід, який отримав назву схеми двоетапного завантаження.

У цьому разі завантажувач розбивають на дві частини: завантажувач першого і другого етапів. Перший, як і раніше, зберігають у завантажувальному секторі диска (зазначимо, що під час використання цієї технології він може також збері­гатися і у MBR), але тепер основним його завданням є пошук на диску і заванта­ження у пам'ять не ядра, а завантажувача другого етапу. .

Завантажувач другого етапу — це повномасштабне застосування, яке отримує контроль над комп'ютером після виконання початкового завантаження (воно може бути виконане в реальному режимі процесора, а може перемикатися у при­вілейований режим). По суті, такий завантажувач є міні-ОС спеціалізованого призначення.

Розглянемо деякі можливості двоетапного завантажувача.

♦ У ньому можна керувати завантаженням кількох операційних систем. Особ­ливо зручно це робити у завантажувачах, що приймають керування від MBR: при цьому завантажувач бере на себе пошук активного розділу і завантаження системи із нього. Конфігурацію такого завантажувача можна динамічно змі­нювати під час зміни розділів диска. Завантажувач може містити код доступу до різних файлових систем, код завантаження різних ядер тощо.

♦ Може надавати інтерфейс користувача, який зазвичай зводиться до відобра­ження меню вибору завантажуваної операційної системи. Можливе також пере­давання введених користувачем параметрів у ядро перед його завантаженням.

♦ Його конфігурація може бути задана користувачем із завантаженої ОС. Для цього, наприклад, можна задати текстовий конфігураційний файл, зберегти його на диску і запустити спеціальну утиліту, що зробить синтаксичний роз­бір файла, перетворить його у внутрішнє відображення і збереже на диску у фіксованому місці, відомому завантажувачу.

♦ Не обмежений одним розділом і одним диском завантажувач може працювати з усіма дисками комп'ютера, завантажувати ядра, що перебувають у різних місцях на диску (зокрема всередині ієрархії каталогів).

Двоетапні завантажувачі надзвичайно поширені, їх можуть постачати разом з ОС (наприклад, lilo або GRUB для Linux, завантажувач Windows ХР), а також вони можуть бути реалізовані як окремі продукти - менеджери завантаження (boot managers).

 







Последнее изменение этой страницы: 2017-02-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.231.21.160 (0.004 с.)