Một phần của câu hỏi chưa được trả lời cho đến nay là sự khác biệt giữa bộ tải khởi động trên bộ vi điều khiển và hệ thống vi xử lý.
Vi điều khiển
Hầu hết các bộ vi điều khiển đều có bộ nhớ ROM tích hợp có chứa mã chương trình của chúng. Thay đổi mã này thường yêu cầu một thiết bị lập trình kết nối với giao diện lập trình của vi điều khiển (ví dụ: ISP trên ATMega). Nhưng các giao diện lập trình này thường không thuận tiện để sử dụng, so với các giao diện khác, vì chúng có thể không có sẵn trong ngữ cảnh cụ thể. Vì vậy, ví dụ, trong khi hầu hết mọi máy tính đều có cổng USB, giao diện SPI cần thiết cho ISP hiếm hơn nhiều và các giao diện khác như giao diện PID được sử dụng trên ATXMega chỉ được hỗ trợ bởi phần cứng lập trình chuyên dụng.
Vì vậy, ví dụ, nếu bạn muốn cập nhật phần mềm từ máy tính thông thường mà không cần bất kỳ phần cứng bên ngoài nào, bạn có thể sử dụng bộ tải khởi động đọc từ một loại giao diện khác (ví dụ: RS232, USB hoặc RS232 qua USB như trên Arduino) để lập trình cho thiết bị trên các giao diện phổ biến.
Điều đó nói rằng, nếu bạn không cần chức năng này, bộ nạp khởi động là hoàn toàn tùy chọn. Bộ vi điều khiển vẫn có thể chạy mã hoàn toàn mà không cần bộ tải khởi động.
Bộ vi xử lý
Trên một bộ vi xử lý mọi thứ có một chút khác biệt. Mặc dù hầu hết các bộ vi xử lý đều có ROM đủ lớn cho bộ tải khởi động, những ROM đó không đủ lớn để chứa một hệ điều hành đầy đủ. Vì vậy, mục đích của bộ tải khởi động là khởi tạo phần cứng, tìm kiếm một hệ điều hành có khả năng khởi động, tải nó và chạy nó. Vì vậy, bộ nạp khởi động là rất quan trọng cho mỗi lần khởi động.
Trên các hệ thống x86 / x64, bộ tải khởi động này là BIOS hoặc UEFI (về cơ bản là phiên bản mới hơn của BIOS).
Đôi khi bạn thậm chí có thể có nhiều bộ tải khởi động đang chạy trong một chuỗi. Ví dụ: nếu bạn có một hệ thống khởi động kép với Windows và Linux, bạn có thể kết thúc bằng các điều sau:
- BIOS / UEFI khởi động và tìm thấy GRUB được cài đặt. Sau đó, nó tải GRUB (= Grand Unified Bootloader)
- GRUB tìm thấy một số loại Linux và Windows Bootloader. Người dùng chọn Bộ tải khởi động Windows.
- Bộ tải khởi động Windows khởi động và tìm thấy Windows 7 và Windows 10 được cài đặt. Người dùng chọn Windows 10.
- Windows 10 cuối cùng cũng khởi động.
Vì vậy, trong trường hợp này, có ba phần mềm có thể được coi là bộ tải khởi động. Cả GRUB và Windows Bootloader hầu hết đều ở đó để cung cấp cho người dùng tùy chọn lựa chọn khởi động thuận tiện hơn so với BIOS / UEFI sẽ cung cấp cho họ. Nó cũng cho phép nhiều hệ điều hành được khởi chạy từ cùng một ổ cứng hoặc thậm chí cùng một phân vùng.
TLD
Vì vậy, trong khi trong cả hai hệ thống, bộ nạp khởi động thực hiện những điều tương tự (giúp người dùng chọn mã nào để khởi động) cả hai đều khác nhau rất nhiều về cách họ thực hiện điều đó và chính xác những gì họ làm.