BIOS và UEFI khác nhau như thế nào?
Giải thích sự khác nhau giữa Legacy BIOS và UEFI theo góc nhìn firmware, boot flow và khả năng mở rộng hệ thống.
1. Vấn đề
Khi mới học firmware PC, ta thường nghe hai khái niệm: BIOS và UEFI.
Nhiều người hiểu đơn giản rằng:
BIOS là cái cũ
UEFI là cái mới
Cách hiểu này không sai, nhưng chưa đủ.
Để đọc hiểu source code firmware, debug boot issue hoặc làm việc với platform initialization, ta cần hiểu rõ hơn BIOS và UEFI khác nhau ở đâu.
2. BIOS là gì?
BIOS là viết tắt của Basic Input/Output System.
Legacy BIOS là firmware truyền thống trên PC, có nhiệm vụ khởi tạo phần cứng cơ bản và chuyển quyền điều khiển cho bootloader.
Luồng đơn giản có thể hình dung:
Power On
↓
BIOS initialization
↓
POST
↓
Find boot device
↓
Load boot sector
↓
Bootloader
↓
Operating System
BIOS thường gắn với mô hình boot cũ, ví dụ MBR boot.
3. UEFI là gì?
UEFI là viết tắt của Unified Extensible Firmware Interface.
UEFI không chỉ là một firmware thay thế BIOS. Nó là một kiến trúc firmware hiện đại hơn, có driver model, service, protocol và boot manager rõ ràng hơn.
Luồng tổng quan:
Power On
↓
SEC
↓
PEI
↓
DXE
↓
BDS
↓
UEFI Boot Manager
↓
OS Bootloader
↓
Operating System
UEFI được thiết kế để dễ mở rộng hơn, có cấu trúc rõ hơn và hỗ trợ các hệ thống hiện đại tốt hơn.
4. Khác nhau về kiến trúc
Legacy BIOS thường có kiến trúc đơn giản hơn và phụ thuộc nhiều vào cơ chế cũ.
UEFI có kiến trúc chia phase rõ ràng:
| Phase | Vai trò |
|---|---|
| SEC | Khởi tạo cực sớm |
| PEI | Khởi tạo memory và platform cơ bản |
| DXE | Load driver và tạo service |
| BDS | Chọn boot device |
Điểm khác biệt lớn là UEFI giống một môi trường firmware có service và driver, không chỉ là đoạn code khởi tạo rồi nhảy sang bootloader.
5. Khác nhau về boot
Legacy BIOS thường boot bằng cách đọc boot sector từ thiết bị boot.
UEFI thường boot bằng cách chạy file bootloader dạng EFI application, ví dụ:
\EFI\BOOT\BOOTX64.EFI
hoặc bootloader được đăng ký trong boot option.
Điều này giúp UEFI boot linh hoạt hơn và dễ quản lý nhiều hệ điều hành hơn.
6. Khác nhau về khả năng mở rộng
UEFI có khái niệm:
- Protocol.
- Handle.
- Driver.
- Boot Services.
- Runtime Services.
- EFI application.
Nhờ vậy, firmware có thể tổ chức thành nhiều module rõ ràng.
Ví dụ, một driver có thể publish protocol để driver khác sử dụng:
gBS->InstallProtocolInterface(
&Handle,
&gMyProtocolGuid,
EFI_NATIVE_INTERFACE,
&MyProtocol
);
Driver khác có thể tìm protocol đó bằng:
gBS->LocateProtocol(
&gMyProtocolGuid,
NULL,
(VOID **)&MyProtocol
);
Đây là một trong những điểm khiến UEFI giống một hệ thống firmware có kiến trúc dịch vụ.
7. Bảng so sánh nhanh
| Tiêu chí | Legacy BIOS | UEFI |
|---|---|---|
| Kiến trúc | Cũ, đơn giản hơn | Chia phase, có driver model |
| Boot | Boot sector / MBR | EFI application / Boot Manager |
| Mở rộng | Hạn chế hơn | Protocol, driver, service |
| Disk support | Gắn nhiều với MBR | Hỗ trợ GPT tốt hơn |
| Giao diện | Thường đơn giản | Có thể hỗ trợ UI hiện đại hơn |
| Source structure | Khó hệ thống hóa hơn | Module hóa rõ hơn |
8. Lỗi hiểu nhầm thường gặp
Hiểu nhầm 1: UEFI chỉ là BIOS giao diện đẹp hơn
Không đúng.
Giao diện chỉ là phần bên ngoài. Khác biệt chính nằm ở kiến trúc firmware, boot flow, driver model và service.
Hiểu nhầm 2: BIOS và UEFI hoàn toàn không liên quan
Cũng không hẳn.
Trong thực tế, nhiều người vẫn dùng từ “BIOS” để chỉ firmware setup hoặc firmware hệ thống, dù bên trong là UEFI.
Hiểu nhầm 3: Học UEFI chỉ cần học boot flow
Boot flow là bước đầu, nhưng muốn đọc source UEFI cần học thêm:
- Protocol.
- Handle.
- GUID.
- Driver model.
- Boot Services.
- Runtime Services.
- HOB.
- PCD.
- INF/DEC/DSC.
9. Cách nhớ ngắn gọn
BIOS:
Firmware truyền thống, boot theo cơ chế cũ, ít module hóa hơn.
UEFI:
Kiến trúc firmware hiện đại, chia phase rõ ràng, có driver/service/protocol.
10. Bài liên quan nên đọc tiếp
Sau khi hiểu sự khác nhau giữa BIOS và UEFI, bạn nên đọc tiếp:
11. Kết luận
BIOS và UEFI khác nhau không chỉ ở việc cái nào cũ hơn hay mới hơn.
Điểm quan trọng hơn là UEFI cung cấp một kiến trúc firmware có tổ chức hơn, dễ mở rộng hơn và phù hợp hơn với hệ thống hiện đại.
Nếu muốn học BIOS/UEFI nghiêm túc, nên bắt đầu từ:
- Boot flow.
- SEC/PEI/DXE/BDS.
- Protocol và handle.
- Driver model.
- Cách đọc source code firmware.
Thấy nội dung này hữu ích?
Lưu lại hoặc chia sẻ cho người cũng đang học firmware, BIOS/UEFI và embedded systems.
Nội dung liên quan
Một số bài viết, ghi chú hoặc project có liên quan đến nội dung bạn vừa đọc.
SEC, PEI, DXE, BDS là gì trong UEFI?
Giải thích bốn phase quan trọng trong UEFI boot flow gồm SEC, PEI, DXE và BDS theo cách dễ hiểu cho người mới học firmware.
BIOS là gì? Khác gì với firmware thông thường?
Giải thích BIOS là gì, BIOS khác gì với firmware thông thường, vai trò của BIOS trong quá trình khởi động máy tính và vì sao embedded engineer nên hiểu BIOS/UEFI.
UEFI Boot Flow tổng quan cho người mới
Giải thích luồng khởi động UEFI từ SEC, PEI, DXE đến BDS theo cách dễ hiểu cho người mới học firmware.
Đọc thêm về BIOS/UEFI
Khám phá các bài viết về BIOS/UEFI, embedded firmware, debugging và system-level thinking.