Початкове завантаження комп'ютера

Початкове завантаження — складний і багатокроковий процес запуску комп'ютера.

Windows XP завантажується в інтернет-телефоні-автоматі

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

Початкове завантаження

Історично комп'ютерні системи могли виконувати лише команди, що знаходяться в оперативній пам'яті комп'ютера.[джерело?] Як альтернатива програмний код може виконуватися і безпосередньо у пам'яті довготривалого зберігання (наприклад, NVDIMM).

Операційні системи для настільних комп'ютерів, серверів і мейнфреймів як правило зберігаються на жорстких дисках, завантажувальних CD-ROM, USB-дисках або в локальній мережі, і вимагають завантаження деяких своїх компонентів (ядро операційної системи, драйвери пристроїв) до оперативної пам'яті машини перед запуском ОС. Цій меті слугує спеціальна комп'ютерна програма — завантажувача операційної системи. Ця програма не володіє всією функціональністю ОС, але її достатньо для того, щоб завантажити вказані компоненти (часто методом багаторівневого завантаження) до пам'яті і передати їм керування

У сучасних комп'ютерах процес початкового завантаження починається з виконання процесором програми, розташованій у постійній пам'яті (наприклад, BIOS у IBM PC-сумісних комп'ютерах, або UEFI), починаючи з наперед заданої адреси (процесор робить це після перезавантаження без якої б то не було допомоги). Це програмне забезпечення може виявляти пристрої, придатні для завантаження з них, і завантажувати зі спеціального розділу вибраного пристрою (завантажувального сектора диска, або файлової системи UEFI) завантажувач ОС.

Початкові завантажувачі повинні відповідати специфічним вимогам. У випадку BIOS або CSM-завантаження на IBM PC-сумісному комп'ютері завантажувач першого рівня повинен міститися в перших 446 байтах головного завантажувального запису, залишивши місце для 64 байт таблиці розділів і 2 байти для сигнатури 55AAh, необхідної для того, щоб BIOS виявила сам початковий завантажувач. У випадку UEFI-завантаження файл повинен бути у спеціальному форматі (Portable Executable).

Історія

Перші комп'ютери мали набір перемикачів, які дозволяли оператору розміщувати початковий завантажувач в пам'яті до запуску процесора. Потім завантажувач зчитував операційну систему з зовнішнього пристрою, наприклад з перфострічки або з жорсткого диска.

Псевдоасемблерний код початкового завантажувача може бути настільки ж простим, як і наступна послідовність інструкцій:

0: записати в регістр P число 8
1: перевірити, що пристрій зчитування перфострічок може починати зчитування
2: якщо не може, перейти до п. 1
3: прочитати байт з пристрою зчитування перфострічок і записати його в акумулятор
4: якщо перфострічка закінчилася, перейти до п. 8
5: записати значення, збережене в акумуляторі, в оперативну пам'ять за адресою, що зберігається в регістрі P
6: збільшити значення регістра P на одиницю
7: перейти до п. 1

Даний приклад заснований на початковому завантажувачі одного з міні-комп'ютерів, випущеного в 1970-х роках фірмою Nicolet Instrument Corporation:

0: записати в регістр P число 106
1: перевірити, що пристрій зчитування перфострічок може починати зчитування
2: якщо не може, перейти до п. 1
3: прочитати байт з пристрою зчитування з перфострічок і записати його в акумулятор
4: якщо перфолента закінчилася, перейти до п. 8
5: записати значення, збережене в акумуляторі, в оперативну пам'ять за адресою, що зберігається в регістрі P
6: зменшити значення регістра P на одиницю
7: перейти до п. 1

Довжина завантажувача другого рівня була такою, що останній байт завантажувача змінював команду, розташовану за адресою 6. Таким чином, після виконання пункту 5 стартував завантажувач другого рівня. Завантажувач другого рівня очікував заправки в пристрій зчитування перфострічки довгої перфострічки, яка містила операційну систему. Відмінністю між завантажувачем першого рівня і завантажувачем другого рівня були перевірки на помилки зчитування з перфострічки, які часто зустрічалися в той час, і, зокрема, на використовуваних в даному випадку телетайпах ASR-33.

Деякі операційні системи, найбільш характерними з яких є старі (до 1995 року) операційні системи комп'ютерів Macintosh вироблених Apple Computer, настільки тісно пов'язані з апаратним забезпеченням комп'ютерів, що на даних комп'ютерах неможливо завантажити будь-яку іншу операційну систему. В таких випадках зазвичай розробляється початковий завантажувач, який працює як завантажувач стандартної ОС, а потім запускає альтернативну операційну систему. Apple використовувала даний спосіб для запуску A/UX (UNIX-подібна операційна система), а потім він використовувався різними безкоштовними операційними системами.

Пристрої, що ініціалізуються BIOS

До завантаження операційної системи BIOS має ініціалізувати пристрої введення (клавіатура, миша), базові пристрої виводу (відеокарта і дисплей), і пристрій, з якого буде проведене завантаження ОСдисковод, жорсткий диск, CD-ROM, флеш-диск, SCSI-пристрій, мережева карта (при завантаженні по мережі; наприклад, за допомогою PXE).

Послідовність завантаження IBM PC-сумісного комп'ютера

BIOS та CSM

Завантажується персональний комп'ютер.
Частина екрану з ініціалізованими компонентами материнської плати і підключеними периферійними пристроями. В нижній частині екрану видно таблицю налаштованих Plug-and-Play пристроїв.

IBM PC-сумісний комп'ютер після увімкнення живлення формує сигнал апаратного «скидання» (англ. RESET центрального процесора, після чого процесор починає роботу в реальному режимі адресації з сегментною організацією і виконує першу інструкцію за адресою FFFF:0 (кодовий сегмент CS має значення FFFFh, а вказівник інструкцій IP значення 0). В кінці доступного процесору адресного простору оперативної пам'яті розташований адресний простір постійного запам'ятовувача — мікросхеми BIOS, куди і передається керування за інструкцією безумовного переходу, що відображена за адресою FFFF:0.

Програма ініціалізації BIOS за допомогою програми POST перевіряє, що пристрої комп'ютера працюють коректно і ініціалізує їх.

Потім BIOS опитує по порядку пристрої з заздалегідь сформованого (в консольній утиліті CMOS SETUP) списку завантажувальних пристроїв, поки не знайде завантажувальний пристрій. Якщо такий пристрій не буде знайдено, BIOS виводитье на екран повідомлення про помилку і процес завантаження зупиняється. При виявленні BIOS'ом завантажувального пристрою, з останнього буде зроблена спроба читання даних його нульового сектора (512 байт, в яких повинен перебувати завантажувальний запис). Після успішного завершення читання даних нульового сектора завантажувального пристрою в оперативну пам'ять з початкового адресою 0000:7С00, BIOS передає на цю адресу подальше виконання інструкцій процесора.

Нульовий сектор завантажувального жорсткого диска містить так званий «головний завантажувальний запис (MBR — Master Boot Record), який містить як дані перших чотирьох записів таблиці розділів, так і інструкції процесора Intel 80x86, що забезпечують пошук за цими записами активного розділу, з якого, за допомогою однієї з функцій базової системи введення-виведення — INT 13h, реалізованої у вигляді обробника переривання процесора, буде зчитаний завантажувальний запис операційної системи. Цей завантажувальний сектор, як правило, залежить від операційної системи і повинен зробити завантаження в оперативну пам'ять ядра операційної системи, з подальшою передачею на нього виконання інструкцій процесора. Якщо активного розділу не існує, або завантажувальний сектор активного розділу некоректний, MBR може завантажити резервний початковий завантажувач і передати управління йому. Резервний початковий завантажувач повинен вибрати розділ (часто з допомогою користувача), завантажити його завантажувальний сектор і передати йому управління, який, у свою чергу, передає управління безпосередньо завантажувачу ОС (подальші етапи завантаження залежать від типу/версії встановленої ОС).[lower-alpha 1]

Інші види завантажувальних послідовностей

Деякі процесори мають інші режими завантаження. Наприклад, більшість цифрових сигнальних процесорів можуть завантажитися в наступних режимах:

  • завантаження з послідовного порту;
  • завантаження з паралельного порту;
  • завантаження з використанням HPI (Host-Port Interface);
  • завантаження після «гарячого» перезавантаження (відрізняється від послідовності виконуваної при початковому увімкнені живлення).

Див. також

Примітки

  1. Сині екрани BSoD (та інші фатальні помилки) можуть бути виведені лише після початкового завантаження, коли керування завантаженням передається завантажувачу і ядру ОС. На етапі початкового завантаження усі помилки (POST, BIOS, MBR, таблиці FAT/MFT, сектора VBS, IPL (PnP BIOS) відображаються дуже коротко і на чорному екрані.

Джерела

    Література

    • Загрузка // Модернизация и ремонт ПК : пер. с англ. / Скотт Мюллер. — 17-е изд. М. : Вильямс, 2008.  Гл. 22 : Средства диагностики и техническое обслуживание. — С. 1341–1349. — ISBN 978-5-8459-1126-1.

    Посилання

    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.