
BIOS (tên đầy đủ là Basic Input/Output System hay Hệ thống nhập xuất cơ bản) là chương trình khởi chạy đầu tiên khi bật máy tính, có nhiệm vụ thiết lập môi trường để tải hệ điều hành từ các thiết bị lưu trữ như ổ cứng, USB hay đĩa quang. Quá trình này thường được gọi là boot máy.
Được tích hợp sẵn trên bo mạch chủ, khái niệm BIOS bắt nguồn từ hệ điều hành CP/M, dùng để chỉ phần mã lệnh đặc thù cho phần cứng. Trong các hệ thống DOS, các tệp "IBMBIO.COM" hay "IO.SYS" đóng vai trò tương tự, kết hợp với BIOS trong ROM tạo thành cơ chế hoạt động giống với CP/M.
BIOS được coi là thành phần bắt buộc của mọi máy tính. Dù có thể hoạt động không cần màn hình, bàn phím hay ổ lưu trữ, nhưng hệ thống nào cũng phải có BIOS mới khởi động được.
Nguyên lý hoạt động của BIOS
BIOS thường được lưu trữ (ở dạng nén) trong các chip nhớ như PROM, EPROM hoặc bộ nhớ flash trên bo mạch chủ. Khi người dùng bật nguồn máy tính, BIOS sẽ tự động khởi chạy và thực hiện các bài kiểm tra phần cứng (POST) để xác nhận hoạt động của RAM, ổ đĩa, card đồ họa và các thành phần khác.

Sau khi khởi động, BIOS thường tự giải nén vào RAM để thực thi. Các phiên bản BIOS hiện đại đều hỗ trợ cấu hình thông qua chương trình CMOS Setup - nơi lưu trữ các tùy chỉnh cá nhân hóa như ngày giờ hệ thống, thông số ổ cứng, thứ tự ưu tiên khởi động, hay thậm chí là mật khẩu bảo vệ. Dữ liệu CMOS được BIOS quản lý và truy xuất.
Trong kiến trúc 80x86, mã nguồn BIOS của các dòng PC/AT đời đầu đã được IBM công bố trong tài liệu kỹ thuật tham khảo.
Hầu hết BIOS hiện đại đều cho phép người dùng tùy chỉnh thứ tự ưu tiên khởi động giữa các thiết bị như ổ cứng, USB, ổ quang hay đĩa mềm. Tính năng này cực kỳ hữu ích khi cần cài đặt hệ điều hành mới hoặc khởi động từ các thiết bị ngoại vi, đồng thời giúp kiểm soát trình tự tìm kiếm thiết bị khởi động.
Một số phiên bản BIOS cao cấp, đặc biệt trên các hệ thống 64-bit như máy chủ Itanium của HP, còn hỗ trợ lựa chọn trực tiếp hệ điều hành cần khởi động. Tuy nhiên, chức năng này thường được xử lý bởi trình quản lý khởi động (boot loader) ở giai đoạn sau.
BIOS và chế độ thực (realmode)
Trên các hệ thống sử dụng kiến trúc 8086, CPU mặc định khởi động ở chế độ thực và tự động trỏ đến vị trí 0FFFF0h - địa chỉ 16 byte đầu tiên trong vùng nhớ 1MB. Tại đây, một lệnh nhảy (jump) sẽ chuyển quyền điều khiển sang đoạn mã BIOS để bắt đầu quá trình khởi động.
Vai trò cốt lõi của BIOS

BIOS thường được ví như trái tim của hệ thống vì nó được nhúng sâu vào trong phần cứng máy tính.
Trước thập niên 90, BIOS được lưu trữ vĩnh viễn trong ROM và chỉ có thể thay đổi bằng thiết bị chuyên dụng. Ngày nay, để đáp ứng nhu cầu cập nhật thường xuyên, BIOS được lưu trữ trong EEPROM hoặc bộ nhớ flash, cho phép nâng cấp dễ dàng qua USB hoặc đĩa CD. Tuy nhiên, nếu quá trình cập nhật bị gián đoạn có thể khiến máy không hoạt động được. Để phòng ngừa, nhiều bo mạch chủ hiện đại trang bị công nghệ Dual BIOS cùng cơ chế tự kiểm tra toàn vẹn dữ liệu trước khi khởi chạy. Các hãng sản xuất thường xuyên phát hành bản cập nhật BIOS để khắc phục lỗi và nâng cao hiệu năng.
Firmware BIOS
Mỗi máy tính có thể chứa nhiều chip BIOS khác nhau. BIOS chính trên bo mạch chủ thường chỉ xử lý các thành phần cơ bản như bàn phím, ổ đĩa, cổng USB. Các thiết bị mở rộng như card đồ họa, card mạng hay bộ điều khiển RAID thường có BIOS riêng để bổ sung hoặc thay thế chức năng của BIOS hệ thống.
Đối với các thiết bị tích hợp sẵn hoặc cắm thêm vào bo mạch chủ, mã lệnh của ROM mở rộng thường được lưu trữ như một module độc lập trong chip BIOS chính. Phần mã này có thể được nâng cấp riêng biệt thông qua cơ chế 'option ROM'.
Các bo mạch mở rộng chỉ yêu cầu BIOS riêng khi:
- Cần hoạt động trước khi hệ điều hành khởi động (ví dụ như thiết lập RAID trên bộ điều khiển trước khi cài đặt hệ điều hành)
- Có chức năng phức tạp hoặc đặc thù không thể xử lý thông qua BIOS hệ thống
Các hệ điều hành cũ như DOS thường sử dụng ngắt BIOS (đặc biệt là INT 13h) để giao tiếp với phần cứng. Tuy nhiên, các hệ điều hành hiện đại chủ yếu sử dụng trình điều khiển riêng, chỉ gọi đến BIOS mở rộng trong một số trường hợp đặc biệt như khởi tạo thiết bị.
Trong quá trình khởi động, BIOS sẽ quét vùng nhớ từ 0xC0000 đến 0xF0000 để tìm ROM mở rộng, nhận diện thông qua signature 0x55 và 0xAA. Byte tiếp theo sẽ xác định kích thước ROM tính theo khối 512 byte.
Sau khi xác định được ROM mở rộng, BIOS sẽ chuyển quyền điều khiển đến địa chỉ được chỉ định ngay sau byte kích thước. Tại đây, mã lệnh từ ROM mở rộng sẽ thực thi các tác vụ như cung cấp giao diện cấu hình, đăng ký các ngắt hệ thống hoặc hiển thị thông tin kiểm tra phần cứng.
Người dùng hệ thống UNIX và Windows/DOS có thể truy cập các công cụ đọc firmware BIOS tại trang web http://www.linuks.mine.nu/ree/.
Đặc tả Khởi động BIOS (BBS)
Khi ROM mở rộng cần thay đổi phương thức khởi động (như khởi động từ mạng hoặc thiết bị SCSI không được BIOS chính hỗ trợ), nó có thể sử dụng API từ Đặc tả Khởi động BIOS (BBS) để đăng ký khả năng này. Trên card mạng, tính năng này thường được gọi là Wake-on-LAN, cho phép khởi động máy tính từ xa thông qua tín hiệu mạng.
Sau khi các ROM mở rộng đăng ký với BBS API, người dùng có thể lựa chọn phương thức khởi động thông qua giao diện BIOS. Đây cũng là lý do BIOS sẽ không hiển thị giao diện người dùng cho đến khi tất cả ROM mở rộng hoàn tất quá trình khởi tạo và đăng ký với hệ thống.
Mở rộng và thu hẹp phạm vi hoạt động
Các hệ điều hành cổ điển như DOS phụ thuộc hoàn toàn vào BIOS để xử lý các thao tác nhập xuất. Tuy nhiên, với sự phát triển của Windows và Linux, vai trò của BIOS chủ yếu giới hạn ở việc thiết lập phần cứng ban đầu và khởi tạo hệ thống, sau đó hệ điều hành sẽ tự quản lý các hoạt động tiếp theo.
Những năm gần đây, các chuẩn như ACPI đã mở rộng chức năng BIOS sang lĩnh vực quản lý năng lượng, hỗ trợ thiết bị hotplug, kiểm soát nhiệt độ,... Sự mở rộng này đòi hỏi BIOS phải phát triển phức tạp hơn để đáp ứng yêu cầu từ các hệ điều hành hiện đại.
Nhược điểm của BIOS
Sau hơn 6 thập kỷ thống trị, BIOS ngày càng bộc lộ nhiều hạn chế. Điển hình là giới hạn 1MB bộ nhớ thực thi khiến BIOS gặp khó khăn khi xử lý các thiết bị hiện đại qua cổng USB, eSATA hay Thunderbolt. Đặc biệt, BIOS không thể hoàn tất quá trình khởi tạo thiết bị trong vòng 30 giây sau khi bật nguồn để sẵn sàng nạp hệ điều hành.
Một hạn chế đáng kể của BIOS là không hỗ trợ khởi động từ ổ cứng có dung lượng vượt quá 2,19TB. Nguyên nhân bắt nguồn từ giới hạn của bảng MBR (Master Boot Record) trong sector khởi động, chỉ cho phép địa chỉ hóa tối đa 2 sector 512-byte. Điều này tạo ra rào cản kỹ thuật khi sử dụng các ổ cứng dung lượng lớn hiện nay.
Thị trường cung cấp BIOS
Phần lớn nhà sản xuất bo mạch chủ đều mua license sử dụng nhân BIOS từ các công ty chuyên phát triển phần mềm hệ thống. Sau đó, họ tùy biến lại để tương thích với phần cứng riêng. Đây cũng là lý do người dùng cần tải bản cập nhật BIOS trực tiếp từ website nhà sản xuất mainboard.
Danh sách nhà cung cấp BIOS chính
- American Megatrends Inc.
- Phoenix Technologies
- Award Software International
- MicroID Research (MRBIOS)
- Insyde Software (Insyde)
- General Software (General Software)
Ghi chú
- Extensible Firmware Interface (EFI)
- LinuxBIOS là dự án mã nguồn mở được phát triển để thay thế BIOS truyền thống.
- Địa chỉ cơ sở đầu vào/đầu ra
- Advanced Configuration and Power Interface (ACPI)
- mã máy
- vi mạch
- Thiết bị khởi động BIOS
- Lệnh ngắt BIOS
- Giao diện
- Kiểm tra hệ thống khi khởi động (POST)
Tài liệu tham khảo
- Trang chủ UEFI
- Trang chủ OpenBIOS
- Trang chủ LinuxBIOS
- Adrian's Rojak Pot's The Definitive BIOS Optimization Guide
- Hướng dẫn nâng cấp BIOS bo mạch chủ
- Hướng dẫn nạp BIOS nóng
- BIOS-Kompendium Homepage == BIOS-Info, BIOS-Forum, Selling/programming: (E)EPROMs & FLASH-EEPROMs ("BIOS Chips") Lưu trữ ngày 5 tháng 6 năm 2006 tại Wayback Machine
- Biosflash homepage - BIOS Chips Sale + Programming
- BIOS Agent
- The BIOS Boot Specification Lưu trữ ngày 2 tháng 1 năm 2010 tại Wayback Machine
- BNOBTC - BIOS Tool collection - (All?) BIOS Tools in one collection Lưu trữ ngày 13 tháng 8 năm 2004 tại Wayback Machine
- Hướng dẫn nạp BIOS card màn hình
- Cách nâng cấp BIOS
- Trang nhận dạng BIOS Award
- Trang BIOS của Wim
- Cách vượt qua mật khẩu BIOS Lưu trữ ngày 24 tháng 2 năm 2006 tại Wayback Machine
- Winn L. Rosch. "Hardware Bible". SAMS. ISBN 1566861276
