Однією з питань, на яку поки не відповіли, є різниця між завантажувачами на мікроконтролерах та мікропроцесорними системами.
Мікроконтролер
Більшість мікроконтролерів мають вбудовану пам'ять ПЗУ, яка містить код програми. Для зміни цього коду зазвичай потрібен пристрій програміста, який підключається до інтерфейсу програмування мікроконтролера (наприклад, ISP на ATMega). Але такі інтерфейси програмування зазвичай часто не дуже зручні у використанні, порівняно з іншими інтерфейсами, оскільки вони можуть бути недоступними у заданому контексті. Наприклад, хоча майже на кожному комп'ютері є порти USB, інтерфейс SPI, необхідний для провайдера, набагато рідше, а інші інтерфейси, такі як PID-інтерфейс, що використовується в ATXMega, підтримуються лише спеціальним програмним забезпеченням.
Так, наприклад, якщо ви хочете оновити програмне забезпечення зі звичайного комп'ютера без зовнішнього обладнання, ви можете використовувати завантажувач, який читає з іншого типу інтерфейсу (наприклад, RS232, USB або RS232 через USB, як на Arduino) для програмування пристрою через загальні інтерфейси.
Однак, якщо вам не потрібна ця функція, завантажувач абсолютно не є обов'язковим. Мікроконтролер все ще може запустити його код повністю без завантажувача.
Мікропроцесор
На мікропроцесорі все трохи інакше. Хоча більшість мікропроцесорів оснащено ПЗУ, який є достатньо великим для завантажувача, ці ПЗУ недостатньо великі, щоб вмістити повну ОС. Таким чином, мета завантажувача - ініціалізувати обладнання, шукати завантажувальну ОС, завантажувати її та запускати її. Тому завантажувач є критичним для кожного завантаження.
У системах x86 / x64 цей завантажувач завантажень є або BIOS, або UEFI (в основному це новіша версія BIOS).
Іноді у вас навіть є кілька завантажувачів, що працюють в ланцюзі. Наприклад, якщо у вас є система з подвійним завантаженням у Windows та Linux, ви можете отримати таке:
- BIOS / UEFI завантажується і знаходить встановлений GRUB. Потім він завантажує GRUB (= Grand Unified Bootloader)
- GRUB знаходить якийсь Linux та завантажувач Windows. Користувач вибирає завантажувач Windows.
- Запускається завантажувач Windows і знаходить встановлені Windows 7 та Windows 10. Користувач вибирає Windows 10.
- Нарешті, Windows 10 завантажується.
Тож у цьому випадку було три програми, які можна вважати завантажувачем. І GRUB, і завантажувач Windows в основному є, щоб дати користувачеві більш зручний варіант вибору завантаження, ніж BIOS / UEFI. Він також дозволяє запустити декілька ОС з одного жорсткого диска або навіть одного і того ж розділу.
TLDR
Тож як в обох системах завантажувач робить щось подібне (допомагаючи користувачеві вибрати, який код для завантаження), вони обидва сильно відрізняються тим, як вони це роблять і що саме роблять.