2Aug

Wat doet mijn BIOS na het opstarten?

Als je computer klaar is met het opstarten en je zit vast in het zoemende besturingssysteem, is er dan nog iets te doen voor het BIOS?

De vraag van vandaag &Antwoord sessie komt naar ons met dank aan SuperUser-een onderverdeling van Stack Exchange, een community-drive groep van Q & A-websites.

De vraag

SuperUser-lezer Indrek stelt deze BIOS-gerelateerde vraag:

Ik vroeg me altijd af of het BIOS( behalve het uitvoeren van POST, het starten van de bootloader en het doorgeven van de besturing aan het besturingssysteem nadat op de aan / uit-knop is gedrukt) een doel of functie heeft terwijl desysteem draait?

Communiceert het besturingssysteem met het BIOS tijdens het gebruik en zo ja, hoe?

inderdaad? Welke functie heeft het BIOS naast zijn essentiële rol bij het opstarten van de computer?

De antwoorden

Met dank aan SuperUser medewerker Mechanical Snail, een overzicht van hoe de rol van het BIOS in de loop van de tijd is veranderd en wat het vandaag niet doet:

De rol van het BIOS

Met moderne besturingssystemen, vrijwel geen .Linus Torvalds zei naar verluidt dat het zijn taak is om "gewoon het besturingssysteem te laden en daar weg te komen".

Oudere besturingssystemen zoals MS-DOS vertrouwden voor vele taken op het BIOS( bijvoorbeeld schijftoegang) door interrupts op te roepen.

Met moderne besturingssystemen schakelt de bootloader snel over naar de 32- of 64-bits modus en voert het de OS-kernel uit. De kernel kan zijn eigen interrupt-handlers registreren, die kunnen worden aangeroepen door gebruikersruimtetoepassingen. De routines van de kernel kunnen draagbaarder zijn( omdat ze niet afhankelijk zijn van de specifieke hardware), flexibeler( OS-leveranciers kunnen ze op verzoek wijzigen in plaats van alles wat bij de hardware hoort te gebruiken), geavanceerder( ze kunnen willekeurig complexe uitvoerencode in plaats van wat er in het BIOS was geprogrammeerd) en veiliger( aangezien het besturingssysteem de toegang tot gedeelde bronnen kan regelen en kan voorkomen dat programma's elkaar in de war sturen, door zijn eigen willekeurige machtigingsschema's te implementeren).

Om te communiceren met specifieke hardware, kunnen besturingssystemen eigen stuurprogramma's laden en gebruiken. Het besturingssysteem of de applicaties hoeven dus de meeste BIOS-routines helemaal niet te gebruiken. Om veiligheidsredenen zijn BIOS-interrupts zelfs uitgeschakeld. Omdat het BIOS in 16-bit real-modus leeft, is het moeilijker om moderne besturingssystemen op te roepen.

Hoewel het gebruik van de BIOS zeer beperkt is terwijl het besturingssysteem wordt uitgevoerd, worden de functies ervan nog steeds perifeer gebruikt. Wanneer een computer bijvoorbeeld slaapt, is het besturingssysteem niet actief en valt het uiteindelijk op de firmware om de hardware in de juiste staat te zetten om het besturingssysteem te pauzeren en te hervatten. Deze toepassingen zijn over het algemeen beperkt tot ACPI-oproepen in plaats van oproepen naar de volledige BIOS-interface. ACPI is een BIOS-uitbreiding die "energiebeheer onder de controle van het besturingssysteem brengt( OSPM), in tegenstelling tot het vorige BIOS-centrale systeem, dat afhankelijk was van platformspecifieke firmware om het energiebeheer en het configuratiebeleid te bepalen".

Merk op dat officieel "BIOS" verwijst naar een bepaalde firmware-interface, maar de term wordt vaak gebruikt om te verwijzen naar computerfirmware in het algemeen. Sommige recente computers( vooral die van Apple) hebben het BIOS( sensu strictu) vervangen door UEFI, wat natuurlijk ook is wat geroepen is om deze functies te implementeren.

Zie Wikipedia voor meer informatie over hoe de rol van het BIOS in de loop van de tijd is afgenomen.

Een andere SuperUser-bijdrager, Simon Richter, geeft ons een overzicht van de dingen die het BIOS nog steeds doet:

Het BIOS en Power Management

Het BIOS biedt een aantal services aan de besturingssystemen, waarvan de meeste gerelateerd zijn aan energiebeheer:

  • modifyingde CPU- en busklokken
  • apparaten voor mainboards in- en uitschakelen
  • energiebeheer voor uitbreidingspoort
  • suspend-to-disk en suspend-to-RAM
  • event-instellingen hervatten

Suspend-to-disk wordt meestal in het besturingssysteem geïmplementeerd als besturingssysteemkan zijn status sneller herstellen( alleen de kernelstatus wordt opnieuw geladen en de programma-status wordt omgewisseld wanneer dat nodig is, wat aanzienlijk sneller is dan het volledige RAM opnieuw laden), maar de functie blijft in de specificatie.

Suspend-to-RAM kan niet door het besturingssysteem worden geïmplementeerd, omdat het afhankelijk is van het BIOS dat de RAM-initialisatie en -test overslaat, zodat het besturingssysteem een ​​API nodig heeft om het BIOS te vertellen dat het van plan is om te worden hervat met de huidige RAM-inhoud. Om deze service te bieden, vraagt ​​het BIOS het besturingssysteem om een ​​bepaald RAM-gebied intact te laten.

De interface voor het besturingssysteem voor alle BIOS-services is een stukje virtuele machinecode die moet worden uitgevoerd op een emulator en die de nodige I / O-bewerkingen in de hardware genereert. Voor suspend wordt dit over het algemeen zo geïmplementeerd dat het uitvoeren van een van de hardware-schrijfacties vervolgens een interrupt activeert, die de besturing overbrengt naar het BIOS.

Heeft u iets toe te voegen aan de uitleg? Geluid uit in de opmerkingen. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk de volledige discussiethread hier.