Làm thế nào để mbr chuyển nó điều khiển cho bộ nạp khởi động


1

Những gì tôi biết là sau đây

Khi khởi động, BIOS sẽ trải qua trình tự sau:

1. Tự kiểm tra nguồn điện (POST)
2. Phát hiện BIOS của chip video và thực thi mã của nó để khởi tạo phần cứng video.
3. Phát hiện bất kỳ BIOS thiết bị nào khác và gọi các chức năng khởi tạo của chúng
4. Hiển thị màn hình khởi động BIOS
5. Thực hiện kiểm tra bộ nhớ ngắn (xác định dung lượng bộ nhớ trong hệ thống) 6. Cài đặt
bộ nhớ và thông số ổ đĩa
7.Xác định cắm & Thiết bị phát (thiết bị bus PCI truyền thống)
8.Đăng ký tài nguyên (kênh DMA & IRQ)
9.Xác định thiết bị khởi động

Khi BIOS xác định thiết bị khởi động (thường là một trong một số đĩa được gắn thẻ là đĩa có thể khởi động), nó sẽ đọc khối 0 từ thiết bị đó vào vị trí bộ nhớ 0x7c00 và nhảy vào đó.

Nhưng điều gì xảy ra sau đó, tức là BIOS cung cấp quyền điều khiển cho bộ nạp khởi động ở giai đoạn này như thế nào


1
Nó chỉ chạy mã mà nó tìm thấy ...
DavidPostill

Câu trả lời:


1

Như đã đề cập trong bài viết ở trên, BIOS chỉ đơn giản là kiểm soát bộ tải khởi động bằng cách thực hiện một lệnh nhảy tới 0x7C00.

Một thiết bị không có khả năng khởi động có thể có lệnh INT 18 (0xCD 0x18) trong hai byte đầu tiên của nó (và 55aa ở byte 511, 512), sau đó đơn giản sẽ khiến BIOS chuyển sang thiết bị tiếp theo theo thứ tự khởi động.


0

Vì bạn đã đề cập 0x7C00, tôi sẽ tập trung vào khởi động MBR (GPT là một thỏa thuận khác).

Như bạn đã nói, một khi BIOS xác định rằng một thiết bị có khả năng khởi động (tức là có 0x55AA là hai byte cuối cùng của sector đầu tiên), nó sẽ đọc sector đầu tiên từ đĩa vào và tải nó vào bộ nhớ bắt đầu từ 0x7C00. Khi nó đưa ra lệnh nhảy, CPU bắt đầu chạy bất kỳ mã nào ở đó.

Sau đó, đến bộ tải khởi động để tìm ra những gì sẽ tải và thực hiện tiếp theo. Mã thực hiện tải và nhảy sang giai đoạn tiếp theo phải phù hợp với 510 byte còn lại trong khu vực đầu tiên đó, thực tế, vì các ổ đĩa cứng cũng có bảng phân vùng trong đó.

Đọc thêm: Trình tự khởi động , Cán bộ tải khởi động của riêng bạn

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.