2Aug

Hvad laver min BIOS efter opstart?

Når din computer er færdig med opstartsprocessen, og du er helt inde i operativsystemet, der surrer sammen, er der noget, der skal tilbage for BIOS?

Dagens Spørgsmål &Svar session kommer til os høflighed af SuperUser-en underafdeling af Stack Exchange, en community-drive gruppering af Q & A websteder.

Spørgsmål

SuperUser-læser Indrek udgør dette BIOS-relaterede spørgsmål:

Jeg har altid spekuleret på, om BIOS'en( bortset fra at udføre POST, starter bootloader og passerer kontrol til OS'en, når man trykker på tænd / sluk-knappen) har noget formål eller en funktion, mens den opererersystemet kører?

Kommer operativsystemet til at kommunikere med BIOS under kørsel, og i bekræftende fald hvordan?

Faktisk? Hvilken funktion har BIOS ud over sin kritiske rolle i opstarten af ​​computeren?

Svarene

Hilsen over SuperUser-bidragsyderen Mechanical Snail, et overblik over, hvordan BIOS rolle har ændret sig over tid, og hvad den er og ikke gør i dag:

BIOS

s rolle Med moderne OS'er,

praktisk taget ingen .Linus Torvalds sagde angiveligt, at dens opgave er at "bare indlæse OS'et og få helvede derude".

Ældre operativsystemer som MS-DOS påberåbte BIOS til mange opgaver( fx diskadgang) ved at kalde afbrydelser.

Med moderne OS skifter bootloaderen hurtigt til 32- eller 64-bit-tilstand og udfører OS-kernen. Kernen kan registrere sine egne interrupt handlers, som kan kaldes af bruger-rum applikationer. Kernens rutiner kan være mere bærbare( da de ikke er afhængige af den specifikke hardware), mere fleksible( OS-leverandører kan ændre dem efter behov snarere end at skulle bruge det, der fulgte med hardware), mere sofistikeret( de kan udføre vilkårligt kompliceretkode i stedet for det, der blev programmeret til BIOS) og mere sikkert( da operativsystemet kan styre adgangen til delte ressourcer og forhindre programmer i at clobbering hinanden, implementere sine egne vilkårlig tilladelsesordninger).

For at interagere med specifik hardware, kan OS'er indlæse og bruge sine egne enhedsdrivere. Så det er ikke nødvendigt, at operativsystemet eller applikationerne overhovedet ringer til de fleste BIOS-rutiner. Faktisk af sikkerhedsmæssige årsager er BIOS-afbrydelser endog deaktiveret. Da BIOS lever i 16-bit rigtig tilstand, er det sværere at kalde til moderne OS.

Mens brugen af ​​BIOS er meget begrænset, mens operativsystemet kører, bruges dets funktioner stadig perifert. Når en computer f.eks. Sover, kører operativsystemet ikke, og det falder i sidste instans til firmwaren for at indstille hardware til den korrekte tilstand for at sætte pause og genoptage operativsystemet. Disse anvendelser er generelt begrænset til ACPIcalls i stedet for opkald til den fulde BIOS-grænseflade. ACPI er en BIOS-udvidelse, der "bringer strømstyring under styring af operativsystemet( OSPM), i modsætning til det tidligere BIOS-centrale system, som påberåbte platformspecifik firmware til at bestemme strømstyrings- og konfigurationspolitik".

Bemærk, at officielt "BIOS" refererer til en bestemt firmware-grænseflade, men begrebet bruges almindeligvis til at henvise til computerens firmware generelt. Nogle nyere computere( især Apple ones) har erstattet BIOS( sensu strictu) med UEFI, hvilket selvfølgelig er det, der kaldes for at implementere disse funktioner.

For mere information om, hvordan BIOS rolle er faldet over tid, se Wikipedia.

En anden SuperUser-bidragyder, Simon Richter, giver os et overblik over de ting, som BIOS stadig gør:

BIOS og strømstyring

BIOS giver en række tjenester til operativsystemerne, hvoraf de fleste er relateret til strømstyring:

  • modificererCPU og busklokke
  • aktivering / deaktivering af bundkortets enheder
  • ekspansion port strømstyring
  • suspendering til disk og suspendering til RAM
  • genoptag hændelsesindstillinger

Suspend-to-disk er implementeret i OS mest af tiden, da OSkan genoprette sin tilstand hurtigere( kun kernelstaten genindlæses, og programstatus byttes ind, når det kræves, hvilket er betydeligt hurtigere end genindlæsning af hele RAM), men funktionen forbliver i specifikationen.

Suspend-to-RAM kan ikke implementeres af operativsystemet, da det baserer sig på BIOS, der hopper over RAM-initialisering og test, så operativsystemet har brug for en API for at fortælle BIOS, at den har til hensigt at blive genoptaget med det nuværende RAM-indhold. For at kunne levere denne service beder BIOS OS'et om at forlade et bestemt RAM-område intakt.

Gränssnittet til OS til alle BIOS-tjenester er et virtuelt maskinkode, som skal køres på en emulator, og som genererer de nødvendige I / O-operationer i hardware. For suspendering implementeres dette generelt, således at udførelsen af ​​en af ​​maskinens skrivning udløser en afbrydelse, som overfører kontrol til BIOS'et.

Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.