BIOS'ta bir tür genel 'sürücü' var mı


22

BIOS, herhangi bir sürücü türü olmadan G / Ç aygıtlarını nasıl kontrol eder?

Örneğin, BIOS ekran kartı için herhangi bir sürücüye sahip değilse, bilgisayar önyüklenirken görüntü nasıl görüntülenir?

Hangi donanımın yüklü olduğuna bakmaksızın, BIOS'un temel işlevleri gerçekleştirmesini sağlayan tüm BIOS ve donanımlarda standart olan bir tür genel sürücü var mı?

Herhangi bir yardım takdir edilecektir.

Teşekkürler.


Çözmeye çalıştığınız belirli bir sorun mu var? BIOS varsa senin sorma evrensel jenerik sürücü kullanıyorsa öyle değil
Ramhound

Sanırım minimal bir standart çıktı formatı (vesa) var ve ekran kartının kendine ait bir kopyası var. Ayrıca, bios / uefi firmware'iniz gerçek değil, 3 boyutlu olarak oluşturulmuştur.
Journeyman Geek

5
@Ramhound Sorun çözmeye çalıştığım bir sorun değil, sadece genel bir soru. Sisteminize hangi grafik kartını taktıysanız, önyükleme yaparken hala çekingenliği görebilirsiniz, bu nedenle BIOS'a programlanmış standart bir arabirim var mı?
RJSmith92

4
Do you have a specific problem your trying to solve? Evet, sordukları soruya cevap bulma problemini çözmeye çalışıyorlar. ¬_¬
Synetech

Yanıtlar:


13

BIOS'ta bir tür genel 'sürücü' var mı

BIOS, herhangi bir sürücü türü olmadan G / Ç aygıtlarını nasıl kontrol eder?

Standartlar. Tüm bileşenler temel bir arayüz oluşturur ve BIOS bunu kullanmak için programlanmıştır. Tabii ki bu temel bir arayüz olduğu için (BIOS'ta 'B'nin anlamı budur), donanımın tüm yeteneklerinden faydalanamaz; Bu, donanıma doğrudan erişebilen sürücüler aracılığıyla gerçekleştirilmesi için yazılıma bırakılmıştır.

Orijinal olarak, BIOS üreticileri, uyumlu olmak istiyorlarsa, cihazların kullanması beklenen bir dizi API oluşturdular . Bunu, bir cihazın bir şey olduğunu ve bunun tersi olduğunu bildirmek için programı kesmesi için bir yol olan “ kesmeler ” aracılığıyla yaptılar .

Örneğin, BIOS ekran kartı için herhangi bir sürücüye sahip değilse, bilgisayar önyüklenirken görüntü nasıl görüntülenir?

Önyükleme öncesi ekran durumunda, video adaptörünün bellenimi , ekran donanımına erişimi kolaylaştırmak için oluşturulan bir standart olan VESA'yı (Video Elektronik Standartları Birliği) uygular . BIOS, sağlanan standart işlevleri kullanarak video donanıma nasıl erişileceğini bilir. DirectX'in donanıma göre daha üst düzey bir API olarak nasıl uygulandığına benzer şekildedir, böylece programcılar her bir donanım yapılandırmasını hesaba katmak zorunda kalmazlar.

Hangi BIOS yüklü olursa olsun, BIOS'un temel işlevleri gerçekleştirmesine olanak sağlayan tüm BIOS'larda ve donanımda bulunan genel bir sürücü var mı?

Sırala. Bu bir sürücü değil, standart bir API ; Bir cihazı başlatmak veya giriş ve çıkış verilerini başlatmak gibi temel işleri yapmak için kullanılabilecek bir dizi programlama fonksiyonu.

Üreticiler ürünlerini satmak isterlerse, en azından standart API'leri uyumlu olmaları için uyguladıklarından emin olmaları gerekir. Bu şekilde, sistem donanımı algılayabilir ve önyükleme kritik aygıtlar durumunda, bunlara tam olarak nasıl erişileceğini bilen bir yazılım sürücüsü yüklenene kadar temel düzeyde erişebilirler.


Teşekkürler, harika cevap. Öyleyse, BIOS kesme çağrıları (hangi DOS sistemlerini kullanmak için kullanılır) işletim sistemi yüklenene kadar kullanılıyor?
RJSmith92

1
Evet, BIOS kullanılabilecek bir sürü farklı kesinti sağlar (tüm BIOS'lar tüm fonksiyonları sunmasa da). DOS sistemleri bunları kullandı, ancak DOS ayrıca INT 21 ve 2F'yi de yarattı ve daha yüksek seviyeli yazılım kesintileri sağladı (DOS / donanım assembler programlamasını çok özlüyorum). Gerçek şu ki, EFI ile ve gelecekte ne olursa olsun, uyumluluk için gereken her zaman temel, düşük seviyeli bir işlevselliğe ihtiyaç duyulacak. Farklı biçimlerde olabilir, ancak bir tür ortak dil olmadan sistemin donanım aygıtlarını kullanması mümkün olmazdı.
Synetech

Anladığım kadarıyla kesme çağrıları hala çekirdek ve çekirdek düzeyinde servisler tarafından kullanılıyor. Bu doğru değil mi?
BlueRaja - Danny Pflughoeft 15:13

@BlueRaja, belki önyükleme sırasında (ihtiyaç duydukları bazı donanım erişmenin yolu), ancak algılama rutinleri çalıştırdıktan sonra, doğrudan donanım erişmek için (sadece alt düzey programlardır) uygun sürücülerin kullanın. Çekirdeğin donanımdan en iyi şekilde yararlanmak için doğrudan erişime ihtiyacı vardır, örneğin gelişmiş CPU işlevlerinden yararlanmak veya bellek denetleyicisinin ve yonga setinin kullanımını optimize etmek.
Synetech

22

Bir PC'deki BIOS, 80'li yılların ortalarında PC devralmadan önce popüler olan 8 bit CP / M sistemindeki BIOS ile benzer bir işlevi yerine getirmeyi amaçlıyordu. BIOS, birkaç aygıta (ekran, disk, teyp, COM bağlantı noktası) giriş ve çıkış yapmak için minimal önyükleyici ve donanıma bağlı düşük düzey yordamlar içermesi amaçlanmıştır. Bunu yapma bilgisi ROM'a dahil edildi - sürücüye gerek yok ve elbette bu ROM tarafından desteklenen ek bir donanım yok. (Güç yönetimi ve ACPI gibi şeyler, çok geçmeden, 90'lı yıllarda, PC her yerde bir platform olarak kurulduktan sonra geldi.)

(CP / M "dosya sistemi", BDOS adlı bir diskten çıkmış bir bileşendeydi - aynı şekilde, FAT dosya sistemi bilgisi ve ara yüzleri (en az bir tanesinde) iki gizli dosyada MSDOS.SYS ya da IO.SYS'de değil - BIOS ROM’un

Bununla birlikte ... PC BIOS, CP / M'den farklı olarak, genişletme kartında bulunabilecek "Option ROMS" kavramını desteklemiştir. Dolayısıyla, BIOS'u genişletmek için en azından minimal bir mekanizma vardı. CGA ile başlayan ekran kartları (CGA'nın öncüsü MDA, bunu da yapmış olabilir), BIOS arabirimine G / Ç işlevleri ekleyen veya ekleyen bir seçenek ROM'a sahip olacaktır. (Bu nedenle, BIOS'unuz önyüklemeden önce bir NVidia mesajı görüyorsunuz.) Sabit kontrolörler ve SCSI kartlar da öyle. Bunların hepsi hala var. Birçok eski ağ kartında önyükleme ROM'u için bir soket bulunur.

80'lerde ortaya çıkan PC klonu üreticilerinin sadece uyumlu bir BIOS arayüzü sağlamaya karar verdiklerini, ancak PC platformunu bir bütün olarak kopyalamak zorunda kaldıklarını, ancak zamanlayıcı çip gibi tüm düşük seviyeli donanımların da dahil olduğunu unutmayın. , denetleyiciyi kesinti, vb. (Küçük bir kısmı IBM'e ait olduğundan bu nispeten kolaydı.) Bunun nedeni, BIOS'un bir şeyleri yapması ya da programcıların donanıma doğrudan, özellikle oyunlar için erişmesiydi.

Bu nedenle, isteğe bağlı ROM'lar ile PC platformunu oluşturan bu standart donanım konsensüsünün yanı sıra, bilgisayarın evrimi boyunca geriye dönük olarak uyumlu tutulması gerçeği arasında, ekranı sürücüyü kullanmadan kullanmak isteyen bir şey:

  • Video donanımındaki bir seçenek ROM tarafından "bağlanabilen" standart BIOS arabirimlerini kullanın
  • veya sistemdeki donanımın ne olduğu hakkında varsayımlarda bulunmak ve doğrudan temel donanıma erişmek

Tüm PC ekran donanımı hala önyüklemede "VGA uyumlu" modda çalışıyor. Orijinal IBM VGA bağdaştırıcısının önceki EGA, CGA ve MDA kartlarıyla uyumlu modları vardır. Tüm bunlar, BIOS'tan veya bir işletim sisteminin dışından çalışan bir şeyin, 1985'te olduğu gibi, ekrana bağlı olan aynı belleği, 1985 yılında kongre aracılığıyla hala okuyabildiğini ve yazabildiğini varsayabilir.


Cevap için teşekkürler. Yani genişleme kartlarındaki BIOS herhangi bir standart takip etmeli, böylece herhangi bir anakart biosu kullanabilir mi?
RJSmith92

1
Uzun süredir devam eden bir kongre yerine standart kadar olup olmadığından emin değilim, ama bunun gibi bir şey. BIOS Önyükleme Özelliği'nin (BBS) resmi bir standart olduğunu düşünüyorum. en.wikipedia.org/wiki/Option_ROM
LawrenceC

Evet, aradığım şey bu. Tekrar teşekkürler
RJSmith92
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.