2012-06-17 39 views
8

Tại sao cấu trúc IBM PC sử dụng số ma thuật 55 AA trong hai byte cuối cùng của bộ khởi động cho chữ ký khởi động ?Tại sao 55 AA được sử dụng làm chữ ký khởi động trên máy tính IBM?

Tôi nghi ngờ rằng có điều gì đó cần làm với các mẫu bit là: 01010101 10101010, nhưng không biết gì.

đoán của tôi là rằng:

  1. BIOS đang thực hiện một số phép toán và/hoặc/xor hoạt động bằng các byte để so sánh chúng với nhau và nếu nó, ví dụ, kết quả trong 0, nó có thể dễ dàng phát hiện và nhảy đâu đó.
  2. có thể là một số biện pháp bảo vệ tính chẵn lẻ/toàn vẹn nếu một số bit bị hỏng, nó có thể được phát hiện hoặc thứ gì đó và vẫn được coi là chữ ký hợp lệ để khởi động hệ thống ngay cả khi bit cụ thể trên đĩa bị hỏng hoặc một cái gì đó.

Có thể ai đó trong bạn có thể giúp tôi trả lời câu hỏi dai dẳng này?

Tôi nhớ tôi đã từng đọc ở đâu đó về các mẫu bit này nhưng không nhớ ở đâu. Và nó di chuyển trong một số sách, bởi vì tôi không thể tìm thấy bất cứ điều gì về nó trên mạng.

+0

Tại sao điều này là ngoại tuyến? – Calmarius

Trả lời

5

Tôi nghĩ rằng nó đã được chọn tùy ý bởi vì 10101010 01010101 có vẻ giống như một mẫu bit đẹp. Apple] [+ reset vector đã được xor'ed với $ A5 đến (10100101) để tạo ra một giá trị kiểm tra. Một số máy sử dụng cái gì đó "cụ thể" hơn để xác thực khởi động; cho các máy có nguồn gốc từ PET (ví dụ: VIC-20 và Commodore 64 của Commodore Business Machines), một hình ảnh hộp mực có thể khởi động được đặt tại ví dụ: địa chỉ $ 8000 sẽ có chuỗi PETASCII "CBM80" được lưu trữ tại địa chỉ $ 8004 (một giỏ hàng bắt đầu từ $ A000 sẽ có chuỗi "CBMA0" ở $ A004, vv), nhưng tôi đoán IBM không nghĩ đĩa cho bất kỳ máy nào khác được chèn vào và có $ 55AA trong hai byte cuối cùng của khu vực đầu tiên.

+2

Vâng, tôi biết nó khá tùy tiện trên các kiến ​​trúc khác. Nhưng trên máy tính IBM tôi khá chắc chắn rằng tôi đã đọc ở đâu đó rằng nó có cái gì đó để làm với một số kiểm tra tính toàn vẹn dữ liệu và bảo vệ chống lại một số thất bại đĩa. Nhưng không thể tìm thấy chi tiết chính xác ở bất cứ đâu. – SasQ