ส่วนหนึ่งของคำถามที่ยังไม่ได้รับคำตอบจนถึงขณะนี้คือความแตกต่างระหว่าง bootloaders บนไมโครคอนโทรลเลอร์และระบบไมโครโปรเซสเซอร์
ไมโครคอนโทรลเลอร์
ไมโครคอนโทรลเลอร์ส่วนใหญ่มีหน่วยความจำ ROM ในตัวที่มีรหัสโปรแกรม การเปลี่ยนรหัสนี้มักจะต้องใช้อุปกรณ์โปรแกรมเมอร์ที่เชื่อมต่อกับอินเตอร์เฟสการเขียนโปรแกรมของไมโครคอนโทรลเลอร์ (เช่น ISP บน ATMega) แต่อินเตอร์เฟสการเขียนโปรแกรมเหล่านี้มักจะไม่ค่อยสะดวกในการใช้งานเมื่อเทียบกับอินเตอร์เฟสอื่น ๆ เนื่องจากอาจไม่พร้อมใช้งานในบริบทที่กำหนด ตัวอย่างเช่นในขณะที่คอมพิวเตอร์เกือบทุกเครื่องมีพอร์ต USB อินเทอร์เฟซ SPI ที่จำเป็นสำหรับ ISP นั้นค่อนข้างหายากและอินเทอร์เฟซอื่น ๆ เช่นอินเทอร์เฟซ PID ที่ใช้บน ATXMega นั้นรองรับฮาร์ดแวร์การเขียนโปรแกรมเฉพาะเท่านั้น
ดังนั้นหากคุณต้องการอัปเดตซอฟต์แวร์จากคอมพิวเตอร์ทั่วไปโดยไม่มีฮาร์ดแวร์ภายนอกคุณสามารถใช้ bootloader ที่อ่านจากอินเทอร์เฟซชนิดต่าง ๆ (เช่น RS232, USB หรือ RS232 ผ่าน USB เช่น Arduino) เพื่อตั้งโปรแกรมอุปกรณ์ ผ่านอินเตอร์เฟสทั่วไป
ที่กล่าวว่าถ้าคุณไม่ต้องการฟังก์ชั่นนี้ bootloader เป็นตัวเลือกที่สมบูรณ์ ไมโครคอนโทรลเลอร์ยังคงสามารถเรียกใช้รหัสได้อย่างสมบูรณ์โดยไม่ต้อง bootloader
ไมโครโปรเซสเซอร์
ในไมโครโปรเซสเซอร์สิ่งต่าง ๆ เล็กน้อย ในขณะที่ไมโครโปรเซสเซอร์ส่วนใหญ่มี ROM ที่มีขนาดใหญ่พอสำหรับ bootloader แต่ ROM นั้นไม่ใหญ่พอที่จะใช้กับระบบปฏิบัติการแบบเต็ม ดังนั้นวัตถุประสงค์ของ bootloader คือการเริ่มต้นฮาร์ดแวร์ค้นหา OS ที่สามารถบู๊ตได้โหลดและเรียกใช้ ดังนั้น bootloader จึงมีความสำคัญสำหรับการบู๊ตทุกครั้ง
ในระบบ x86 / x64 bootloader นี้เป็นไบออสหรือ UEFI (โดยทั่วไปคือไบออสเวอร์ชั่นใหม่กว่า)
บางครั้งคุณอาจมี bootloaders หลายตัวทำงานในสายโซ่ ตัวอย่างเช่นหากคุณมีระบบดูอัลบูตด้วย Windows และ Linux คุณอาจต้องทำสิ่งต่อไปนี้:
- BIOS / UEFI บูทขึ้นและพบว่า GRUB ได้รับการติดตั้ง จากนั้นโหลด GRUB (= Grand Unified Bootloader)
- GRUB ค้นหา Linux และ Windows Bootloader บางประเภท ผู้ใช้เลือก Windows Bootloader
- bootloader ของ Windows เริ่มทำงานและค้นหา Windows 7 และ Windows 10 ที่ติดตั้ง ผู้ใช้เลือก Windows 10
- Windows 10 จะบู๊ตในที่สุด
ดังนั้นในกรณีนี้มีซอฟต์แวร์สามชิ้นที่สามารถพิจารณาเป็น bootloader ได้ ทั้ง GRUB และ Windows Bootloader ส่วนใหญ่อยู่ที่นั่นเพื่อให้ผู้ใช้ตัวเลือกการบูตที่สะดวกกว่า BIOS / UEFI จะให้พวกเขา นอกจากนี้ยังอนุญาตให้มีการเปิดตัวระบบปฏิบัติการหลายระบบจากฮาร์ดไดรฟ์เดียวกันหรือแม้แต่พาร์ติชันเดียวกัน
TLDR
ดังนั้นในขณะที่ทั้งสองระบบ bootloader ทำสิ่งที่คล้ายกัน (ช่วยให้ผู้ใช้เลือกรหัสที่จะบูต) พวกเขาทั้งสองต่างกันอย่างมากในวิธีที่พวกเขาบรรลุและสิ่งที่พวกเขาทำ