Завантаження операційної системи

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Знімок екрану завантажувача GRUB

Заванта́ження операці́йної систе́ми (англ. booting) — це багатокроковий процес запуску комп'ютера. Заванта́жувач операційної системи (англ. bootloader) — це програма, що виконує завантаження операційної системи. Завантажувач операційної системи зазвичай міститься в секторі завантажування. Послідовність завантаження (англ. boot sequence) — це початковий набір дій, що при цьому виконується комп'ютером.

Типи завантаження[ред.ред. код]

  • Початкове завантаження (англ. booting up) — Завантажування після того, як комп'ютер увімкнено користувачем.
  • Перезавантаження (англ. reboot):

Жорстке перезавантаження[ред.ред. код]

Жорстке перезавантаження (англ. hard reboot) відбувається, коли на короткий час зникає живлення комп'ютера або коли на процесор надсилається спеціальний сигнал (найчастіше — з кнопки, що міститься на передній панелі комп'ютера). Це початкове завантаження без попереднього виконання завершальних процедур операційної системи. Для багатьох операційних систем, особливо тих, що використовують дисковий кеш, після жорсткого перезавантаження файлова система може містити неузгодженості через незавершеність дискових операцій вводу-виводу; щоб виправити ці помилки, запускається процедура сканування файлової системи на цілісність структури ще до того, як матиме місце нормальне завантаження. Жорстке перезавантаження може бути спричинено ненавмисно, через випадкове відключення живлення, або ж зроблене навмисно, як остання спроба вийти з неприємного стану на комп'ютері, наприклад, критичної помилки системи, вірусної атаки чи DoS-атаки з інтернету.

М'яке перезавантаження[ред.ред. код]

М'яким (англ. soft reboot) перезавантаження називається тоді, коли воно відбувається під контролем програмного забезпечення, без порушень в електроживленні і натискання кнопки перезавантаження на передній панелі. Як правило, але не завжди, це означає звичайне штатне завершення роботи машини й наступне перезавантаження.

Комбінація клавіш клавіатури Control-Alt-Delete на оригінальному комп'ютері IBM PC була визначена для виконання м'якого перезавантаження для скорішого і зручнішого (і, дехто стверджує, менш стресового для компонентів системи) рестарту (порівняно із тим, коли вимикається живлення комп'ютера).

Ядро Linux має опціональну підтримку системного виклику kexec, який зупиняє поточне робоче ядро і переключає виконання на інше. Цей процес повністю незалежний від програм, зашитих у залізо (firmware). Зауважимо, що ядро, яке запускається, може навіть і не бути ядром Linux.

Функціональність завантажувача операційної системи[ред.ред. код]

  • забезпечує необхідні засоби для діалогу з користувачем комп'ютера (наприклад, завантажувач дозволяє вибрати ядро операційної системи для завантаження);
  • приводить апаратуру комп'ютера в стан, необхідний для старту ядра операційної системи (наприклад, на не-x86 архітектурі перед запуском ядра завантажувач повинен правильно налаштувати віртуальну пам'ять);
  • завантажує ядро операційної системи в оперативну пам'ять. Завантаження ядра операційної системи не обов'язково відбувається з твердого диску — завантажувач може отримувати ядро з мережі, Ядро також може зберігатися в постійній пам'яті або завантажуватися через послідовні інтерфейси (це може пригодитися на ранній стадії зневадження створюваної комп'ютерної системи);
  • формує параметри, що передаються ядру операційної системи (наприклад, ядру Linux передаються параметри, що вказують спосіб підключення кореневої файлової системи);
  • передає управління ядру операційної системи.

На комп'ютерах архітектури IBM РС запуск завантажувача здійснюється (після успішного закінчення процедури POST) програмним забезпеченням BIOS, записаним у постійній пам'яті комп'ютера (зараз це найчастіше  — флеш-пам'ять).

Процедура, за допомогою якої відбувається завантаження ОС із твердого диску IBM РС, має таку послідовність: BIOS проводить читання 512 байт першого сектора диска і запис їх в оперативну пам'ять за адресою 0x00007C00 (0x07C0:0x0000 у форматі реального режиму), потім прочитаному коду передається керування. Цей код читає й аналізує таблицю розділів твердого диска, а потім, залежно від виду завантажувача, або передає керування завантажувальному коду активного розділу твердого диска, або самостійно завантажує ядро з диска в оперативну пам'ять і передає йому керування. Спочатку завантажувач працює в режимі реальної адресації при вимкненій адресній лінії A20, що створює певні труднощі при написанні завантажувачів.

Завантажувальні пристрої[ред.ред. код]

Завантажувальний пристрій — пристрій, з якого вантажиться операційна система. BIOS сучасних комп'ютерів підтримує завантаження з різних пристроїв, зазвичай, це локальний жорсткий диск (HDD) (або одна з частин логічного чи фізичного розділу на диску), пристрій читання оптичних дисків, USB-диск (у варіантах флеш-диска, зовнішнього твердого, магнітооптичного чи оптичного диска тощо), або інтерфейсна мережева карта (з використанням PXE). Старіші, вже менш поширені варіанти завантаження — з дисковода гнучких дисків, SCSI-пристрою, Zip-дисковода або пристрою LS-120.

Зазвичай BIOS дозволяє користувачу обрати і впорядкувати спосіб завантаження. Якщо порядок завантаження встановлено так: «по-перше, DVD-дисковод; по-друге, твердий диск», то BIOS намагатиметься завантажити систему з DVD, і, якщо спроба виявиться невдалою (наприклад, у дисководі відсутній диск чи диск не має сектора завантажування), тоді відбудеться спроба завантажитися з наступного пристрою (в цьому прикладі — з твердого диска).

Поширені завантажувачі[ред.ред. код]

Див. також[ред.ред. код]