Modern 64 bit Intel yongalı bilgisayarlar önyükleme sektörünü hangi modda çalıştırıyor?


12

286s gibi daha eski makinelerde, önyükleme sürücüsünün ilk sektöründen 0000: 7C00 belleğe yüklenen ilk 512 bayt 16 bit gerçek modda çalıştırıldı, ama modern 64 bit mimarilere ne dersiniz?

Edit: Sanırım bu üzerine düşünme üzerine yanlış bir soru. Önyükleme yükleyicisinin yazarı, hangi mod montaj talimatlarının kullanılacağına karar verir, değil mi? Donanım sadece söylediklerini yapar. O zaman sorum şu olmalı, 64 bit makinelerde Windows 7, Mac OS X (en son) ve GRUB gibi büyük işletim sistemi önyükleme yükleyicileri hangi modu kullanıyor?

Yanıtlar:


12

Mevcut tüm x86 uyumlu bilgisayarlar (hem Intel hem de AMD'den x64 mimarisini de içerir, ancak Itanium değil) , orijinal IBM PC'nin 20 yıl önce yaptığı gibi x86 gerçek modda önyükleme sektörü kodunu çalıştırır . Çekirdek modu değildir, bellek koruması, çoklu görev veya kod ayrıcalık düzeyleri olmayan orijinal bölümlü moddur.

Eğer bir disket sürücü alabilir, MS-DOS (veya FreeDOS ) üzerine koymak ve bugünün bilgisayarına sıkışmış, önyükleme başlar.

Korumalı moda geçmek, bellek korumasını ayarlamak vb. Yapmak önyükleme kodunun görevidir. Yani tahmininiz kısmen doğrudur. Önyükleme yükleyicisi x86 gerçek modu olarak yürütmeye başlar ve korumalı moda geçer, yükler ve aslında "Çekirdek" (halka 0) modunda OS Çekirdeğini yürütmeye başlar.

Daha fazla bilgi için, Windows NT başlatma işlemiyle ilgili bu konuyla ilgili birkaç ayrıntı içeren Wikipedia makalesini ziyaret edebilirsiniz .


haimg, bu bağlantı ve açıklama için teşekkürler. @Deshe, en iyi cevabı aldığım için üzgünüm.
mring

Şimdi bunu düzenleme zamanı, aksi takdirde kendi cevabınıza katılmıyorsunuz :-)
Daniel Beck

13

modern 64 bit mimarilere ne dersiniz?

Bu, modern 64 bit mimariye sahip modern 64 bit makinedeki bellenime bağlıdır. haimgBu sorunun cevabı, beş ila altı yıl önce x86 dünyası için geçerli olurdu, ancak bugün x86 dünyası için güncel değil.

Eski PC / AT yazılımları

Bu modern 64-bit makinelerden bazıları eski PC / AT tarzı yazılımlara sahiptir. Diğer yanıtlarda belirtildiği gibi, bir diskin # 0 sektöründen bootstrap programını PC / AT ile aynı şekilde yükler ve çalıştırırlar. Bu eski PC / AT önyükleme işlemidir.

Yeni EFI yazılımları

Diğer modern 64-bit makineler yeni EFI yazılımlarına sahiptir. Bunlar, bir diskin sektör # 0 dan bir önyükleme programı yüklemeyin hiç . Bir EFI önyükleme yükleyicisi uygulamasını yükleyip çalıştırarak EFI Önyükleme Yöneticisi tarafından önyükleme yaparlar . Bu tür programlar korumalı modda çalıştırılır. Bu EFI önyükleme işlemidir.

EFI yazılımları, işlemci sıfırlama işleminden birkaç adım geçerek genel olarak korumalı moda geçer. Korumalı moda geçmek, EFI ürün yazılımı başlatmanın söz konusu "SEC Aşaması" nda erken yapılır. Teknik olarak, 32 bit ve daha büyük x86 işlemciler gerçek modda düzgün başlamaz, ancak gerçek anlamda gerçek olmayan mod olarak bilinen şeyde başlar . (Kayıt için başlangıç ​​segment tanımlayıcısı CSgeleneksel gerçek mod eşlemesini tanımlamaz ve bunu "gerçek dışı" yapan şeydir.)

Bu nedenle, bu EFI sistemlerinin , yerel olarak bir EFI önyükleyicisine önyükleme yaparken (yani bir uyumluluk destek modülü kullanmadığında ), gerçek moddan doğrudan korumalı moda geçtikleri için hiçbir zaman gerçek moda uygun olarak girilmedikleri söylenebilir. ve o andan itibaren korumalı modda kalın.


Önyükleme işlemine bağlantı kopmuş / ölü görünüyor. Yerini bulamıyorum.
slm


1
Ve şimdi adınızı biliyorum 8-) URL'lerine bakıyor. Casusluk yapmaya çalışmak fark edemedi.
slm

Sanırım bir şeyi ntlworld'den taşıdın, doğru mu?
slm

1st - jdebp.eu/FGA/pcat-boot-process.html için olası değiştirme URL'si . Tanrım ppl senin A'er her yerde kopyala / yapıştır. Bu wikipedia'da bile bu A'er alıntısı var - en.wikipedia.org/wiki/Talk%3AReal_mode .
slm

1

Bildiğim kadarıyla, önyükleme kodu her zaman Çekirdek modunda çalışır.

Birincisi, önyükleme sektöründen çalıştırıldığı için hangi modun kullanılacağına karar vermek hiçbir şey imkansızdır, çünkü sadece bellenim tarafından yürütülen ilk talimatlardır. Kodun çalışmaya başlamadan önce hangi talimatları kullanabileceğini belirlemesinin bir yolu yoktur. Bu nedenle, tasarım gereği, önyükleme sektöründeki kod için mevcut olan montaj seti, mimari tarafından önceden belirlenir.

Bunun için herhangi bir ayrıcalıksız mod seçilecek olsaydı, daha yüksek ayrıcalıklı modlardan gelen talimatları kullanmak imkansız olurdu, bu da önyükleme kodunun mevcut en ayrıcalıklı modla çalıştığı gerçeğini hemen hemen zorlar.


1

Intel manuel Cilt 3 Sistem Programlama Kılavuzu 325384-053TR Ocak 2015:

2.2 ÇALIŞMA ŞEKİLLERİ

İşlemci açıldıktan veya sıfırlandıktan sonra gerçek adres moduna geçirilir.

Sadece vuruşlar için, el kitabından güzel bir diyagram:

resim açıklamasını buraya girin

GRUB, çoklu önyüklemeli işletim sistemlerini korumalı modda başlatır. Çoklu önyükleme belirtimi 0.6.96 Makine durumu :

'CR0' Bit 0 (PE) ayarlanmalıdır.

GRUB ve x86_64 hakkında emin değilim.


GRUB, Multiiboot özellikli işletim sistemlerini korumalı modda başlatır. Bu * BSD'leri içerir, ancak bildiğim kadarıyla Linux bu spesifikasyonu takip etmez ve kendi işini yapar. Çoklu önyükleme belirtimiyle uyumlu bir işletim sistemi önyüklenirken GRUB yapılandırması multibootanahtar kelimeyi kullanır ; Linux için, orada adanmış linux, linux16UEFI GRUB sürümlerinde, içinde ve linuxefiLinux özgü önyükleme protokolünü kullanmak için GRUB anlatan anahtar kelimeler.
telcoM

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.