Khi sử dụng máy tính chúng ta đã nghe nói về BIOS và U-Boot liên quan đến việc khởi động hệ điều hành. Vậy thì giữa chúng khác nhau thế nào? Sau khi tìm hiểu mình nhận ra, có nhiều điểm khác nhau giữa U-Boot và BIOS. Bài viết này sẽ thảo luận về chúng.
Lưu ý rằng cả hai đều là phần mềm, không phải thiết bị phần cứng.
BIOS là một bootloader cộng với các chức năng sử dụng phần cứng có trên mainboard của máy tính (PC). U-Boot thì chỉ là một bootloader.
BIOS là một phần thiết yếu của PC xuất hiện ban đầu ở máy tính IBM. U-Boot đúng như tên đầy đủ của nó là “Universal Boot” – bộ khởi động thông dụng, nó đã được port sang nhiều kiến trúc và nền tảng khác nhau.
Các chức năng của BIOS bao gồm khởi tạo hệ thống cơ bản sau khi reset hoặc mở máy (power on), thực hiện tự kiểm tra khởi động hay POST (Power On Self Tests) để thiết lập một giao diện cấu hình phần cứng có thể tương tác (BIOS Setup) và bootstrapping PC. Khả năng sử dụng các driver thiết bị tích hợp cho BIOS của máy tính IBM đã bị chặn để cho các driver thiết bị của OS hoạt động. Còn các chức năng của U-Boot bao gồm khởi tạo hệ thống cơ bản và bootstrap hệ thống. Trình tự khởi động (boot) có thể bỏ để tới giai đoạn tương tác bằng dòng lệnh (command-line). Bởi vì U-Boot có tính linh hoạt hơn, nên nó có thể thêm hoặc bớt các chức năng tuỳ ý người dùng, như là POST, thẩm định, các công cụ bảo trì hệ thống tập tin, các chức năng mạng (network) như là theo dõi thời gian trong ngày (SNTP) hoặc địa chỉ IP (DHCP client), chức năng đọc, ghi, chỉnh sửa các vùng trong bộ nhớ. Các chức năng thực tế của U-Boot còn thay đổi tuỳ theo hệ thống.
BIOS chịu trách nhiệm khởi tạo startup của PC tại giai đoạn thứ nhất của bootloader. BIOS thực thi trực tiếp (XIP – execute in place) trong bộ nhớ flash, nơi chứa BIOS, mà không cần copy code của BIOS sang bộ nhớ RAM. U-Boot thường là giai đoạn thứ hai hoặc thứ ba của bootloader. U-Boot cũng có thể là bootloader giai đoạn một như BIOS do cũng có khả năng XIP, nhưng hầu như không được dùng theo cách này. Thông thường U-Boot được load từ bộ nhớ flash và thực thi trong bộ nhớ chính như SDRAM.
Ở giai đoạn đầu tiên của bootloader, BIOS có khả năng load và thực thi bị giới hạn hơn, như Master Boot Record (MBR) từ một đĩa cứng (hard disk). BIOS không thực sự load ảnh hệ điều hành. Khi U-Boot được cung cấp định dạng filae uImage, nó nhận ra hệ điều hành sẽ phải load và có thể chuẩn bị đúng bộ nhớ đệm và các tham số cho quá trình khởi tạo hệ điều hành (operating system) chính xác.
BIOS được xây dựng trên PC nên cơ bản sử dụng màn hình và bàn phím làm thiết Input/Output. Còn U-Boot sử dụng cổng nối tiếp RS232 làm thiết bị Input/Output.
BIOS của PC IBM ban đầu được thành lập dựa trên tài liệu kỹ thuật của hãng IBM và ngôn ngữ assembly x86. Các phiên bản hiện đại do AMI, Award và Phoenix bán ra đều là độc quyền. Còn U-Boot được phát hành dưới giấy phép bản quyền GNU GPL.
Ngoài ra U-Boot là mã nguồn mở (open source). U-Boot ban đầu được tạo ra cho PowerPC và được đặt tên là PPCBoot. 2 năm sau hợp nhất với ARMBoot, một bootloader cho CPU ARM. Sau đó, nó phát triển để hỗ trợ cho nhiều loại chip và nền tảng khác. BIOS được tạo cho máy tính IBM nên là mã nguồn đóng (closed source).
Mọi bài viết, hình ảnh, hay nội dung khác đăng trên talucgiahoang.com đều thuộc bản quyền của trang. Vui lòng chỉ sử dụng hoặc đăng lại nội dung vì mục đích phi thương mại, và cần ghi lại tiêu đề gốc, đường link URL, cũng như dẫn nguồn talucgiahoang.com.