BIOS có một số loại 'trình điều khiển' chung chung không


22

Làm thế nào để BIOS kiểm soát các thiết bị I / O mà không có bất kỳ hình thức trình điều khiển nào?

Ví dụ: hình ảnh được hiển thị như thế nào trong khi máy tính khởi động nếu BIOS không có bất kỳ trình điều khiển nào cho card đồ họa.

Có một số loại trình điều khiển chung là tiêu chuẩn trên tất cả các BIOS và phần cứng cho phép BIOS thực hiện các chức năng cơ bản bất kể phần cứng nào được cài đặt.

Bất kỳ trợ giúp sẽ được đánh giá cao.

Cảm ơn.


Bạn có một vấn đề cụ thể mà bạn đang cố gắng giải quyết? Nếu bạn hỏi liệu BIOS có sử dụng ổ đĩa chung không thì
Ramhound

Tôi nghĩ rằng có một định dạng đầu ra tiêu chuẩn tối thiểu (vesa) và card màn hình có bios riêng. Bên cạnh đó, nó không giống như phần mềm bios / uefi của bạn được hiển thị, thời gian thực ở chế độ 3d.
Journeyman Geek

5
@Ramhound Đây không phải là vấn đề Tôi đang cố gắng giải quyết nó chỉ là một câu hỏi chung. Bất cứ loại card đồ họa nào bạn đặt trong hệ thống của mình, bạn vẫn có thể thấy sự phân tán trong khi khởi động, vậy có giao diện nổi bật nào được lập trình vào BIOS không?
RJSmith92

4
Do you have a specific problem your trying to solve? Vâng, họ đang cố gắng giải quyết vấn đề tìm câu trả lời cho câu hỏi họ hỏi. _¬
Synetech

Câu trả lời:


13

BIOS có một số loại 'trình điều khiển' chung chung không

Làm thế nào để BIOS kiểm soát các thiết bị I / O mà không có bất kỳ hình thức trình điều khiển nào?

Tiêu chuẩn. Tất cả các thành phần thực hiện một giao diện cơ bản và BIOS được lập trình để sử dụng giao diện đó. Tất nhiên vì đó là giao diện cơ bản (đó là chữ 'B' trong BIOS), nên nó không thể tận dụng hết khả năng của phần cứng; phần còn lại để phần mềm thực hiện thông qua trình điều khiển có thể truy cập trực tiếp vào phần cứng.

Ban đầu, các nhà sản xuất BIOS đã tạo ra một bộ API mà các thiết bị dự kiến ​​sẽ sử dụng nếu muốn tương thích. Họ đã làm điều này thông qua các chương trình gián đoạn , đó là một cách để một thiết bị hoạt động, làm gián đoạn chương trình để cho nó biết rằng có điều gì đó đã xảy ra và ngược lại.

Ví dụ: hình ảnh được hiển thị như thế nào trong khi máy tính khởi động nếu BIOS không có bất kỳ trình điều khiển nào cho card đồ họa.

Trong trường hợp hiển thị trước khi khởi động, phần sụn của bộ điều hợp video thực hiện VESA (Hiệp hội tiêu chuẩn điện tử video), một tiêu chuẩn được tạo ra để đơn giản hóa việc truy cập vào phần cứng hiển thị. BIOS biết cách truy cập phần cứng video bằng các chức năng tiêu chuẩn được cung cấp. Nó có phần giống với cách DirectX được triển khai như một API cấp cao hơn cho phần cứng để các lập trình viên không phải tính đến mọi cấu hình phần cứng.

Có một số loại trình điều khiển chung được đặt trên tất cả các BIOS và phần cứng cho phép BIOS thực hiện các chức năng cơ bản cho dù phần cứng nào được cài đặt.

Sắp xếp Đó không phải là trình điều khiển, mà là API tiêu chuẩn ; một tập hợp các chức năng lập trình có thể được sử dụng để làm những việc cơ bản như khởi tạo thiết bị hoặc dữ liệu đầu vào và đầu ra.

Nếu các nhà sản xuất muốn bán sản phẩm của họ, họ sẽ cần đảm bảo rằng ít nhất họ thực hiện các API tiêu chuẩn để chúng tương thích. Bằng cách đó, hệ thống có thể phát hiện phần cứng và trong trường hợp thiết bị khởi động quan trọng, họ có thể truy cập chúng ở mức cơ bản cho đến khi trình điều khiển phần mềm biết cách truy cập đầy đủ có thể được tải.


Cảm ơn, câu trả lời tuyệt vời. Vì vậy, các cuộc gọi ngắt BIOS (Hệ thống DOS nào được sử dụng) vẫn được sử dụng hết cho đến khi HĐH được tải?
RJSmith92

1
Có, BIOS cung cấp một loạt các ngắt khác nhau có thể được sử dụng (mặc dù không phải tất cả các BIOS sẽ cung cấp tất cả các chức năng). Các hệ thống DOS đã sử dụng những thứ đó, nhưng DOS cũng tạo ra INT 21 và 2F để cung cấp các ngắt phần mềm cấp cao hơn để làm việc (tôi rất nhớ lập trình trình biên dịch phần cứng / DOS). Thực tế là, sẽ luôn cần có một số chức năng cơ bản, cấp thấp cần có để cung cấp khả năng tương thích, ngay cả với EFI và bất cứ điều gì khác đến trong tương lai. Nó có thể có các hình thức khác nhau, nhưng không có một số loại ngôn ngữ chung, sẽ không có cách nào để hệ thống sử dụng các thiết bị phần cứng.
Synetech

Theo hiểu biết của tôi thì các cuộc gọi ngắt vẫn được sử dụng bởi các dịch vụ cấp kernel và kernel. Điều đó có đúng không?
BlueRaja - Daniel Pflughoeft

@BlueRaja, có thể trong quá trình khởi động (họ cần một số cách truy cập phần cứng), nhưng sau khi họ chạy các thói quen phát hiện, họ sử dụng trình điều khiển thích hợp (chỉ là chương trình cấp thấp) để truy cập trực tiếp vào phần cứng. Ngay cả kernel cũng cần truy cập trực tiếp để tận dụng tối đa phần cứng, ví dụ như tận dụng các chức năng CPU nâng cao hoặc tối ưu hóa việc sử dụng bộ điều khiển bộ nhớ và chipset.
Synetech

22

BIOS trong PC có nghĩa là hoàn thiện một chức năng tương tự như BIOS trong hệ thống CP / M 8 bit, phổ biến trước khi PC tiếp quản vào giữa những năm 80. BIOS được dự định chứa một bộ tải khởi động tối thiểu và các thói quen cấp thấp phụ thuộc vào phần cứng để thực hiện nhập và xuất cho một vài thiết bị (màn hình, đĩa, băng, cổng COM). Kiến thức để làm điều này đã được tích hợp vào ROM - không cần trình điều khiển, và tất nhiên, không có phần cứng bổ sung nào được ROM này hỗ trợ. (Những thứ như quản lý năng lượng và ACPI xuất hiện muộn hơn nhiều, vào những năm 90, sau khi PC đã tự thiết lập như một nền tảng phổ biến.)

. của ROM BIOS.)

Tuy nhiên ... BIOS PC, không giống như CP / M, đã hỗ trợ khái niệm "ROM tùy chọn" có thể được bao gồm trong thẻ mở rộng. Vì vậy, có ít nhất một cơ chế tối thiểu để mở rộng BIOS. Thẻ video bắt đầu bằng CGA (MDA, tiền thân của CGA, cũng có thể đã làm điều đó) sẽ có ROM tùy chọn mở rộng hoặc thêm các chức năng I / O cho giao diện BIOS. (Đây là lý do tại sao bạn thấy một thông báo NVidia trước khi BIOS khởi động.) Bộ điều khiển cứng và thẻ SCSI cũng vậy. Tất cả những điều này vẫn làm. Nhiều card mạng cũ có ổ cắm cho ROM khởi động.

Cũng nên nhớ rằng các nhà sản xuất bản sao PC phát sinh từ những năm 80 đã nhanh chóng quyết định không chỉ cung cấp giao diện BIOS tương thích, mà cuối cùng phải sao chép toàn bộ nền tảng PC, bao gồm tất cả các phần cứng cấp thấp như chip hẹn giờ , bộ điều khiển ngắt, v.v. (Điều này tương đối dễ dàng vì rất ít thuộc sở hữu của IBM.) Điều này là do BIOS chậm làm việc và các lập trình viên truy cập trực tiếp vào phần cứng, đặc biệt là cho các trò chơi.

Do đó, giữa ROM tùy chọn và sự đồng thuận của phần cứng tiêu chuẩn hình thành nền tảng PC, cũng như thực tế là nó được giữ tương thích ngược trong suốt quá trình phát triển của PC, một cái gì đó muốn sử dụng màn hình mà không cần trình điều khiển có thể:

  • sử dụng các giao diện BIOS tiêu chuẩn, có thể bị "nối" bởi ROM tùy chọn trong phần cứng video
  • hoặc đưa ra các giả định về phần cứng nào trong hệ thống và truy cập trực tiếp vào phần cứng cơ bản

Tất cả phần cứng màn hình PC vẫn hoạt động ở chế độ "tương thích VGA" khi khởi động. Bộ điều hợp VGA gốc của IBM có các chế độ tương thích với các thẻ EGA, CGA và MDA trước đó. Tất cả điều này có nghĩa là một cái gì đó chạy từ BIOS hoặc bên ngoài HĐH có thể cho rằng nó vẫn có thể đọc và ghi cùng một bộ nhớ được kết nối với màn hình như năm 1985, thông qua quy ước.


Cảm ơn câu trả lời. Vì vậy, BIOS trên thẻ mở rộng phải tuân theo một số loại tiêu chuẩn để bất kỳ bios bo mạch chủ nào cũng có thể sử dụng nó?
RJSmith92

1
Không chắc đó có phải là một tiêu chuẩn chứ không phải là một quy ước lâu đời, nhưng một cái gì đó như thế. Tôi đoán BIOS Boot Đặc điểm kỹ thuật (BBS) là một cái gì đó của một tiêu chuẩn chính thức ở đây. vi.wikipedia.org/wiki/Option_ROM
LawrenceC

Vâng, đó là loại điều tôi đang tìm kiếm. Cảm ơn một lần nữa
RJSmith92
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.