Hjemmeside » hvordan » Hvad laver min BIOS efter opstart?

    Hvad laver min BIOS efter opstart?

    Når din computer er færdig med opstartsprocessen, og du er fast inde i operativsystemet, der siver sammen, er der noget, der er tilbage for BIOS'en at gøre?

    Dagens Spørgsmål og Svar session kommer til os med venlig hilsen af ​​SuperUser-en underafdeling af Stack Exchange, en community-drive gruppering af Q & A websteder.

    Spørgsmålet

    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, start bootloaderen og passerer kontrol til OS'en, når man trykker på tænd / sluk-knappen) har noget formål eller en funktion, mens operativsystemet kører?

    Opererer operativsystemet med BIOS under kørsel, og i bekræftende fald hvordan?

    Ja? 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 rolle

    Med moderne OS, praktisk taget ingen. Linus Torvalds sagde angiveligt sin opgave er at "bare indlæse OS og få helvede ud derfra".

    Æ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 i stedet for at bruge det, der fulgte med hardware), mere sofistikeret (de kan udføre vilkårligt komplicerede kode 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 operativsystemer indlæse og bruge sine egne enhedsdrivere. Så det er ikke nødvendigt for OS eller applikationer at ringe til de fleste BIOS-rutiner. Faktisk af sikkerhedsmæssige årsager er BIOS-afbrydelser endda deaktiveret. Da BIOS lever i 16-bit rigtig tilstand, er det sværere at kalde til moderne OS.

    Mens brug af BIOS er meget begrænset, mens OS kører, er dets funktioner stadig perifert anvendt. Når en computer f.eks. Sover, kører operativsystemet ikke, og det falder i sidste ende til firmwaren for at indstille hardwareen 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 almindeligt til at referere 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 leverer en række tjenester til operativsystemerne, hvoraf de fleste er relateret til strømstyring:

    • modifikation af CPU og bus ure
    • aktivering / deaktivering af bundkort enheder
    • ekspansionsport strømstyring
    • suspendere til disk og suspendere til RAM
    • genoptag hændelsesindstillinger

    Suspension til disk er implementeret i OS mest af tiden, da OS kan genoprette sin tilstand hurtigere (kun kernel tilstand 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ænsefladen til operativsystemet til alle BIOS-tjenester er et virtuelt maskinkode, der skal køres på en emulator, og som genererer de nødvendige I / O-operationer i hardwaren. For suspendering implementeres dette generelt, således at udførelsen af ​​en af ​​hardwaren skriver, udløser en afbrydelse, som overfører kontrol til BIOS'en.


    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.