Hjemmeside » hvordan » Hva gjør BIOS-maskinen etter oppstart?

    Hva gjør BIOS-maskinen etter oppstart?

    Når datamaskinen har fullført oppstartsprosessen, og du er fast inne i operativsystemet som drar sammen, er det noe igjen for BIOS å gjøre?

    Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en gruppedriving av Q & A-nettsider.

    Spørsmålet

    SuperUser-leser Indrek utgjør dette BIOS-relaterte spørsmålet:

    Jeg lurte alltid på om BIOS (bortsett fra å utføre POST, start bootloader og passerer kontroll til OS når man trykker på strømknappen) har noe formål eller funksjon mens operativsystemet kjører?

    Operativsystemet kommuniserer med BIOS mens du kjører, og i så fall hvordan?

    Faktisk? Hvilken funksjon har BIOS i tillegg til sin kritiske rolle i oppstart av datamaskinen?

    Svarene

    Hilsen av SuperUser-bidragsyteren Mechanical Snail, en oversikt over hvordan BIOS rolle har endret seg over tid og hva den er og ikke gjør i dag: 

    BIOS rolle

    Med moderne OS, praktisk talt ingen. Linus Torvalds sier angivelig at oppgaven er å "bare laste ned operativsystemet og få helvete der ute".

    Eldre operativsystemer som MS-DOS stod på BIOS for mange oppgaver (for eksempel disktilgang) ved å ringe avbrudd.

    Med moderne OS, bytter bootloader raskt til 32- eller 64-biters modus og kjører OS-kjernen. Kjernen kan registrere sine egne avbruddshåndteringsprogrammer, som kan kalles ved brukerspaceapplikasjoner. Kjernens rutiner kan være mer bærbare (siden de ikke er avhengige av den spesifikke maskinvaren), mer fleksibel (OS-leverandører kan endre dem på etterspørsel i stedet for å måtte bruke det som kom med maskinvaren), mer sofistikert (de kan utføre vilkårlig kompleks kode i stedet for det som ble programmert inn i BIOS), og sikrere (siden operativsystemet kan styre tilgangen til delte ressurser og forhindre at programmer klyver hverandre, implementerer sine egne vilkårlige tillatelser).

    Hvis du vil samhandle med spesifikk maskinvare, kan operativsystemer laste inn og bruke sine egne enhetsdrivere. Så det er ikke nødvendig for operativsystemet eller programmene å ringe de fleste BIOS rutiner i det hele tatt. Faktisk av sikkerhetshensyn er BIOS interrupts selv deaktivert. Siden BIOS lever i 16-biters ekte modus, er det vanskeligere å ringe til moderne OS.

    Mens bruk av BIOS er svært begrenset mens operativsystemet kjører, er dets funksjoner fortsatt perifert brukt. For eksempel, når en datamaskin sover, går operativsystemet ikke, og det faller til slutt til fastvaren for å stille maskinvaren til riktig tilstand for å stoppe og gjenoppta operativsystemet. Disse bruksområdene er vanligvis begrenset til ACPIcalls i stedet for samtaler til hele BIOS-grensesnittet. ACPI er en BIOS-utvidelse som "bringer strømstyring under styring av operativsystemet (OSPM), i motsetning til det tidligere BIOS-sentrale systemet, som stod på plattformspesifikk fastvare for å bestemme strømstyring og konfigurasjonspolitikk".

    Merk at offisielt "BIOS" refererer til et bestemt fastvaregrensesnitt, men begrepet brukes vanligvis til å referere til datamaskinens fastvare generelt. Noen nyere datamaskiner (spesielt Apple) har erstattet BIOS (sensu strictu) med UEFI, som selvsagt er det som kalles for å implementere disse funksjonene.

    For mer informasjon om hvordan BIOS rolle har redusert over tid, se Wikipedia.

    En annen SuperUser-bidragsyter, Simon Richter, gir oss en oversikt over de tingene BIOS fortsatt gjør: 

    BIOS og strømstyring

    BIOS gir en rekke tjenester til operativsystemene, hvorav de fleste er relatert til strømstyring:

    • endre CPU og buss klokker
    • aktivere / deaktivere hovedkortsenheter
    • ekspansjonsport strømstyring
    • suspend-to-disk og suspend-to-RAM
    • gjenoppta hendelsesinnstillinger

    Suspend-to-disk er implementert i OS mesteparten av tiden, da operativsystemet kan gjenopprette tilstanden sin raskere (bare kjerne-tilstanden blir lastet opp og programstatus byttet inn når det kreves, hvilket er betydelig raskere enn å laste hele RAM-en), men funksjonen forblir i spesifikasjonen.

    Suspend-to-RAM kan ikke implementeres av operativsystemet, da det er avhengig av BIOS som hopper over RAM-initialisering og test, så operativsystemet trenger en API for å fortelle BIOS at den har til hensikt å gjenopptas med det nåværende RAM-innholdet. For å kunne levere denne tjenesten, ber BIOS OS å forlate et bestemt RAM-område intakt.

    Grensesnittet for operativsystemet for alle BIOS-tjenester er et stykke virtuell maskinkode som må kjøres på en emulator, og som genererer nødvendige I / O-operasjoner i maskinvaren. For suspendering er dette vanligvis implementert slik at utførelsen av en av maskinvaren skriver, utløser en avbrudd, som overfører kontroll til BIOS.


    Har du noe å legge til forklaringen? Lyde av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.