Từ lâu, máy tính không có ROM bootstrap. Một người có giao diện trực tiếp để sửa đổi RAM và có thể tạm dừng CPU, thay đổi RAM và sau đó khởi động lại CPU. Vì vậy, khi bạn khởi động lại hệ thống, bạn phải chắc chắn rằng CPU đã bị tạm dừng, nhập mã bootstrap của bạn để tải bộ tải khởi động giai đoạn hai (2bl) ra khỏi băng giấy hoặc không chú ý, sau đó "hủy" CPU của bạn.
ROM tiết kiệm trong ngày ở đây, rõ ràng. Khi bạn bật nguồn cho hệ thống dựa trên CPU x86, nó bắt đầu thực thi tại địa chỉ FFFF: FFF0. Đó là một tính năng cứng của CPU x86. ROM phải nằm ở địa chỉ đó và thực sự là phần trên của BIOS (thường bắt đầu từ E000: 0000).
Thuật ngữ BIOS là một sự tiếp quản từ hệ điều hành CP / M cũ. Cấu trúc của CP / M là BIOS ROM ở lớp thấp nhất, BDOS (Hệ điều hành đĩa cơ bản) ở giữa và ĐCSTQ (Bộ xử lý lệnh điều khiển) trước mặt người dùng. BIOS có các thói quen để thực hiện các chức năng cấp thấp như đọc / ghi một lĩnh vực đĩa cụ thể, đọc một phím từ bàn phím, viết một ký tự lên màn hình, v.v. ĐCSTQ sẽ là trình vỏ lệnh sử dụng các chức năng BDOS và BIOS. Ý tưởng là BIOS sẽ chứa giao diện cụ thể về phần cứng và BDOS và CCP có thể giống nhau trên bất kỳ hệ thống CP / M nào.
BIOS cũng sẽ giữ mã ban đầu được bộ xử lý thực thi, khởi tạo phần cứng cần thiết, hiển thị màn hình giật gân, tải 2bl ra khỏi khu vực đầu tiên khỏi ổ đĩa đầu tiên và chạy nó.
MS-DOS 1.0, gần như là một triển khai CP / M x86, với các tính năng giống như Unix được thêm vào khi bắt đầu từ phiên bản 2.0, được cấu trúc theo cách tương tự. BIOS PC của IBM tại thời điểm đó cũng bao gồm các cải tiến như chuyển đổi chế độ video, chức năng đồ họa và hỗ trợ ổ cứng trong AT BIOS gốc.
Tuy nhiên, hầu hết các chương trình DOS không sử dụng các chức năng BIOS khi chúng khởi động; họ trực tiếp truy cập phần cứng vì lý do hiệu suất. Điều này đặc biệt quan trọng sau khi CPU 32 bit trở nên phổ biến; BIOS chỉ hoạt động từ chế độ 16 bit cũ hơn, do đó, gọi nó từ chế độ 32 bit sẽ bị phạt hiệu năng cao hơn.
Khoảng năm 1990, kiến trúc PC đã bắt đầu được mở rộng và bắt đầu bao gồm những thứ mới như APM, PnP và PCI. Vì vậy, BIOS đã bắt đầu đảm nhận các chức năng bổ sung và ngày càng lớn hơn. PC cũng bắt đầu sử dụng chipset thay vì các thành phần riêng biệt. Khởi tạo chipset là điều cần phải xảy ra để có RAM và các thành phần khác như bus PCI có thể sử dụng được, do đó phải được xử lý bằng mã bootstrap của BIOS. Vì một số lý do, nhiều nhà cung cấp chipset không muốn ghi lại quá trình thiết lập của họ hoạt động như thế nào.
APM đã được xử lý bởi các chức năng BIOS; tức là để tắt nguồn hệ thống, hệ điều hành phải gọi chức năng APM. ACPI, người kế nhiệm của APM, là điều lớn lao mà BIOS làm được ngày hôm nay. BIOS ACPI chịu trách nhiệm tạo ra một loạt các bảng trong bộ nhớ mô tả nhiều thành phần phần cứng không cắm và phát. Hệ điều hành khởi động sử dụng điều này để xác định có bao nhiêu CPU, hệ thống có bao nhiêu RAM, hệ thống là máy tính để bàn hay máy tính xách tay, có bao nhiêu pin được cài đặt, v.v. BIOS ACPI cũng phải được gọi để tắt nguồn hệ thống, hoặc đặt nó vào chế độ ngủ, v.v. Tuy nhiên, không có lý do gì mà mã hệ điều hành không thể xử lý các cuộc gọi ACPI.
Hầu hết các bản cập nhật BIOS là để sửa lỗi ACPI, vì ACPI rất phức tạp và khó khăn, hoặc để giới thiệu vi mã nâng cao. Tất cả các CPU hiện đại đều cho phép cập nhật vi mã và nếu bản cập nhật vi mã mới được phát hành thì BIOS phải được cập nhật để cài đặt vi mã mới đó. Một chương trình bình thường có thể cập nhật vi mã của CPU.
SMI cũng được xử lý bởi BIOS. Tôi khá chắc chắn rằng hầu hết các phần cứng liên quan đến nhiệt và năng lượng trong PC kích hoạt SMI, có thói quen sau đó điều chỉnh tốc độ quạt / CPU và / hoặc những thứ khác. Những thứ khác có thể kích hoạt SMI; kiểm tra bài viết Wikipedia về Chế độ quản lý hệ thống. Nhưng cũng không có lý do gì mà mã này không thể được thay thế bằng mã hệ điều hành nếu các giao diện phần cứng được ghi lại.
Các hệ điều hành hiện đại hoàn toàn không sử dụng BIOS để truy cập phần cứng, ngoại trừ các sự kiện điện. Một số bộ tải khởi động sử dụng I / O ký tự BIOS để hiển thị văn bản và I / O của đĩa tải mã khởi động hệ điều hành.
Vì vậy, tôi hy vọng điều này sẽ làm sáng tỏ vai trò của BIOS và đối với hầu hết các phần bạn hoàn toàn đúng về cách thức hoạt động của nó.