Mbr kontrolünü bootloader'a nasıl aktarır?


1

Bildiğim şey şu:

Başlatıldığında, BIOS aşağıdaki sıralardan geçer:

1. Açılışta otomatik sınama (POST) 2.
Video kartını (yonga) BIOS'unu ayarlayın ve video donanımını başlatmak için kodunu yürütün.
3.Diğer aygıt BIOS'larını ayarlayın ve başlangıç ​​işlevlerini
çağırın 4. BIOS başlangıç ​​ekranını görüntüleyin
5.Kısa bir bellek testi yapın (sistemde ne kadar bellek olduğunu belirleyin)
6. Bellek ve sürücü parametrelerini
ayarlayın Aygıtları çal (geleneksel PCI veri yolu aygıtları)
8. Kaynakları ata (DMA kanalları ve IRQ'lar)
9. Önyükleme aygıtını tanımlayın

BIOS önyükleme aygıtını tanımladığında (genellikle önyüklenebilir disk olarak etiketlenmiş birkaç diskten biri), bu aygıttan 0 bloğunu 0x7c00 bellek konumuna okur ve oraya atlar.

Ancak bundan sonra ne olacak yani BIOS bu aşamada bootloader'a kontrolü nasıl veriyor?


1
Sadece bulduğu kodu çalıştırır ...
DavidPostill

Yanıtlar:


1

Yukarıdaki yazıda belirtildiği gibi, BIOS, 0x7C00 için bir atlama komutu uygulayarak önyükleyiciye kontrol sağlar.

Önyüklenebilir olmayan bir aygıt ilk iki baytında (ve bayt 511, 512'deki 55aa) INT 18 komutuna (0xCD 0x18) sahip olabilir;


0

0x7C00'den bahsettiğinizden beri, MBR önyüklemesine odaklanacağım (GPT farklı bir anlaşma).

Söylediğiniz gibi, BIOS bir cihazın önyüklenebilir olduğunu belirlediğinde (yani, birinci sektörün son iki baytı olarak 0x55AA değerine sahipse), o ilk sektör diskten içine okur ve 0x7C00'da başlayan belleğe yükler. Atlama komutunu verdikten sonra, CPU ne olursa olsun kodu çalıştırmaya başlar.

Daha sonra ne yükleneceğini ve uygulanacağını bulmak için bootloader'a kalmıştır. Yükleme ve bir sonraki aşamaya atlayan kod, ilk sektörde kalan 510 bayta uymak zorunda, çünkü daha az aslında, sabit disklerde de bölme tablası var.

Daha fazla okuma: Önyükleme Sırası , Kendi Önyükleyicinizi Yuvarlama

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.