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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Знімок екрану завантажувача 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 РС запуск завантажувача здійснюється програмним забезпеченням BIOS, записаною в постійній пам'яті комп'ютера (зараз це найчастіше флеш-пам'ять), після успішного закінчення процедури POST.

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

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

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

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

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

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