Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_Шеховцов_1.docx
Скачиваний:
73
Добавлен:
09.11.2019
Размер:
14.73 Mб
Скачать

19.1.2. Завантажувач ос

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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