Neden bir yükleme yükleyicisine ihtiyacımız var?


29

BIOS veya bir ürün yazılımı işlevi gören benzer bir şey başlatıldıktan sonra kontrol bildiğim kadarıyla önyükleyiciye iletilir.

BIOS neden işletim sistemi çekirdeğini doğrudan yükleyemiyor?

Ayrıca, GRUB kılavuzunda şöyle yazıyor: kısaca, bir önyükleyici, bilgisayar başladığında çalışan ilk yazılım programıdır . BIOS, çalışan ilk program değil mi?


Yanıtlar:


28

Bir BIOS'un bir çekirdeğin nasıl yükleneceğini bilmesi gerekir ve bu da BIOS'u aşırı karmaşık hale getirir: mevcut birçok farklı işletim sistemini nasıl yükleyeceğini, çekirdek parametrelerini kendilerine nasıl geçireceğini vb.

Böylece, sadece donanımı başlatır ve önyükleyicinin depolandığı bilinen bir yere atlar; daha sonra kontrol ona iletilir.

Gönderen Unix ve Internetin Temelleri NASIL :

BIOS'un neden çekirdeği doğrudan yüklemediğini merak edebilirsiniz - neden iki aşamalı önyükleyici ile işlem yapıyorsunuz? Peki, BIOS çok akıllı değil. Aslında çok aptalca ve Linux açılışta hiç kullanmıyor. İlk başta küçük diskli ilkel 8-bit PC'ler için yazılmış ve tam anlamıyla çekirdeği doğrudan yüklemek için yeterli diske erişemiyor. Önyükleyici adımı, Unix'in sizin için yeterince iyi olmadığı ihtimal dışı bir durumda, diskinizdeki farklı yerlerden birkaç işletim sisteminden birini başlatmanıza izin verir.

Çalışan ilk program olan BIOS'a gelince: ( Wikipedia'dan )

BIOS yazılımı PC'de yerleşiktir ve çalıştırıldığında PC tarafından çalıştırılan ilk koddur ('boot firmware').

Ancak bir ürün yazılımı bir yazılımdır. Bu yüzden GRUB el kitabının en azından kafa karıştırıcı olduğunu farz ediyorum; bootloader , bilgisayarda çalışan ilk kullanıcı tanımlı yazılım parçası olarak görülebilir .


10

Sebep esneklik. Bir sabit diskte birkaç farklı işletim sistemi olabilir (Windows, Linux vb.) Veya aynı işletim sisteminin farklı sürümleri olabilir. Bu nedenle, sabit diskte kurulu her bir işletim sisteminin nerede bulunduğunu, her birinin nasıl yükleneceğini, hangisinin yükleneceğini, bir menü sunulup sunulmayacağını, vb. Bilen bir OS bağımsız kod parçasına sahip olmak daha iyidir. bir önyükleyici.

BIOS, sabit diskte önceden tanımlanmış bir konumda bulunan kodu yükler ve yürütür (ilk sektör). Bu kodu bir önyükleyici olarak adlandırıyoruz, ancak teknik olarak Windows'u boş bir sabit diske yüklediyseniz, bu kod da Windows tarafından yüklenir; bu nedenle, özellikle Windows önyükleyicisi Windows dışında başka bir işletim sistemi yükleyemediğinden, bunu Windows'un bir parçası olarak adlandırabilirsiniz.

Bir bilgisayar başladığında çalışan ilk yazılım programıyla ilgili olarak, ürün yazılımı / yazılım ayrımı oldukça incedir ve modern bilgisayarın başlangıç ​​süreci oldukça karmaşıktır. BIOS, kendi içinde bir yekpare bir program değildir, ancak bir araya getirilen birkaç farklı aşamadır. Ancak, bootloader çalışan ilk kullanıcı tarafından değiştirilebilir koddur. Bu, kullanıcının bir virüs, vb. İle zarar verebileceği, silebileceği, bulaştırabileceği ilk kod parçasıdır. Bu nedenle, teknik olarak BIOS çalışan ilk yazılım olsa da, bootloader ilk önce bilgisayarın önyükleme yapması durumunda kullanıcının ihtiyacı olmadığını düşünür. Tamam olup olmadığını kontrol etmek için.


1
Deneyimden, bir kullanıcı kesinlikle BIOS'u kırabilir.
Monica'ya Zarar Vermeyi Durdurun

2

BIOS neden işletim sistemi çekirdeğini doğrudan yükleyemiyor?

Üç sebep:

  • 1981 yılında piyasaya sürüldüğü zamanki orijinal PC platformundaki BIOS, CP / M işletim sistemindeki rolüyle aynı işlevi görmeyi amaçlıyordu - yani, birkaç cihaz ve basit bir disk önyükleyici için ince bir soyutlama katmanı. CP / M, dosya sistemini kullanan "BDOS" adında başka bir katmana sahipti. DOS, pek çok bakımdan CP / M'ye benziyordu, çünkü o sırada moda işletim sistemi idi ve benzer şekilde yapılandırıldı. BIOS, platformların donanıma özgü yönlerini ele almak için tasarlandı, işletim sistemlerinde sürücülerin şimdi yerine getirdiği bir rol.

  • İşletim sisteminden ayrı bir dosya sistemi kavramı henüz tam olarak ele alınmamıştır.

  • Bu zamanda, RAM ve ROM pahalı ve kıt kaynaklardı. Orijinal IBM 5150 PC, 16K RAM ( referans ) ile elde edilebilir. Bu sistemin ROM büyüklüğü 48K idi ve bu bir BASIC yorumlayıcısı içeriyordu. O sırada standart bir dosya sistemi gibi bir şey de yoktu.

DOS, bu platform için en popüler işletim sistemi haline geldiğinden ve bundan sonra bu kurulumla çalışan Windows olduğundan, hiç kimse BIOS'u bu şekilde genişleterek gerçek önyükleme özelliğini içerecek şekilde düşünmedi.

UEFI'nin yeteneklerinden emin değilim - Windows tarafından bir nedenden ötürü kullanılmayan gerçek önyükleme özelliğine sahip olabilir (Windows, yüklediğinizde kendi önyükleme yöneticisini kullanmakta ısrar ediyor). U-Boot ve birçok telefon ve yönlendiricideki BIOS olmayan diğer yazılımlar doğrudan çekirdek yükler ve çalıştırır. BIOS'ların ROM'da daha fazla şey yapması için yer açmaya başladığından beri bunun teknik bir nedeni yoktu.

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.