Salah satu bagian dari pertanyaan yang belum dijawab sejauh ini adalah perbedaan antara bootloader pada mikrokontroler dan sistem mikroprosesor.
Mikrokontroler
Sebagian besar mikrokontroler memiliki memori ROM bawaan yang berisi kode program mereka. Mengubah kode ini biasanya memerlukan perangkat programmer yang terhubung ke antarmuka pemrograman mikrokontroler (misalnya ISP pada ATMega). Tetapi antarmuka pemrograman ini biasanya sering tidak nyaman digunakan, dibandingkan dengan antarmuka lain, karena mereka mungkin tidak tersedia dalam konteks yang diberikan. Jadi misalnya, sementara hampir setiap komputer memiliki port USB, antarmuka SPI yang diperlukan untuk ISP jauh lebih jarang, dan antarmuka lain seperti antarmuka PID yang digunakan pada ATXMega hanya didukung oleh perangkat keras pemrograman khusus.
Jadi, misalnya, jika Anda ingin memperbarui perangkat lunak dari komputer biasa tanpa perangkat keras eksternal, Anda dapat menggunakan bootloader yang membaca dari berbagai jenis antarmuka (misalnya RS232, USB atau RS232 melalui USB seperti pada Arduino) untuk memprogram perangkat lebih dari antarmuka umum.
Yang mengatakan, jika Anda tidak memerlukan fungsi ini, bootloader sepenuhnya opsional. Mikrokontroler masih dapat menjalankan kode sepenuhnya tanpa bootloader.
Mikroprosesor
Pada mikroprosesor hal-hal sedikit berbeda. Sementara sebagian besar mikroprosesor memiliki ROM yang cukup besar untuk bootloader, ROM tersebut hampir tidak cukup besar untuk menampung OS penuh. Jadi tujuan dari bootloader adalah untuk menginisialisasi perangkat keras, mencari OS yang dapat di-boot, memuatnya dan menjalankannya. Jadi bootloader sangat penting untuk setiap boot tunggal.
Pada sistem x86 / x64, bootloader ini adalah BIOS atau UEFI (pada dasarnya versi BIOS yang lebih baru).
Kadang-kadang Anda bahkan mungkin memiliki beberapa bootloader berjalan dalam sebuah rantai. Sebagai contoh jika Anda memiliki sistem dual-boot dengan Windows dan Linux Anda mungkin berakhir dengan yang berikut:
- BIOS / UEFI melakukan booting dan menemukan GRUB terpasang. Itu kemudian memuat GRUB (= Grand Unified Bootloader)
- GRUB menemukan beberapa jenis Linux dan Windows Bootloader. Pengguna memilih Bootloader Windows.
- Bootloader Windows mulai dan menemukan Windows 7 dan Windows 10 diinstal. Pengguna memilih Windows 10.
- Windows 10 akhirnya melakukan booting.
Jadi dalam hal ini ada tiga buah perangkat lunak yang dapat dianggap sebagai bootloader. GRUB dan Windows Bootloader sebagian besar ada di sana untuk memberi pengguna pilihan pilihan booting yang lebih nyaman daripada yang diberikan BIOS / UEFI. Hal ini juga memungkinkan beberapa OS diluncurkan dari hard drive yang sama atau bahkan dari partisi yang sama.
TLDR
Jadi sementara di kedua sistem, bootloader melakukan hal-hal yang agak mirip (membantu pengguna memilih kode untuk boot), keduanya sangat berbeda dalam hal bagaimana mereka mencapai itu dan apa yang mereka lakukan dengan tepat.