Co dělá BIOS po zavedení?
Jakmile váš počítač dokončí zaváděcí proces a jste pevně uvnitř operačního systému bzučení, je něco, co BIOS dělá?
Dnešní zasedání Otázky a odpovědi se k nám přichází s laskavým svolením SuperUser - subdivize Stack Exchange, seskupení webových stránek Q & A.
Otázka
Čtečka zařízení SuperUser Indrek představuje tuto otázku týkající se systému BIOS:
Vždycky jsem přemýšlel, zda BIOS (kromě vedení POST, spuštění bootloaderu a předávání ovládacího prvku do operačního systému po stisknutí tlačítka napájení) má nějaký účel nebo funkci, když je operační systém spuštěn?
Operační systém komunikuje s BIOSem při běhu a pokud ano, jak?
Vskutku? Jakou funkci má BIOS vedle své rozhodující role při spuštění počítače?
Odpovědi
S laskavým svolením přispěvatele služby SuperUser Mechanical Snail, přehled o tom, jak se role BIOSu časem změnila a co to je a co nedělá dnes:
Úloha systému BIOS
S moderními operačními systémy, prakticky žádný. Linus Torvalds údajně řekl, že jeho úkolem je "stačí načíst systém OS a dostat se z toho do pekla".
Starší operační systémy, jako je systém MS-DOS, používaly systém BIOS pro mnoho úkolů (např. Přístup k disku) voláním přerušení.
Díky moderním operačním systémům se bootloader rychle přepne do 32- nebo 64bitového režimu a spustí jádro operačního systému. Jádro může zaregistrovat své vlastní obslužné programy přerušení, které mohou být volány aplikací uživatelského prostoru. Rutiny jádra mohou být přenosnější (protože nezávisí na konkrétním hardwaru), flexibilnější (dodavatelé OS je mohou změnit na požádání, než aby museli používat vše, co přišlo s hardwarem), složitější (mohou spouštět libovolně komplexní kód, než který byl naprogramován do systému BIOS) a bezpečnější (protože systém OS může řídit přístup ke sdíleným zdrojům a zabránit tomu, aby se programy zužovaly a implementovaly své vlastní schémata libovolných oprávnění).
K interakci s konkrétním hardwarem mohou operační systémy načíst a používat vlastní ovladače zařízení. Není tedy třeba, aby operační systém nebo aplikace volaly většinu rutin BIOSu. Z bezpečnostních důvodů jsou přerušení systému BIOS dokonce zakázány. Protože BIOS žije v 16bitovém reálném režimu, je těžší zavolat na moderní operační systémy.
Během používání systému BIOS je systém BIOS velmi omezen, jeho funkce jsou stále periferně využívány. Například, když počítač spí, operační systém není spuštěn a nakonec klesne na firmware, aby hardware nastavil do správného stavu, aby pozastavil a obnovil operační systém. Tato použití jsou zpravidla omezena na volání ACPIcalls než volání na úplné rozhraní BIOSu. ACPI je rozšíření systému BIOS, které "přináší správu napájení pod operačním systémem (OSPM), na rozdíl od předchozího systému BIOS, který se spoléhal na firmware specifické pro platformu, který určuje politiku správy a konfigurace napájení".
Všimněte si, že oficiálně "BIOS" odkazuje na konkrétní firmware rozhraní, ale termín je běžně používán odkazovat se na firmware počítače obecně. Některé nedávné počítače (zejména Apple) nahradily systém BIOS (sensu strictu) s UEFI, což je samozřejmě také, co se nazývá implementovat tyto funkce.
Další informace o tom, jak se role systému BIOS časem zmenšuje, naleznete na webu Wikipedia.
Další přispěvatel SuperUser, Simon Richter, nám poskytuje přehled o tom, co BIOS stále dělá:
Systém BIOS a správa napájení
Systém BIOS poskytuje řadu služeb operačním systémům, z nichž většina se týká správy napájení:
- změna hodin CPU a sběrnic
- zapnutí / vypnutí zařízení základní desky
- řízení výkonu rozšiřujícího portu
- pozastavit na disk a pozastavit-až-RAM
- obnovit nastavení události
Suspend-to-disk je implementován v operačním systému většinu času, protože operační systém může obnovit svůj stav rychleji (pouze stav jádra je znovu načten a programový stav je v případě potřeby vyměněn, což je podstatně rychlejší než obnovení celé paměti RAM), ale funkce zůstává ve specifikaci.
Funkce Suspend-to-RAM nemůže být implementována operačním systémem, protože se spoléhá na systém BIOS, který přeskočí inicializaci a testování paměti RAM, takže OS potřebuje rozhraní API pro informování systému BIOS o tom, že má v úmyslu obnovit aktuální obsah RAM. Za účelem poskytování této služby systém BIOS vyzývá operační systém, aby nechal určitou oblast paměti RAM neporušenou.
Rozhraní pro systém OS pro všechny služby BIOS je kód virtuálního stroje, který musí být spuštěn na emulátoru a který generuje nezbytné vstupně-výstupní operace do hardwaru. Pro pozastavení je toto zpravidla implementováno tak, že spuštění jedné z hardwarových zápisů pak spustí přerušení, které přenáší řízení do systému BIOS.
Musíte něco přidat k vysvětlení? Vypadněte v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.