Mida teevad minu BIOS pärast käivitamist?
Kui teie arvuti alglaadimisprotsessi lõpetab ja olete kindlalt selle operatsioonisüsteemi sees, on BIOSil midagi teha?
Tänane küsimuste ja vastuste seanss saabub meiega kohtades, kus on SuperUser-Stack Exchange'i alajaotus, kogukondliku draivi rühmitus Q&A veebisaitidel.
Küsimus
SuperUser lugeja Indrek esitab selle BIOSiga seotud küsimuse:
Ma olen alati mõelnud, kas BIOSil (peale POST-i käivitamise, alglaadimisseadme käivitamise ja OS-i juhtimise järeljuhtimise pärast toitenupu vajutamist) on operatsioonisüsteemi töötamise ajal mõni eesmärk või funktsioon?
Kas operatsioonisüsteem suhtleb BIOSiga töötamise ajal ja kui jah, siis kuidas?
Tõepoolest? Mis funktsiooni BIOS-il on arvuti käivitamisel lisaks oma kriitilisele rollile?
Vastused
SuperUser'i kaasaaitaja Mechanical Snaili abiga on ülevaade sellest, kuidas BIOSi roll on aja jooksul muutunud ja milline see on ja mida täna ei tehta:
BIOSi roll
Tänapäevaste operatsioonisüsteemidega, praktiliselt mitte. Linus Torvalds väidetavalt ütles, et tema ülesanne on „lihtsalt laadida OS ja saada sealt põrgu välja”.
Vanemad operatsioonisüsteemid, nagu MS-DOS, toetusid BIOS-ile paljude ülesannete (nt kettale juurdepääsu) jaoks, kutsudes katkestusi.
Tänapäevaste operatsioonisüsteemide puhul lülitub bootloader kiiresti 32- või 64-bitise režiimini ja käivitab operatsioonisüsteemi kerneli. Kernel saab registreerida oma katkestuskäitlejaid, mida saab kutsuda kasutajaruumi rakendustega. Kerneli rutiinid võivad olla kaasaskantavamad (kuna need ei sõltu konkreetsest riistvarast), paindlikumad (OS-i tarnijad võivad neid nõudmisel pigem muuta kui riistvaraga kaasas olnud), keerukamad (nad võivad täita suvaliselt keerulisi) kood, mitte BIOS-i programmeeritud versioon), ja turvalisem (kuna OS saab kontrollida juurdepääsu ühistele ressurssidele ja takistada programmide üksteise klammerdumist, rakendades oma omavolilisi lubade skeeme).
Konkreetse riistvaraga suhtlemiseks võivad OS-id laadida ja kasutada oma seadme draivereid. Seega pole OS-i või rakenduste puhul enamik BIOS-i rutiine üldse vaja. Tegelikult on turvalisuse kaalutlustel BIOS-i katkestused isegi keelatud. Kuna BIOS elab 16-bitises reaalses režiimis, on keerulisem kaasaegseid operatsioonisüsteeme kutsuda.
Kuigi BIOS-i kasutamine on operatsioonisüsteemi kasutamise ajal väga piiratud, kasutatakse selle funktsioone veel perifeerselt. Näiteks kui arvuti magab, ei tööta operatsioonisüsteem ja see jääb lõpuks püsivara juurde, et seadistada riistvara õigesse olekusse, et operatsioonisüsteemi peatada ja jätkata. Need kasutusalad piirduvad üldjuhul pigem ACPIcallidega kui täieliku BIOS-i liidese kõnedega. ACPI on BIOS-i laiendus, mis „toob toitehalduse operatsioonisüsteemi (OSPM) kontrolli all, erinevalt eelmisest BIOS-kesksüsteemist, mis tugines toitehalduse ja konfiguratsioonipoliitika kindlaksmääramisel platvormipõhisele püsivara'le”.
Pange tähele, et ametlikult tähistab BIOS konkreetset püsivara liidest, kuid seda terminit kasutatakse tavaliselt arvuti püsivara üldiselt viitamiseks. Mõned viimased arvutid (eriti Apple'i) on asendanud BIOS (sensu strictu) UEFI-ga, mis on muidugi nende funktsioonide rakendamiseks kutsutud..
Lisateavet selle kohta, kuidas BIOSi roll aja jooksul on vähenenud, vt Wikipedia.
Teine SuperUser'i toetaja Simon Richter annab meile ülevaate sellest, mida BIOS ikka veel teeb:
BIOS ja toitehaldus
BIOS pakub operatsioonisüsteemidele mitmeid teenuseid, millest enamik on seotud toitehaldusega:
- CPU ja siini kella muutmine
- põhiplaadi seadmete lubamine / keelamine
- laienduspordi võimsuse juhtimine
- peatada kettale ja peatada-RAM-i
- jätkake sündmuse seadeid
Kettale rakendamine peatatakse operatsioonisüsteemis enamasti, kuna operatsioonisüsteem saab oma olekut kiiremini taastada (ainult kerneli olek uuesti laaditakse ja programmi olek vahetub vajaduse korral, mis on oluliselt kiirem kui kogu RAMi laadimine), kuid funktsioon jääb spetsifikatsioonile.
Operatsioonisüsteemi operatsioonisüsteem ei saa rakendada RAM-i, kuna see tugineb RAM-i alglaadimise ja testimise vahele jäänud BIOS-ile, mistõttu operatsioonisüsteem vajab API-d, et öelda BIOS-ile, et ta kavatseb jätkata RAM-i praegust sisu. Selle teenuse osutamiseks palub BIOS OS-il jätta teatud RAM-ala terveks.
Kõikide BIOS-teenuste OS-i liides on virtuaalse masina koodi osa, mida tuleb käivitada emulaatoril ja mis genereerib vajalikud I / O-operatsioonid riistvarasse. Peatamiseks peatatakse see üldiselt nii, et ühe riistvara kirjutamine käivitab seejärel katkestuse, mis edastab kontrolli BIOS-ile.
Kas teil on midagi lisada selgitusele? Hääletage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Vaadake siin täielikku arutelu lõiku.