Čo robí BIOS po zavedení?
Akonáhle váš počítač ukončí bootovací proces a ste pevne v operačnom systéme bzučaní pozdĺž, je tam niečo, čo má BIOS robiť?
Dnešná relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, zoskupenia webových stránok typu Q & A.
Otázka
Čítačka SuperUser Indrek predstavuje túto otázku týkajúcu sa systému BIOS:
Vždy som si položil otázku, či BIOS (okrem vedenia POST, spustenia bootloaderu a prechodu ovládania do OS po stlačení tlačidla napájania) má akýkoľvek účel alebo funkciu, kým je operačný systém spustený?
Spája operačný systém s BIOSom počas behu a ak áno, ako?
Naozaj? Akú funkciu má BIOS okrem kritickej úlohy pri spustení počítača?
Odpovede
Zdvorilosť prispievateľa SuperUser Mechanical Snail, prehľad o tom, ako sa časom zmenila úloha systému BIOS a čo to robí a čo dnes nerobí:
Úloha systému BIOS
Moderné operačné systémy, prakticky žiadny. Linus Torvalds údajne uviedol, že jeho úlohou je "práve načítať operačný systém a dostať sa odtiaľto do pekla".
Staršie operačné systémy, ako MS-DOS, sa spoliehali na systém BIOS pre mnohé úlohy (napríklad prístup k disku) prostredníctvom volania prerušení.
S modernými operačnými systémami sa bootloader rýchlo prepne do 32- alebo 64-bitového režimu a spustí jadro operačného systému. Jadro môže zaregistrovať svoje vlastné manipulátory prerušenia, ktoré môžu byť vyvolané aplikáciami užívateľského priestoru. Rutiny jadra môžu byť prenosnejšie (pretože nie sú závislé od konkrétneho hardvéru), flexibilnejšie (dodávatelia OS môžu zmeniť ich na požiadanie, skôr než musieť použiť všetko, čo prišlo s hardvérom), sofistikovanejšie (môžu robiť ľubovoľne komplexné skôr než program, ktorý bol naprogramovaný do systému BIOS) a bezpečnejší (pretože systém OS môže riadiť prístup k zdieľaným zdrojom a zabrániť tomu, aby sa programy zhlukovali, implementovali svoje vlastné schémy ľubovoľných povolení).
Na interakciu s konkrétnym hardvérom môžu operačné systémy OS načítať a používať vlastné ovládače zariadení. Takže nie je potrebné, aby operačný systém alebo aplikácie nazývali väčšinu rutín BIOSu. Z bezpečnostných dôvodov sú prerušenia systému BIOS dokonca zakázané. Keďže systém BIOS žije v reálnom režime 16 bitov, je ťažšie zavolať na moderné operačné systémy.
Zatiaľ čo používanie systému BIOS je veľmi obmedzené počas prevádzky operačného systému, jeho funkcie sa stále používajú periférne. Napríklad, keď počítač spí, operačný systém nie je spustený a nakoniec klesne na firmvér, aby nastavil hardvér do správneho stavu, aby pozastavil a obnovil operačný systém. Tieto použitia sú spravidla obmedzené na ACPIcalls, nie na volania do celého rozhrania systému BIOS. ACPI je rozšírenie systému BIOS, ktoré "prináša správu napájania pod kontrolou operačného systému (OSPM), na rozdiel od predchádzajúceho systému BIOS, ktorý sa spoliehal na firmvér špecifický pre platformu na určenie správy napájania a politiky konfigurácie".
Všimnite si, že oficiálne "BIOS" odkazuje na konkrétne rozhranie firmvéru, ale termín sa bežne používa na označenie firmvéru počítača vo všeobecnosti. Niektoré najnovšie počítače (najmä Apple) nahradili systém BIOS (sensu strictu) s UEFI, čo je samozrejme tým, čo sa nazýva na implementáciu týchto funkcií.
Ďalšie informácie o tom, ako sa časom zmenila úloha systému BIOS, nájdete na stránke Wikipedia.
Ďalšie prispievateľ SuperUser, Simon Richter, nám poskytuje prehľad o veciach, ktoré BIOS stále robí:
Systém BIOS a správa napájania
Systém BIOS poskytuje niekoľko služieb pre operačné systémy, z ktorých väčšina súvisí s riadením napájania:
- modifikácia hodín CPU a zbernice
- zapnutie / vypnutie zariadení na základnej doske
- ovládanie výkonu rozširujúceho portu
- pozastaviť na disk a pozastaviť-až-RAM
- obnoviť nastavenia udalostí
Funkcia Suspend-to-disk je implementovaná v operačnom systéme väčšinu času, pretože operačný systém môže obnoviť svoj stav rýchlejšie (iba stav jadra sa opätovne načíta a stav programu sa v prípade potreby vymenil, čo je podstatne rýchlejší ako opätovné načítanie celej pamäte RAM). funkcia zostáva v špecifikácii.
Funkcia "Suspend-to-RAM" nemôže byť implementovaná operačným systémom, pretože sa spolieha na systém BIOS preskočia inicializáciu a test RAM, takže operačný systém potrebuje rozhranie API, aby povedal systému BIOS, že chce pokračovať s aktuálnym obsahom RAM. Na účely poskytovania tejto služby systém BIOS vyzýva operačný systém OS, aby nechal určitú oblasť RAM neporušená.
Rozhranie OS pre všetky služby BIOS je časť kódu virtuálneho stroja, ktorý musí byť spustený na emulátora a ktorý generuje potrebné vstupno-výstupné operácie do hardvéru. Pre pozastavenie je toto vo všeobecnosti implementované tak, že vykonanie jedného z hardwarových zápisov potom spustí prerušenie, ktoré prenáša kontrolu do systému BIOS.
Máte niečo doplniť vysvetlenie? Vyjadrite sa v komentároch. Chcete sa dozvedieť viac odpovedí od iných používateľov technickej úrovne Stack Exchange? Pozrite sa na celý diskusný príspevok tu.