Có phần mềm nguồn mở nào để mô phỏng và hầu như lập trình BIOS máy tính không?


7

Tôi đang tìm kiếm một phần mềm nguồn mở như Virtual-box mà tôi có thể chạy trên Linux nhưng cung cấp khả năng lập trình BIOS (sử dụng chương trình BIOS cá nhân).

Tôi muốn hiểu (một cách thực tế) quá trình khởi động máy tính và có một thao tác sâu hơn về chế độ thực x86. Tôi cũng muốn hiểu các cơ chế khác nhau để giao tiếp với các thiết bị ngoại vi, tức là điều khiển các thiết bị như bàn phím và ổ cứng, và hiểu các chế độ I / O và ngắt.


2
Lập trình BIOS của riêng bạn sẽ không cho phép thao tác sâu hơn chế độ thực, cũng sẽ không đặc biệt hữu ích trong việc tìm hiểu các cơ chế giao tiếp với các thiết bị ngoại vi. Nó thậm chí sẽ không cung cấp sự hiểu biết đầy đủ về cách máy tính thực khởi động trừ khi bạn thực sự viết BIOS cho máy tính thực. Có rất nhiều thứ mà BIOS không cần phải làm trên PC ảo mà BIOS cần phải làm trên PC thật.
Ross Ridge

Mã nguồn của SeaBIOS (di sản) và edk2 (UEFI) có sẵn. Chúc vui vẻ!
Michael Hampton

Bạn có thể quan tâm đến Khuyến nghị phần mềm ; nếu câu hỏi này không có chủ đề ở đây thì có lẽ nó sẽ được di chuyển đến đó.
wizzwizz4

Câu trả lời:


15

Có một số trình giả lập máy ảo có thể mô phỏng bộ xử lý x86 và các thiết bị ngoại vi. Mỗi cái đi kèm với một BIOS, một vài trong số chúng có BIOS nguồn mở. Bạn nên xem QEMU , hoạt động hoàn toàn độc lập với máy chủ (nó có thể chạy trên bất kỳ máy nào, mặc dù nó có cơ chế để chạy nhanh hơn nếu máy được mô phỏng có cùng kiến ​​trúc với máy chủ). QEMU đi kèm với PC-BIOS .

Nếu bạn muốn làm việc ở chế độ thực x86, bạn cũng có thể xem Dosbox .

Coreboot cũng nên được bạn quan tâm. Đây là một BIOS nguồn mở cho x86.

Nhìn vào BIOS sẽ cho bạn một số hiểu biết về cách khởi động bộ xử lý x86, bao gồm tất cả các quirks được thừa hưởng từ hơn 30 năm lịch sử với sự phát triển đáng kể về khả năng phần cứng. Đó không phải là điều tốt nhất để xem xét nếu điều bạn muốn hiểu là làm thế nào để giao tiếp với các thiết bị ngoại vi. Để làm điều đó, hãy xem các trình điều khiển thiết bị trong nhân hệ điều hành - hoặc Linux, hoặc các trình điều khiển đơn giản hơn như MINIX 3 .

Tôi cũng khuyên bạn nên xem qua các kiến ​​trúc CPU khác như ARM và MIPS, để bạn có ý tưởng về những gì phổ biến trong các tương tác hệ điều hành / phần cứng và những gì cụ thể đối với kiến ​​trúc PC.

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.