Wat doet mijn BIOS na het opstarten?
Als uw computer klaar is met opstarten en u zit vast in het zoemende besturingssysteem, is er dan nog iets dat het BIOS kan doen?
De Question & Answer-sessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een community-drive groep van Q & A-websites.
De vraag
SuperUser-lezer Indrek stelt deze BIOS-gerelateerde vraag:
Ik heb me altijd afgevraagd 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 het besturingssysteem actief is?
Communiceert het besturingssysteem met het BIOS tijdens het uitvoeren 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-bijdrager Mechanical Snail, een overzicht van hoe de rol van het BIOS in de loop van de tijd is veranderd en wat het is 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 OS 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 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 uitvoeren code in plaats van wat in het BIOS was geprogrammeerd), en veiliger (aangezien het besturingssysteem de toegang tot gedeelde bronnen kan regelen en kan voorkomen dat programma's elkaar afhandelen, door het implementeren van eigen arbitraire machtigingsschema's).
Om te communiceren met specifieke hardware, kunnen besturingssystemen hun eigen apparaatstuurprogramma's laden en gebruiken. Het besturingssysteem of de applicaties hoeven dus de meeste BIOS-routines helemaal niet te bellen. 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-extensie die "energiebeheer onder controle van het besturingssysteem brengt (OSPM), in tegenstelling tot het vorige BIOS-centrale systeem, dat afhankelijk was van platformspecifieke firmware om energiebeheer en 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 is wat is geroepen 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 energiebeheer
Het BIOS biedt een aantal services voor de besturingssystemen, waarvan de meeste gerelateerd zijn aan energiebeheer:
- het aanpassen van de CPU- en busklokken
- het inschakelen / uitschakelen van mainboard-apparaten
- vermogensregeling voor expansiepoorten
- suspend-to-disk en suspend-to-RAM
- hervat de instellingen van het evenement
Suspend-to-disk wordt meestal in het besturingssysteem geïmplementeerd, omdat het besturingssysteem zijn status sneller kan herstellen (alleen de kernelstatus wordt opnieuw geladen en de status van het programma 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 benodigde I / O-bewerkingen in de hardware genereert. Voor onderbreken wordt dit over het algemeen geïmplementeerd zodat het uitvoeren van een van de hardware-schrijfacties vervolgens een interrupt activeert, waardoor de besturing wordt overgebracht naar het BIOS.
Heb je iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk hier de volledige discussiethread.