BIOS - BIOS

Dvojice čipů AMD BIOS pro počítač Dell 310 z 80. let minulého století

Ve výpočtu , BIOS ( / b ɒ s , - s / , BY -oss, -⁠ohss ; jako zkratka pro Basic Input / Output System a také známý jako systém BIOS , ROM BIOS , BIOS ROM nebo PC BIOS ) je firmware používaný k inicializaci hardwaru během procesu spouštění (spuštění při spuštění) a k poskytování běhových služeb pro operační systémy a programy. Firmware systému BIOS je předinstalován na základní desce osobního počítače a je to první software, který se spouští po zapnutí. Název pochází ze základního vstupního/výstupního systému používaného v operačním systému CP/M v roce 1975. BIOS původně proprietární pro počítač IBM byl některými společnostmi (například Phoenix Technologies ), kteří chtějí vytvořit kompatibilní systémy, vyvinut zpětně . Rozhraní tohoto originálního systému slouží jako de facto standardem .

Systém BIOS v moderních počítačích inicializuje a testuje součásti hardwaru systému ( autotest při zapnutí ) a načte zavaděč z velkokapacitního paměťového zařízení, které poté inicializuje operační systém. V éře DOS poskytoval BIOS volání přerušení BIOSu pro klávesnici, displej, úložiště a další zařízení pro vstup/výstup (I/O), která standardizovala rozhraní aplikačních programů a operačního systému. Novější operační systémy nepoužívají volání přerušení systému BIOS po spuštění.

Většina implementací systému BIOS je speciálně navržena pro práci s konkrétním modelem počítače nebo základní desky prostřednictvím propojení s různými zařízeními, zejména systémovou čipovou sadou . Původně byl firmware BIOSu uložen v ROM čipu na základní desce PC. V moderních počítačových systémech je obsah BIOSu uložen na flash paměti, takže jej lze přepsat bez vyjmutí čipu ze základní desky. To umožňuje snadné aktualizace firmwaru BIOS koncovými uživateli, takže lze přidávat nové funkce nebo opravovat chyby, ale také to umožňuje počítači nakazit se rootkity systému BIOS . Kromě toho upgrade systému BIOS, který se nezdaří, by mohl zničit základní desku.

Rozhraní Unified Extensible Firmware Interface (UEFI) je nástupcem staršího systému BIOS pro počítače, jehož cílem je vyřešit jeho technická omezení.

Dějiny

/* C P / M   B A S I C   I / O    S Y S T E M    (B I O S)
                    COPYRIGHT (C) GARY A. KILDALL
                             JUNE, 1975 */
[…]
/*  B A S I C   D I S K    O P E R A T I N G   S Y S T E M  (B D O S)
                    COPYRIGHT (C) GARY A. KILDALL
                            JUNE, 1975 */
-  Výňatek ze záhlaví souboru BDOS.PLM ve zdrojovém kódu PL/M CP/M 1.1 nebo 1.2 pro Lawrence Livermore Laboratories (LLL)

Pojem BIOS (Basic Input/Output System) vytvořil Gary Kildall a poprvé se objevil v operačním systému CP/M v roce 1975 a popisoval strojově specifickou část CP/M načtenou během zavádění, která je v přímém propojení s hardwarem . (Stroj CP/M má obvykle v ROM pouze jednoduchý zavaděč .)

Verze MS-DOS , PC DOS nebo DR-DOS obsahují soubor s různým názvem „ IO.SYS “, „ IBMBIO.COM “, „IBMBIO.SYS“ nebo „DRBIOS.SYS“; tento soubor je známý jako „DOS BIOS“ (také známý jako „DOS I/O System“) a obsahuje hardwarově specifickou část operačního systému nižší úrovně. Spolu se základním hardwarově specifickým, ale na operačním systému nezávislým „System BIOS“, který je umístěn v ROM , představuje analogii k „ CP/M BIOS “.

BIOS původně proprietární pro počítač IBM byl některými společnostmi (například Phoenix Technologies ), kteří chtějí vytvořit kompatibilní systémy, zpětně zpracován .

Se zavedením strojů PS/2 rozdělila IBM System BIOS na části v reálném a chráněném režimu. Část reálného režimu měla zajistit zpětnou kompatibilitu se stávajícími operačními systémy, jako je DOS, a proto dostala název „CBIOS“ (pro „Compatibility BIOS“), zatímco „ABIOS“ (pro „Advanced BIOS“) poskytovala nová rozhraní konkrétně vhodné pro víceúlohové operační systémy, jako je OS/2 .

Uživatelské rozhraní

BIOS původního IBM PC a XT neměl žádné interaktivní uživatelské rozhraní. Chybové kódy nebo zprávy se zobrazovaly na obrazovce nebo se generovaly kódované série zvuků k signalizaci chyb, když autotest při spuštění (POST) neproběhl do bodu úspěšné inicializace adaptéru pro zobrazení videa. Možnosti na IBM PC a XT byly nastaveny přepínači a propojkami na základní desce a na rozšiřujících kartách . Počínaje polovinou devadesátých let se pro ROM ROM BIOSu stalo typickým, že obsahoval „nástroj pro konfiguraci systému BIOS“ (BCU) nebo „nástroj pro nastavení systému BIOS“, ke kterému se přistupovalo při zapnutí systému pomocí konkrétní sekvence kláves. Tento program umožnil uživateli nastavit možnosti konfigurace systému, dříve nastaveného pomocí přepínačů DIP , prostřednictvím interaktivního systému nabídek ovládaného pomocí klávesnice. V mezidobí počítače kompatibilní s IBM‍ — ‌ včetně IBM AT ‍ — ‌ držely konfigurační nastavení v RAM zálohované baterií a používaly spouštěcí konfigurační program na disketě, nikoli v ROM, k nastavení možností konfigurace obsažených v této paměti. Disketa byla dodána s počítačem a v případě ztráty nebylo možné změnit nastavení systému. Totéž platí obecně pro počítače se sběrnicí EISA , pro které byl konfigurační program nazýván EISA Configuration Utility (ECU).

Moderní počítač kompatibilní s Wintelem poskytuje rutinu instalace, která se v podstatě nezměnila od obslužných programů BIOS BIOS rezidentních z konce 90. let; uživatel může konfigurovat možnosti hardwaru pomocí klávesnice a zobrazení videa. Moderní stroj Wintel může ukládat nastavení konfigurace systému BIOS do flash ROM, možná do stejné flash ROM, která obsahuje samotný BIOS.

Úkon

Spuštění systému

Dřívější procesory Intel začínaly na fyzické adrese 000FFFF0h. Systémy s novějšími procesory poskytují logiku pro spuštění systému BIOS ze systémové paměti ROM.

Pokud byl systém právě zapnut nebo bylo stisknuto tlačítko reset („studený start“), spustí se automatický test POST ( power-on self-test ). Pokud bylo stisknuto Ctrl+Alt+Delete („teplé spuštění“), speciální hodnota příznaku uložená v energeticky nezávislé paměti BIOS („ CMOS “) testovaná systémem BIOS umožňuje obejít zdlouhavé POST a detekci paměti.

POST identifikuje, testuje a inicializuje systémová zařízení, jako je CPU , čipová sada , RAM , základní deska , grafická karta , klávesnice , myš , pevný disk , optická jednotka a další hardware , včetně integrovaných periferií .

Počáteční počítače IBM měly v testu POST rutinu, která stáhla program do RAM přes port klávesnice a spustila jej. Tato funkce byla určena pro tovární testování nebo diagnostické účely.

Proces spouštění

Proces spouštění

Po dokončení kontroly volitelných ROM a volání všech detekovaných modulů ROM s platnými kontrolními součty nebo bezprostředně po POST ve verzi systému BIOS, která nehledá volitelné ROM, systém BIOS zavolá INT 19h, aby zahájil spouštění. Po spuštění mohou načtené programy také zavolat INT 19h pro restart systému, ale musí dávat pozor, aby deaktivovaly přerušení a jiné asynchronní hardwarové procesy, které mohou narušovat proces restartování systému BIOS, jinak se systém může během restartu zaseknout nebo selhat .

Když se zavolá INT 19h, BIOS se pokusí vyhledat software zavaděče na „zaváděcím zařízení“, jako je pevný disk , disketa , CD nebo DVD . Načte a spustí první spouštěcí software, který najde, čímž získá kontrolu nad počítačem.

Systém BIOS používá spouštěcí zařízení nastavená v paměti Nonvolatile BIOS ( CMOS ) nebo v nejstarších počítačích přepínače DIP . Systém BIOS zkontroluje každé zařízení, aby se pokusil načíst první sektor ( zaváděcí sektor ) , aby zjistil, zda je zaváděcí . Pokud sektor nelze přečíst, systém BIOS přejde na další zařízení. Pokud je sektor úspěšně načten, některé systémy BIOS také zkontrolují podpis zaváděcího sektoru 0x55 0xAA v posledních dvou bajtech sektoru (což je 512 bajtů), než přijmou zaváděcí sektor a budou zvažovat zaváděcí zařízení.

Když je nalezeno zaváděcí zařízení, systém BIOS přenese kontrolu do načteného sektoru. Systém BIOS neinterpretuje obsah zaváděcího sektoru jinak, než aby případně zkontroloval podpis zaváděcího sektoru v posledních dvou bajtech. Interpretace datových struktur, jako jsou tabulky oddílů a bloky parametrů systému BIOS, se provádí zaváděcím programem v samotném zaváděcím sektoru nebo jinými programy načtenými během zaváděcího procesu.

Zařízení bez disku, jako je síťový adaptér, se pokouší spustit pomocí postupu, který je definován jeho volitelnou pamětí ROM nebo ekvivalentem integrovaným do paměti ROM základní desky BIOS. Volitelné ROMy jako takové mohou také ovlivnit nebo nahradit proces spouštění definovaný ROM BIOSu základní desky.

U standardu spouštění optických médií El Torito optická jednotka ve skutečnosti emuluje 3,5 "disketu s vysokou hustotou do systému BIOS pro účely spouštění. Čtení" prvního sektoru "disku CD-ROM nebo DVD-ROM není jednoduše definovaná operace jako na disketě nebo pevném disku. Složitost média navíc ztěžuje zápis užitečného zaváděcího programu do jednoho sektoru. Zaváděcí virtuální disketa může obsahovat software, který poskytuje přístup k optickému médiu v jeho nativním formátu. formát.

Priorita spouštění

Uživatel si může vybrat prioritu spouštění implementovanou systémem BIOS. Většina počítačů má například pevný disk, který lze zavést, ale někdy existuje jednotka vyměnitelného média, která má vyšší prioritu spouštění, takže uživatel může způsobit spuštění vyměnitelného disku.

Ve většině moderních BIOSů může pořadí priority spouštění konfigurovat uživatel. Ve starších systémech BIOS lze vybrat omezené možnosti priority spouštění; v nejstarších BIOSech bylo implementováno schéma s pevnou prioritou, nejprve s disketovými jednotkami, za druhé s pevnými disky (tj. pevnými disky) a obvykle nejsou podporována žádná další zaváděcí zařízení, s výhradou úpravy těchto pravidel instalovanými volitelnými ROM. Systém BIOS v počátečním počítači se také obvykle spouští pouze z první disketové jednotky nebo z první jednotky pevného disku, i když byly nainstalovány dvě jednotky.

Selhání bootování

Pokud na původním počítači IBM PC a XT nebyl nalezen žádný spouštěcí disk, ROM BASIC byl spuštěn voláním INT 18h. Protože několik programů používalo BASIC v ROM, klonovaní výrobci počítačů to vynechali; pak počítač, kterému se nepodařilo spustit z disku, zobrazí „No ROM BASIC“ a zastaví se (v reakci na INT 18h).

Pozdější počítače zobrazí zprávu jako „Nebyl nalezen žádný spouštěcí disk“; někteří by vyzvali k vložení disku a stisknutí klávesy pro opakování procesu spouštění. Moderní systém BIOS nemusí zobrazovat nic nebo může automaticky vstoupit do konfiguračního nástroje systému BIOS, pokud proces spouštění selže.

Zaváděcí prostředí

Prostředí pro zaváděcí program je velmi jednoduché: CPU je v reálném režimu a obecné a segmentové registry nejsou definovány, kromě SS, SP, CS a DL. CS: IP vždy ukazuje na fyzickou adresu 0x07C00. Jaké hodnoty CS a IP ve skutečnosti mají, není přesně definováno. Některé BIOSy používají CS: IP, 0x0000:0x7C00zatímco jiné mohou používat 0x07C0:0x0000. Protože spouštěcí programy jsou vždy načteny na tuto pevnou adresu, není nutné zaváděcí program přemístit. DL může obsahovat číslo jednotky, jak se používá s INT 13h , spouštěcího zařízení. SS: SP ukazuje na platný zásobník, který je pravděpodobně dostatečně velký na to, aby podporoval přerušení hardwaru, ale jinak SS a SP nejsou definovány. (Aby mohl být přerušení obsluhován, musí být zásobník již nastaven a přerušení musí být povoleno, aby bylo možné přerušení časovače a časovače systému, které systém BIOS vždy používá alespoň k udržení počtu dnů a které inicializuje během testu POST, aby byl aktivní a aby klávesnice fungovala. Klávesnice funguje, i když není volána služba klávesnice systému BIOS; jsou přijímány úhozy a umístěné do 15místné vyrovnávací paměti pro předcházející typ udržované systémem BIOS.) Spouštěcí program musí být nastaven svůj vlastní zásobník, protože velikost zásobníku nastaveného systémem BIOS není známa a jeho umístění je rovněž proměnlivé; přestože zaváděcí program může prozkoumat výchozí zásobník prozkoumáním SS: SP, je jednodušší a kratší jednoduše bezpodmínečně nastavit nový zásobník.

Při spuštění jsou k dispozici všechny služby systému BIOS a adresa pod pamětí 0x00400obsahuje tabulku vektorů přerušení . BIOS POST podle potřeby inicializoval systémové časovače, řadiče přerušení, řadiče DMA a další hardware základní desky/čipové sady, aby všechny služby systému BIOS byly připraveny. Obnovení DRAM pro všechny systémové DRAM v konvenční paměti a rozšířené paměti, ale ne nezbytně rozšířené, bylo nastaveno a běží. Tyto vektory přerušení odpovídající přerušení BIOS byla nastavena na bod na příslušných vstupních bodů v systému BIOS, hardware přerušení vektory pro zařízení inicializovány BIOS byly nastaveny, aby odkazoval na BIOS poskytovaných ISR, a některé další přerušení, včetně těch které BIOS generuje pro programy k připojení, byly nastaveny na výchozí fiktivní ISR, který se okamžitě vrátí. BIOS udržuje vyhrazený blok systémové RAM na adresách 0x00400–0x004FFs různými parametry inicializovanými během POST. 0x00500Spouštěcí program může využívat veškerou paměť na a nad adresou ; může se dokonce přepsat.

Rozšíření (volitelné ROM)

Periferní karty, jako jsou adaptéry hostitelské sběrnice pevného disku a grafické karty, mají svůj vlastní firmware a součástí firmwaru rozšiřující karty může být ROM s možností rozšíření BIOSu , která systému BIOS poskytuje další funkce. Kód v volitelných ROM běží před tím, než BIOS spustí operační systém z velkokapacitního úložiště . Tyto ROM obvykle testují a inicializují hardware, přidávají nové služby BIOS nebo nahrazují stávající služby BIOS vlastními službami. Například řadič SCSI má obvykle ROM ROM s rozšířením systému BIOS, která přidává podporu pro pevné disky připojené přes tento řadič. Rozšířená ROM by v zásadě mohla obsahovat operační systém nebo by mohla implementovat úplně jiný zaváděcí proces, jako je zavádění ze sítě . Provoz počítačového systému kompatibilního s IBM lze zcela změnit odebráním nebo vložením karty adaptéru (nebo čipu ROM), která obsahuje ROM ROM s rozšířením.

BIOS základní desky obvykle obsahuje kód pro přístup k hardwarovým komponentám nezbytným pro bootstrapping integrovaného displeje a integrovaného úložiště. Navíc karty zásuvných adaptérů, jako jsou SCSI , RAID , karty síťového rozhraní a grafické karty, často obsahují vlastní BIOS (např. Video BIOS ), který doplňuje nebo nahrazuje kód systému BIOS pro danou součást. Takto se mohou chovat i zařízení zabudovaná v základní desce; jejich volitelné ROM mohou být součástí BIOSu základní desky.

Doplňková karta vyžaduje volitelnou paměť ROM, pokud karta není podporována systémem BIOS základní desky a kartu je třeba před načtením operačního systému inicializovat nebo zpřístupnit prostřednictvím služeb systému BIOS (obvykle to znamená, že je vyžadována v procesu spouštění ). I když to není požadováno, volitelná paměť ROM může umožnit použití karty adaptéru bez načtení softwaru ovladače z paměťového zařízení po zahájení spouštění - s volitelnou pamětí ROM není třeba načítat ovladač, ovladač nezabírá místo v RAM ani na pevném disku a software ovladače na ROM vždy zůstane u zařízení, takže je nelze omylem oddělit. Pokud je na kartě také ROM, bude nainstalován jak periferní hardware, tak software ovladače dodávaný pomocí paměti ROM bez dalšího úsilí při instalaci softwaru. Další výhodou ROM na některých raných počítačových systémech (zejména včetně IBM PCjr) bylo, že ROM byla rychlejší než hlavní systémová RAM. (U moderních systémů je tomu naopak a kód BIOS ROM je obvykle zkopírován („stínován“) do RAM, takže poběží rychleji.)

Existuje mnoho metod a nástrojů pro zkoumání obsahu různých BIOSů základních desek a rozšiřujících ROM, jako je Microsoft DEBUG nebo Unix dd .

Postup spouštění

Pokud si rozšiřující ROM přeje změnit způsob spouštění systému (například ze síťového zařízení nebo adaptéru SCSI) kooperativním způsobem, může k registraci své schopnosti použít API BIOS Boot Specification (BBS) . Jakmile se rozšiřující ROM zaregistrují pomocí rozhraní BBS API, uživatel si může vybrat z dostupných možností spouštění z uživatelského rozhraní systému BIOS. To je důvod, proč většina implementací systému BIOS BIOS kompatibilních s BBS neumožní uživateli vstoupit do uživatelského rozhraní systému BIOS, dokud se rozšiřující ROM nedokončí provádění a registrace pomocí rozhraní BBS API.

Také pokud si rozšiřující ROM přeje změnit způsob, jakým se systém jednostranně zavádí, může jednoduše zachytit INT 19h nebo jiná přerušení běžně volaná z přerušení 19h, jako je INT 13h, disková služba BIOS, aby zachytila ​​proces spouštění systému BIOS. Poté může nahradit proces spouštění systému BIOS jedním ze svých vlastních, nebo může pouze upravit spouštěcí sekvenci vložením vlastních zaváděcích akcí, čímž zabrání systému BIOS v detekci určitých zařízení jako zaváděcích nebo obojího. Před vyhlášením spouštěcí specifikace systému BIOS to byl jediný způsob, jak rozšiřující ROM implementovat zaváděcí schopnost pro zařízení, která nejsou podporována zaváděním nativního systému BIOS základní desky.

Inicializace

Poté, co BIOS základní desky dokončí test POST, většina verzí systému BIOS vyhledá volitelné moduly ROM, nazývané také ROM ROM pro rozšíření systému BIOS, a spustí je. BIOS základní desky prohledá rozšiřující ROM v části „ horní oblasti paměti “ (část adresního prostoru x86 v reálném režimu na adrese a nad adresou 0xA0000) a spustí každou nalezenou ROM v uvedeném pořadí. Chcete-li zjistit paměť ROM s volitelnou pamětí ISA mapovanou v paměti, prohledá implementace systému BIOS adresní prostor reálného režimu od 0x0C0000do 0x0F0000na hranici 2  kB (2048 bajtů) a vyhledá dvoubajtový podpis ROM : 0x55 následovaný 0xAA. V platné rozšiřující ROM za tímto podpisem následuje jeden bajt udávající počet bloků 512 bajtů, které rozšiřující ROM zabírá v reálné paměti, a další bajt je vstupním bodem volitelné ROM (také známý jako „vstupní offset“) . Kontrolní součet ze stanoveného počtu 512 bytových bloků se počítá, a v případě, že ROM má platný kontrolní součet, převody BIOS ovládat na vstupní adresy, které v normálním rozšíření ROM BIOS by měl být počátek inicializace rutiny prodloužením jeho.

V tomto okamžiku převezme kód ROM rozšíření, obvykle testování a inicializace hardwaru, který ovládá, a registrace vektorů přerušení pro použití aplikacemi po spuštění. Může používat služby BIOS (včetně služeb poskytovaných dříve inicializovanými volitelnými ROM) k poskytování uživatelského konfiguračního rozhraní, zobrazování diagnostických informací nebo k provádění čehokoli jiného, ​​co vyžaduje. Je možné, že se volitelná ROM nevrátí do systému BIOS, což zcela předejde zaváděcí sekvenci systému BIOS.

Volitelná ROM by se normálně měla vrátit do systému BIOS po dokončení procesu inicializace. Jakmile (a pokud) se volitelná ROM vrátí, BIOS pokračuje v hledání dalších volitelných ROM, přičemž každou volá tak, jak je nalezena, dokud není naskenována celá oblast volitelných ROM v paměťovém prostoru.

Fyzické umístění

Čipy BIOS v počítači Dell 310, které byly aktualizovány výměnou čipů

Volitelné ROM se obvykle nacházejí na kartách adaptéru. Původní počítač a možná také PC XT však mají na základní desce náhradní zásuvku ROM (v pojmech IBM „základní deska“), do které lze vložit volitelnou ROM a čtyři ROMy, které obsahují interpret BASIC, mohou mohou být také odstraněny a nahrazeny vlastními ROM, které mohou být volitelnými ROMy. IBM PCjr je jedinečný mezi počítači v tom, že dvě ROM kazety otvorů na přední straně. Kazety v těchto slotech se mapují do stejné oblasti horní oblasti paměti používané pro volitelné ROM a kazety mohou obsahovat volitelné moduly ROM, které by systém BIOS rozpoznal. Kazety mohou také obsahovat jiné typy modulů ROM, jako jsou BASIC programy, s nimiž se zachází odlišně. Jedna kazeta PCjr může obsahovat několik modulů ROM různých typů, případně uložených společně v jednom čipu ROM.

Služby operačního systému

BIOS ROM je přizpůsoben hardwaru konkrétního výrobce, což umožňuje standardizovaným způsobem poskytovat programy, včetně operačních systémů, služby nižší úrovně (například čtení úhozu nebo zápis sektoru dat na disketu). Například počítač IBM PC může mít buď černobílý, nebo barevný zobrazovací adaptér (s použitím různých adres paměti a hardwaru), ale lze vyvolat jediné standardní systémové volání systému BIOS za účelem zobrazení znaku na určené pozici na obrazovce v textový režim nebo grafický režim .

Systém BIOS poskytuje malou knihovnu základních vstupních/výstupních funkcí pro ovládání periferií (jako je klávesnice, základní funkce zobrazení textu a grafiky atd.). Při použití systému MS-DOS lze ke službám systému BIOS přistupovat pomocí aplikačního programu (nebo systému MS-DOS) spuštěním instrukce přerušení INT 13h pro přístup k funkcím disku nebo spuštěním jednoho z řady dalších zdokumentovaných volání přerušení systému BIOS pro přístup k videu funkce displeje , klávesnice , kazety a dalších zařízení.

Operační systémy a výkonný software, které mají nahradit tuto základní funkci firmwaru, poskytují náhradní softwarová rozhraní k aplikačnímu softwaru. Tyto služby si mohou aplikace poskytovat také samy. Začalo to dokonce v 80. letech minulého století v systému MS-DOS , kdy programátoři poznamenali, že používání video služeb BIOS pro grafické zobrazení bylo velmi pomalé. Aby se zvýšila rychlost výstupu obrazovky, mnoho programů obešlo BIOS a naprogramovalo hardware pro zobrazení videa přímo. Jiní grafičtí programátoři, zejména, ale nikoli výlučně v demoscénu , zaznamenali, že existují technické možnosti grafických adaptérů pro PC, které nebyly podporovány systémem IBM BIOS a nelze je využít bez obcházení. Protože AT-kompatibilní BIOS běžel v reálném režimu Intel , operační systémy, které běžely v chráněném režimu na procesorech 286 a novějších, vyžadovaly k nahrazení služeb BIOS ovladače hardwarových zařízení kompatibilní s provozem v chráněném režimu.

V moderních počítačích s moderními operačními systémy (například Windows a Linux ) se volání přerušení systému BIOS používá pouze během spouštění a počátečního načítání operačních systémů. Před zobrazením první grafické obrazovky operačního systému jsou vstup a výstup obvykle zpracovávány prostřednictvím systému BIOS. Nabídka zavádění, jako je textová nabídka systému Windows, která umožňuje uživatelům vybrat operační systém, který se má spustit, zavést do nouzového režimu nebo použít poslední známou dobrou konfiguraci, se zobrazuje v systému BIOS a přijímá vstup z klávesnice prostřednictvím systému BIOS.

Mnoho moderních počítačů může stále spouštět a spouštět starší operační systémy, jako jsou MS-DOS nebo DR-DOS, které se na I/O konzoly a disku silně spoléhají na BIOS, za předpokladu, že systém má BIOS nebo firmware UEFI podporující CSM.

Aktualizace mikrokódu procesoru

Procesory Intel mají od mikroarchitektury P6 přeprogramovatelný mikrokód . Procesory AMD mají od mikroarchitektury K7 přeprogramovatelný mikrokód . Systém BIOS obsahuje opravy mikrokódu procesoru, které opravují chyby v počátečním mikrokódu procesoru; mikrokód je načten do paměti SRAM procesoru, takže přeprogramování není trvalé, takže načítání aktualizací mikrokódu se provádí při každém zapnutí systému. Bez přeprogramovatelného mikrokódu by byl vyžadován nákladný swap procesoru; například chyba Pentium FDIV se stala pro Intel nákladným fiaskem, protože vyžadovala stažení produktu, protože vadný mikrokód původního procesoru Pentium nebylo možné přeprogramovat. Operační systémy mohou také aktualizovat mikrokód hlavního procesoru .

Identifikace

Některé systémy BIOS obsahují tabulku s popisem licencování softwaru (SLIC), což je digitální podpis umístěný v systému BIOS výrobcem původního zařízení (OEM), například společností Dell . SLIC je vložen do datové tabulky ACPI a neobsahuje žádný aktivní kód.

Výrobci počítačů, kteří distribuují OEM verze Microsoft Windows a aplikační software Microsoft, mohou pomocí SLIC ověřit licencování na instalační disk OEM Windows a disk pro obnovení systému obsahující software Windows. Systémy se SLIC lze předem aktivovat pomocí produktového klíče OEM a ověřují certifikát OEM ve formátu XML proti SLIC v systému BIOS jako prostředek vlastní aktivace (viz System Locked Preinstallation , SLP). Pokud uživatel provede novou instalaci systému Windows, bude muset vlastnit klíč OEM (buď SLP nebo COA) a digitální certifikát pro svůj SLIC, aby mohl obejít aktivaci. Toho lze dosáhnout, pokud uživatel provede obnovu pomocí předem přizpůsobeného obrazu poskytnutého výrobcem OEM. Zkušení uživatelé mohou zkopírovat potřebné soubory certifikátů z bitové kopie OEM, dekódovat produktový klíč SLP a poté provést aktivaci SLP ručně. Cracks pro neoriginální distribuce Windows obvykle upravují SLIC nebo jej emulují, aby se vyhnula aktivaci Windows.

Přetaktování

Některé implementace systému BIOS umožňují přetaktování , což je akce, při které je CPU zaručena vyšší taktovací frekvence, než jakou udává jeho výrobce. Přetaktování však může vážně ohrozit spolehlivost systému v nedostatečně chlazených počítačích a obecně zkrátit životnost komponent. Nesprávné provedení přetaktování může také způsobit přehřátí součástí tak rychle, že se samy mechanicky zničí.

Moderní použití

Některé starší operační systémy , například MS-DOS , spoléhají na to, že BIOS provádí většinu úkolů vstupu/výstupu v počítači.

Přímé volání služeb BIOS v reálném režimu je pro operační systémy v chráněném režimu (a dlouhém režimu ) neefektivní . Hovory přerušení systému BIOS nepoužívají moderní víceúlohové operační systémy poté, co se původně načtou.

V devadesátých letech BIOS poskytoval některá rozhraní chráněných režimů pro operační systémy Microsoft Windows a Unix , například Advanced Power Management (APM), Plug and Play BIOS , Desktop Management Interface (DMI), PCI BIOS, VESA BIOS Extensions (VBE) a Specifikace více procesorů (MPS). Počínaje rokem 2000 poskytuje většina BIOSů rozhraní ACPI , SMBIOS , VBE a e820 pro moderní operační systémy.

Po načtení operačních systémů je v režimu SMRAM stále spuštěn kód režimu správy systému . Od roku 2010 je technologie BIOS v přechodném procesu směrem k UEFI .

Konfigurace

Obslužný program nastavení

Historicky BIOS v IBM PC a XT neměl vestavěné uživatelské rozhraní. Verze systému BIOS v dřívějších počítačích (třída XT) nebyly softwarově konfigurovatelné; místo toho uživatelé nastavují možnosti pomocí přepínačů DIP na základní desce. Pozdější počítače, včetně všech IBM kompatibilních s CPU 80286, měly energeticky nezávislou paměť BIOS chráněnou baterií (čip CMOS RAM), která obsahovala nastavení systému BIOS. Tato nastavení, jako je typ grafického adaptéru, velikost paměti a parametry pevného disku, lze konfigurovat pouze spuštěním konfiguračního programu z disku, který není součástí paměti ROM. Do IBM AT byla vložena speciální „referenční disketa“ pro konfiguraci nastavení, jako je velikost paměti.

Starší verze systému BIOS neobsahovaly hesla ani možnosti výběru zaváděcího zařízení. BIOS byl pevně zakódován, aby se spustil z první disketové jednotky, nebo, pokud se to nezdařilo, z prvního pevného disku. Řízení přístupu v počátečních strojích třídy AT bylo pomocí fyzického spínače zámku klíčů (což nebylo těžké porazit, kdyby bylo možné otevřít skříň počítače). Kdokoli, kdo mohl zapnout počítač, jej mohl spustit.

Později začaly počítače třídy 386 integrovat nástroj pro nastavení systému BIOS do samotné ROM vedle kódu BIOS; tyto počítače se obvykle zavádějí do obslužného programu pro nastavení systému BIOS, pokud je stisknuta určitá klávesa nebo kombinace kláves, jinak se provede POST systému BIOS a proces spouštění.

Nástroj pro nastavení systému BIOS na standardním počítači

Moderní nástroj pro nastavení systému BIOS má textové uživatelské rozhraní (TUI) nebo grafické uživatelské rozhraní (GUI) přístupné stisknutím určité klávesy na klávesnici při spuštění počítače. Klíč je obvykle inzerován krátkou dobu během časného spuštění, například „Stisknutím klávesy DEL vstoupíte do instalace“. Skutečný klíč závisí na konkrétním hardwaru. Mezi funkce přítomné v nástroji pro nastavení systému BIOS obvykle patří:

  • Konfigurace, povolení a zakázání hardwarových komponent
  • Nastavení systémového času
  • Nastavení pořadí spouštění
  • Nastavení různých hesel, například hesla pro zabezpečení přístupu k uživatelskému rozhraní systému BIOS a zabránění uživatelům se zlými úmysly zavést systém z neoprávněných přenosných úložných zařízení nebo heslo pro spuštění systému

Monitorování hardwaru

Moderní obrazovka nastavení systému BIOS často obsahuje stav počítače nebo kartu Monitorování hardwaru , která je přímo propojena s čipem Hardware Monitor na základní desce. To umožňuje monitorovat teplotu CPU a šasi , napětí dodávané napájecí jednotkou a také monitorovat a řídit rychlost ventilátorů připojených k základní desce.

Jakmile je systém spuštěn, monitorování hardwaru a ovládání ventilátoru počítače je obvykle prováděno přímo samotným čipem Hardware Monitor, což může být samostatný čip, propojený přes I²C nebo SMBus , nebo dodávaný jako součást řešení Super I/O , propojený prostřednictvím nízkého počtu pinů (LPC). Některé operační systémy, jako NetBSD s envsys a OpenBSD se sysctl hw.sensors , mají integrované rozhraní s hardwarovými monitory.

Za určitých okolností však systém BIOS také poskytuje základní informace o monitorování hardwaru prostřednictvím rozhraní ACPI . V takovém případě může operační systém k monitorování hardwaru používat rozhraní ACPI.

Přeprogramování

Sada pro výměnu systému BIOS pro Dell 310 z konce 80. let minulého století. Součástí jsou dva čipy, plastový držák na čipy a stahovák čipů.

V moderních počítačích je BIOS uložen v přepisovatelné paměti EEPROM nebo NOR flash , což umožňuje výměnu a úpravu obsahu. Toto přepsání obsahu se někdy nazývá blikání . To lze provést pomocí speciálního programu, který obvykle poskytuje výrobce systému, nebo na POST , s bitovou kopií systému BIOS na pevném disku nebo USB flash disku. Soubor obsahující takový obsah se někdy nazývá „bitová kopie systému BIOS“. BIOS lze přepsat za účelem upgradu na novější verzi za účelem opravy chyb nebo zajištění lepšího výkonu nebo podpory novějšího hardwaru.

Hardware

American Megatrends BIOS 686. Tento čip BIOS je umístěn v balíčku PLCC v zásuvce.

Původní IBM PC BIOS (a kazeta BASIC) byla uložena na čipy programovatelné v paměti (ROM) v maskách v zásuvkách na základní desce. ROMy mohou být nahrazeny, ale nikoli pozměněny, uživateli. Aby bylo možné provádět aktualizace, mnoho kompatibilních počítačů používalo přeprogramovatelná paměťová zařízení BIOS, jako jsou EPROM , EEPROM a novější flash paměť (obvykle NOR flash ). Podle Roberta Bravera, prezidenta výrobce BIOSu Micro Firmware, se čipy Flash BIOS staly běžnými kolem roku 1995, protože elektricky vymazatelné čipy PROM (EEPROM) jsou levnější a jejich programování je jednodušší než standardní ultrafialové vymazatelné čipy PROM ( EPROM ). Flash čipy se programují (a přeprogramují) v obvodu, zatímco čipy EPROM je třeba pro přeprogramování vyjmout ze základní desky. Verze systému BIOS jsou upgradovány, aby využívaly výhody novějších verzí hardwaru a opravovaly chyby v předchozích revizích BIOSů.

Počínaje IBM AT podporovaly počítače hardwarové hodiny nastavitelné prostřednictvím systému BIOS. Mělo to století, které umožňovalo ruční změnu století, když se stal rok 2000. Většina revizí systému BIOS vytvořených v roce 1995 a téměř všechny revize systému BIOS v roce 1997 podporovaly rok 2000 tím, že se bit století automaticky nastavil, když hodiny přešly po půlnoci 31. prosince 1999.

První flash čipy byly připojeny ke sběrnici ISA . Počínaje rokem 1998 se flash BIOS přesunul na sběrnici LPC , funkční náhradu za ISA, podle nové standardní implementace známé jako „firmware hub“ (FWH). V roce 2006 se flash paměť BIOSu přesunula na sběrnici SPI .

Velikost systému BIOS a kapacita paměti ROM, EEPROM nebo jiného média, na které může být uložena, se postupem času zvyšovala, protože do kódu byly přidány nové funkce; Verze systému BIOS nyní existují s velikostmi až 32 megabajtů. Naproti tomu původní IBM PC BIOS byl obsažen v ROM s maskou 8 kB. Některé moderní základní desky obsahují ještě větší integrované obvody paměti NAND flash, které jsou schopné ukládat celé kompaktní operační systémy, například některé distribuce Linuxu . Některé notebooky ASUS například obsahovaly operační systém Splashtop integrovaný v integrovaných obvodech paměti NAND flash. Myšlenka zahrnout operační systém spolu s BIOSem do ROM počítače není nová; v 80. letech Microsoft nabízel možnost ROM pro MS-DOS a byla zahrnuta v ROMech některých PC klonů, jako je Tandy 1000 HX .

Na IBM PC AT a raných kompatibilních byl nalezen jiný typ firmwarového čipu. V AT bylo rozhraní klávesnice ovládáno mikrokontrolérem s vlastní programovatelnou pamětí. U IBM AT to bylo zařízení se 40 vývody, zatímco někteří výrobci používali verzi tohoto čipu EPROM, která se podobala EPROM. Tomuto řadiči byla také přiřazena funkce brány A20 pro správu paměti nad rozsah jednoho megabajtu; občas byla nutná aktualizace tohoto „BIOSu klávesnice“, aby bylo možné využít výhod softwaru, který by mohl využívat horní paměť.

Systém BIOS může obsahovat součásti, jako je paměťový referenční kód (MRC), který je zodpovědný za inicializaci paměti (např. Inicializace SPD a časování paměti ).

Moderní BIOS obsahuje firmware Intel Management Engine nebo AMD Platform Security Processor .

Prodejci a produkty

Porovnání různých implementací systému BIOS
Společnost AwardBIOS AMIBIOS Insyde SeaBIOS
Licence Proprietární Proprietární Proprietární LGPL v3
Udržováno / vyvíjeno Ukončeno Ukončeno Ukončeno Ano
32bitová volání PCI BIOS Ano Ano Ano Ano
AHCI Ano Ano Ano Ano
APM Ano Ano Ano (1.2) Ano (1.2)
BBS Ano Ano Ano Ano
Zaváděcí nabídka Ano Ano Ano Ano
Komprese Ano ( LHA ) Ano (LHA) Ano (RLE) Ano (LZMA)
CMOS Ano Ano Ano Ano
EDD Ano Ano Ano Ano
ESCD Ano Ano ? Ne
Flash z ROM ? Ano ? Ne
Jazyk Shromáždění Shromáždění Shromáždění C
LBA Ano (48) Ano (48) Ano Ano (48)
Specifikace více procesorů Ano Ano Ano Ano
Volitelná ROM Ano Ano Ano Ano
Heslo Ano Ano Ano Ne
PMM ? Ano ? Ano
Obrazovka nastavení Ano Ano Ano Ne
SMBIOS Ano Ano Ano Ano
Úvodní obrazovka Ano (EPA) Ano ( PCX ) Ano Ano (BMP, JPG)
TPM Neznámý Neznámý Neznámý Nějaký
Bootování z USB Ano Ano Ano Ano
USB rozbočovač ? ? ? Ano
USB klávesnice Ano Ano Ano Ano
Myš USB Ano Ano Ano Ano

Společnost IBM zveřejnila celý seznam BIOSů pro své původní PC, PC XT, PC AT a další současné modely PC v dodatku IBM PC Technical Reference Manual pro každý typ počítače. Publikování seznamů systému BIOS má za následek, že kdokoli může přesně vidět, co konečný systém BIOS dělá a jak to dělá.

Compaq Portable 386 BIOS

V květnu 1984 společnost Phoenix Software Associates vydala svůj první ROM-BIOS, který umožnil výrobcům originálních zařízení stavět v podstatě plně kompatibilní klony, aniž by museli zpětně upravovat samotný systém IBM PC BIOS, jak to udělal Compaq pro Portable , což pomohlo podpořit růst PC- kompatibilní průmysl a prodej verzí DOS jiných výrobců než IBM. A první americký BIOS Megatrends (AMI) byl vydán v roce 1986.

Nové standardy naroubované do systému BIOS obvykle neobsahují úplnou veřejnou dokumentaci ani seznamy systému BIOS. V důsledku toho není tak snadné se seznámit s důvěrnými podrobnostmi o mnoha přírůstcích BIOSu od jiných výrobců než o základních službách BIOS.

Většina dodavatelů základních desek pro počítače licencovala „jádro“ systému BIOS a sadu nástrojů od komerční třetí strany, známé jako „nezávislý dodavatel systému BIOS“ nebo IBV. Výrobce základní desky poté upravil tento BIOS tak, aby vyhovoval jeho vlastnímu hardwaru. Z tohoto důvodu se aktualizované BIOSy běžně získávají přímo od výrobce základní desky. Mezi bývalé hlavní dodavatele systému BIOS patřily společnosti American Megatrends (AMI), Insyde Software , Phoenix Technologies , Byosoft, Award Software a Microid Research. Software Microid Research and Award Software získala společnost Phoenix Technologies v roce 1998; Phoenix později vyřadil název značky Award. General Software , který také získal Phoenix v roce 2007, prodal BIOS pro vestavěné systémy založené na procesorech Intel.

Komunita s otevřeným zdrojovým kódem zvýšila své úsilí vyvinout náhradu za proprietární BIOSy a jejich budoucí inkarnace protějškem s otevřenými zdroji prostřednictvím projektů libreboot , coreboot a OpenBIOS / Open Firmware . AMD poskytlo u některých čipových sad specifikace produktů a Google sponzoruje projekt. Výrobce základních desek Tyan nabízí coreboot vedle standardního systému BIOS s řadou základních desek Opteron .

Bezpečnostní

American Megatrends BIOS ukazující „ Intel CPU UCODE Chyba při načítání“ Po neúspěšném pokusu nahrát mikrokódu patche do CPU
Oddělený čip BIOS

Paměťové čipy EEPROM a Flash jsou výhodné, protože je uživatel může snadno aktualizovat; je obvyklé, že výrobci hardwaru vydávají aktualizace systému BIOS za účelem upgradu svých produktů, zlepšení kompatibility a odstranění chyb . Tato výhoda však měla riziko, že nesprávně provedená nebo přerušená aktualizace systému BIOS může způsobit, že počítač nebo zařízení budou nepoužitelné. Aby se předešlo těmto situacím, používají novější BIOSy „spouštěcí blok“; část systému BIOS, která běží jako první a musí být aktualizována samostatně. Tento kód ověří, zda je zbytek systému BIOS neporušený (pomocí kontrolních součtů hash nebo jinými metodami), než do něj přenesete řízení. Pokud zaváděcí blok zjistí jakékoli poškození v hlavním systému BIOS, obvykle uživatele upozorní, že proces obnovy musí být zahájen zaváděním z vyměnitelného média (disketa, disk CD nebo USB flash disk), aby se uživatel mohl pokusit znovu spustit systém BIOS. Některé základní desky mají záložní BIOS (někdy označovaný jako desky DualBIOS) pro obnovu po poškození systému BIOS.

Existuje nejméně pět známých útočných virů systému BIOS, z nichž dva byly pro demonstrační účely. Prvním nalezeným ve volné přírodě byl Mebromi , zaměřený na čínské uživatele.

Prvním virem BIOS byl BIOS Meningitis, který je místo vymazání čipů BIOS infikoval. BIOS meningitida je relativně neškodná ve srovnání s virem, jako je CIH .

Druhým virem BIOS byl CIH , také známý jako „Chernobyl Virus“, který dokázal vymazat obsah flash ROM BIOS na kompatibilních čipsetech. CIH se objevil v polovině roku 1998 a stal se aktivním v dubnu 1999. Infikované počítače se často již nemohly spustit a lidé museli vyjmout flash ROM IC ze základní desky a přeprogramovat jej. CIH se zaměřil na tehdy rozšířený čipset základní desky Intel i430TX a využil toho, že operační systémy Windows 9x , v té době také rozšířené, umožňovaly přímý hardwarový přístup ke všem programům.

Moderní systémy nejsou vůči CIH citlivé, protože se používají různé čipsety, které nejsou kompatibilní s čipovou sadou Intel i430TX, a také jiné typy integrovaných obvodů flash ROM. K dispozici je také zvláštní ochrana před náhodným přepsáním systému BIOS ve formě spouštěcích bloků, které jsou chráněny před náhodným přepsáním nebo systémy vybavené dvěma a čtyřmi systémy BIOS, které mohou v případě havárie použít záložní systém BIOS. Rovněž všechny moderní operační systémy jako FreeBSD , Linux , macOS , Windows NT na bázi Windows NT , jako Windows 2000 , Windows XP a novější, neumožňují programům v uživatelském režimu přímý přístup k hardwaru.

Výsledkem je, že od roku 2008 se CIH stal v podstatě neškodným, přinejhorším způsoboval obtěžování infikováním spustitelných souborů a spuštěním antivirového softwaru. Jiné viry systému BIOS však zůstávají možné; protože většina domácích uživatelů Windows bez UAC systému Windows Vista/7 spouští všechny aplikace s oprávněními správce, moderní virus podobný CIH by mohl v zásadě stále získat přístup k hardwaru, aniž by nejprve musel využít exploit. Operační systém OpenBSD brání tomuto přístupu všem uživatelům a oprava grsecurity pro jádro Linuxu ve výchozím nastavení také brání tomuto přímému hardwarovému přístupu, rozdíl je v tom, že útočník vyžaduje mnohem obtížnější exploit nebo restartování počítače na úrovni jádra.

Druhý virus BIOS byla technika, kterou představil John Heasman, hlavní konzultant zabezpečení britského bezpečnostního softwaru příští generace. V roce 2006 na konferenci Black Hat Security Conference ukázal, jak zvýšit oprávnění a číst fyzickou paměť pomocí škodlivých postupů, které nahradily běžné funkce ACPI uložené ve flash paměti.

Třetím virem systému BIOS byla technika zvaná „Trvalá infekce systému BIOS“. Objevil se v roce 2009 na bezpečnostní konferenci CanSecWest ve Vancouveru a na bezpečnostní konferenci SyScan v Singapuru. Výzkumníci Anibal Sacco a Alfredo Ortega ze společnosti Core Security Technologies předvedli, jak vložit škodlivý kód do dekompresních rutin v systému BIOS, což umožňuje téměř plnou kontrolu nad PC při spuštění, a to ještě před spuštěním operačního systému. Důkaz koncepce nevyužívá chyby v implementaci systému BIOS, ale zahrnuje pouze běžné postupy blikání systému BIOS. Vyžaduje tedy fyzický přístup k počítači nebo aby byl uživatel root. Navzdory těmto požadavkům Ortega zdůraznil hluboké důsledky jeho a Saccoova objevu: "Můžeme opravit ovladač, aby upustil plně funkční rootkit . Máme dokonce malý kód, který dokáže odstranit nebo deaktivovat antivirus."

Mebromi je trojský kůň, který cílí na počítače s AwardBIOS , Microsoft Windows a antivirovým softwarem od dvou čínských společností: Rising Antivirus a Jiangmin KV Antivirus. Mebromi nainstaluje rootkit, který nakazí hlavní spouštěcí záznam .

V rozhovoru s listem 60 Minutes z prosince 2013 Deborah Plunkett, ředitelka pro zajišťování informací americké Národní bezpečnostní agentury, tvrdila, že NSA odhalila a zmařila případný útok systému BIOS ze strany cizího národního státu zaměřený na americký finanční systém. Program citoval anonymní zdroje, které tvrdily, že šlo o čínskou zápletku. Navazující články v The Guardian , The Atlantic , Wired a The Register však tvrzení NSA vyvrátily.

Novější platformy Intel mají povolenou technologii Intel Boot Guard (IBG), tato technologie zkontroluje digitální podpis systému BIOS při spuštění a veřejný klíč IBG bude začleněn do základní desky PCH . Koncoví uživatelé nemohou tuto funkci zakázat.

Alternativy a nástupci

Starší PC BIOS byl v mnoha nových počítačích nahrazen složitějším Unified Extensible Firmware Interface (UEFI). UEFI je specifikace, která nahrazuje běhové rozhraní staršího systému BIOS. UEFI bylo původně napsáno pro architekturu Intel Itanium , nyní je k dispozici pro platformy architektury x86 , x86-64 a ARM ; vývoj specifikace je řízen Unified EFI Forum , průmyslovou skupinou zvláštního zájmu . Zavádění EFI bylo podporováno pouze ve verzích Microsoft Windows podporujících GPT , linuxové jádro 2.6.1 a novější a macOS na počítačích Mac s procesorem Intel . Od roku 2014 je nový hardware PC dodáván převážně s firmwarem UEFI. Architektura zabezpečení rootkit může také zabránit systému ve spouštění vlastních softwarových změn uživatele, což činí UEFI kontroverzním vzhledem k nahrazení starší verze systému BIOS v otevřené hardwarové komunitě. Také Windows 11 vyžaduje UEFI ke spuštění.

Mezi další alternativy k funkcím „Legacy BIOS“ ve světě x86 patří coreboot a libreboot .

Některé servery a pracovní stanice používají Open Firmware (IEEE-1275) nezávislý na platformě založený na programovacím jazyce Forth ; je součástí počítačů Sun SPARC , řady RS/6000 společnosti IBM a dalších systémů PowerPC , jako jsou základní desky CHRP , spolu s OLPC XO-1 na bázi x86 .

Minimálně od roku 2015 odstranila společnost Apple starší podporu systému BIOS z počítačů MacBook Pro . Nástroj BIOS již jako takový nepodporuje starší verzi a tiskne „Starší režim není v tomto systému podporován“. V roce 2017 společnost Intel oznámila, že do roku 2020 odstraní starou podporu systému BIOS. Od roku 2019 již nové počítače s platformou Intel již starší verzi nepodporují.

Viz také

Poznámky

Reference

Další čtení

externí odkazy