Завантаження операційної системи
Заванта́ження операці́йної систе́ми (англ. booting) — це багатокроковий процес запуску комп'ютера.
Заванта́жувач операційної системи (англ. bootloader) — це програма, що виконує завантаження операційної системи. Завантажувач операційної системи зазвичай міститься в секторі завантажування.
Послідовність завантаження (англ. boot sequence) — це початковий набір дій, що при цьому виконується комп'ютером.
Типи завантаження
- Початкове завантаження (англ. booting up) — завантажування після того, як користувач увімкнув комп'ютер.
- Перезавантаження (англ. reboot)
Жорстке перезавантаження
Жорстке перезавантаження (англ. hard reboot) відбувається, коли на короткий час зникає живлення комп'ютера або коли на процесор надсилається спеціальний сигнал (найчастіше — з кнопки, що міститься на передній панелі комп'ютера). Це початкове завантаження без попереднього виконання завершальних процедур операційної системи. Для багатьох операційних систем, особливо тих, що використовують дисковий кеш, після жорсткого перезавантаження файлова система може містити неузгодженості через незавершеність дискових операцій вводу-виводу; щоб виправити ці помилки, запускається процедура сканування файлової системи на цілісність структури ще до того, як матиме місце нормальне завантаження. Жорстке перезавантаження може бути спричинено ненавмисно, через випадкове від'єднання живлення, або ж зроблене навмисно, як остання спроба вийти зі стану, коли комп'ютер не функціонує нормально (наприклад, критичної помилки системи, вірусної атаки чи DoS-атаки з інтернету).
М'яке перезавантаження
М'яким (англ. soft reboot) перезавантаження називається тоді, коли воно відбувається під контролем програмного забезпечення, без порушень в електроживленні і натискання кнопки перезавантаження на передній панелі. Як правило, але не завжди, це означає звичайне штатне завершення роботи машини й наступне перезавантаження.
Комбінація клавіш клавіатури Control-Alt-Delete на оригінальному комп'ютері IBM PC була визначена для виконання м'якого перезавантаження для скорішого і зручнішого (і, дехто стверджує, менш стресового для компонентів системи) рестарту (порівняно із тим, коли вимикається живлення комп'ютера).
Ядро Linux має опціональну підтримку системного виклику kexec, який зупиняє поточне робоче ядро, завантажує інше ядро і запускає його. Цей процес повністю незалежний від вбудованих програм (firmware). Ядро, яке запускається, може навіть і не бути ядром Linux.[джерело?]
Функціональність завантажувача операційної системи
- забезпечує необхідні засоби для діалогу з користувачем комп'ютера (наприклад, завантажувач дозволяє вибрати ядро операційної системи для завантаження);
- приводить апаратуру комп'ютера в стан, необхідний для старту ядра операційної системи (наприклад, на не-x86 архітектурі перед запуском ядра завантажувач повинен правильно налаштувати віртуальну пам'ять);
- завантажує ядро операційної системи в оперативну пам'ять. Завантаження ядра операційної системи не обов'язково відбувається з твердого диску — завантажувач може отримувати ядро з мережі, Ядро також може зберігатися в постійній пам'яті або завантажуватися через послідовні інтерфейси (це може пригодитися на ранній стадії зневадження створюваної комп'ютерної системи);
- формує параметри, що передаються ядру операційної системи (наприклад, ядру Linux передаються параметри, що вказують спосіб підключення кореневої файлової системи);
- здійснює запуск ядра операційної системи.
Завантажувальні пристрої
Завантажувальний пристрій — пристрій, з якого вантажиться операційна система. BIOS сучасних комп'ютерів підтримує завантаження з різних пристроїв, зазвичай, це локальний жорсткий диск (або одна з частин логічного чи фізичного розділу на диску), пристрій читання оптичних дисків, USB-диск (у варіантах флеш-диска, зовнішнього твердого, магнітооптичного чи оптичного диска тощо), або інтерфейсна мережева карта (з використанням PXE). Старіші, вже менш поширені варіанти завантаження — з дисковода гнучких дисків, SCSI-пристрою, Zip-дисковода або пристрою LS-120.
Зазвичай BIOS дозволяє користувачу обрати і впорядкувати спосіб завантаження. Якщо порядок завантаження встановлено так: «по-перше, DVD-дисковод; по-друге, твердий диск», то BIOS намагатиметься завантажити систему з DVD, і, якщо спроба виявиться невдалою (наприклад, у дисководі відсутній диск чи диск не має сектора завантажування), тоді відбудеться спроба завантажитися з наступного пристрою (в цьому прикладі — з твердого диска).
IBM PC-сумісні комп'ютери
На комп'ютерах архітектури IBM PC запуск завантажувача здійснюється (після успішного закінчення процедури POST) програмним забезпеченням BIOS або UEFI, записаним у постійній пам'яті комп'ютера (зараз це найчастіше — флеш-пам'ять).
Процедура, за допомогою якої відбувається завантаження ОС із твердого диску IBM PC, має таку послідовність: BIOS проводить читання 512 байт першого сектора диска і запис їх в оперативну пам'ять за адресою 0x00007C00 (0x07C0:0x0000 у форматі реального режиму), потім прочитаному коду передається керування. Цей код читає й аналізує таблицю розділів твердого диска, а потім, залежно від виду завантажувача, або передає керування завантажувальному коду активного розділу твердого диска, або самостійно завантажує ядро з диска в оперативну пам'ять і передає йому керування. Спочатку завантажувач працює в режимі реальної адресації при вимкненій адресній лінії A20, що створює певні труднощі при написанні завантажувачів.
Поширені завантажувачі
- NTLDR — завантажувач ядра Windows XP, Server 2003 та старіших версій;
- Windows Boot Manager (bootmgr, bootmgfw.efi, winload.exe, winload.efi) — завантажувач ядра Windows Vista, Server 2008 та новіших версій;
- LILO (LInux LOader) — завантажувач, в основному, для завантаження ядра Linux;
- GRUB (Grand Unified Bootloader) — використовується для завантаження ядра Linux і Hurd (StartUp Manager);
- OS/2 BootManager — завантажувач ядра OS/2;
- RedBoot — завантажувач для вбудованих систем;
- SILO (SPARC Improved bootLOader) — завантажувач Linux і Solaris для машин з архітектурою SPARC. Домашня сторінка SILO;
- Loadlin — завантажує Linux із-під DOS або Windows Домашня сторінка Loadlin;
- Syslinux — завантажує Linux із під DOS або Windows;
- BOOTP — застосовується для завантаження з мережі;
- Yaboot — завантажувач Linux на PowerPC;
- BOOTX — завантажувач Mac OS X;
- Das U-Boot;
- SyMon — універсальний завантажувач, незалежний від типу операційної системи Домашня сторінка SyMon.