2Aug

Vad gör mina BIOS efter uppstart?

När datorn slutför startprocessen och du är ordentligt inne i operativsystemet som surrar med, finns det något kvar för BIOS att göra?

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-drive-gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsaren Indrek ställer den här BIOS-relaterade frågan:

Jag undrade alltid om BIOS( förutom att utföra POST, startar startladdaren och passerar kontrollen till operativsystemet när man trycker på strömbrytaren) har något syfte eller en funktion medan den fungerarsystemet körs?

Kommunicerar operativsystemet med BIOS under körning och i så fall hur?

faktiskt? Vilken funktion har BIOS förutom sin kritiska roll vid datorns start?

Svaren

Courtesy of SuperUser-bidragsgivaren Mechanical Snail, en översikt över hur BIOS roll har förändrats över tiden och vad den är och gör inte idag:

BIOS

s roll Med moderna operativsystem, praktiskt taget ingen .Linus Torvalds sade enligt uppgift att sin uppgift är att "bara ladda operativsystemet och få helvete ut där".

Äldre operativsystem som MS-DOS förlitade sig på BIOS för många uppgifter( t.ex. diskåtkomst), genom att ringa avbrott.

Med moderna operativsystem växlar startläsaren snabbt till 32- eller 64-bitarsläge och kör OS-kärnan. Kärnan kan registrera sina egna avbrottshanterare, som kan kallas av användarutrymmeapplikationer. Kärnans rutiner kan vara mer bärbara( eftersom de inte är beroende av den specifika hårdvaran), mer flexibla( OS-leverantörer kan ändra dem på begäran istället för att behöva använda allt som hängde med hårdvaran), mer sofistikerade( de kan utföra vederbörligen kompliceradekod i stället för det som programmerades i BIOS) och säkrare( eftersom operativsystemet kan styra åtkomst till delade resurser och förhindra att program klarar av varandra, genomför sina egna godtyckliga behörighetssystem).

För att interagera med specifik maskinvara kan operativsystem ladda och använda egna drivrutiner. Så det är inte nödvändigt för operativsystemet eller programmen att ringa de flesta BIOS-rutiner alls. I själva verket av säkerhetsskäl är BIOS-avbrott även avstängda. Eftersom BIOS lever i 16-bitars verkligt läge är det svårare att ringa till moderna operativsystem.

Även om användningen av BIOS är mycket begränsad när operativsystemet körs, används dess funktioner fortfarande perifert. Till exempel, när en dator sover, körs operativsystemet inte och det faller slutligen till firmware för att ställa in maskinvaran till rätt tillstånd för att pausa och återuppta operativsystemet. Dessa användningar är i allmänhet begränsade till ACPIcalls snarare än samtal till hela BIOS-gränssnittet. ACPI är en BIOS-förlängning som "ger strömhantering under operativsystemets styrning( OSPM), i motsats till det tidigare BIOS-centrala systemet, som förlitade sig på plattformsspecifik firmware för att bestämma strömhantering och konfigurationspolicy".

Observera att officiellt "BIOS" refererar till ett visst firmware gränssnitt, men termen används vanligen för att referera till datormaskinvaror i allmänhet. Några nya datorer( särskilt Apple-enheter) har ersatt BIOS( sensu strictu) med UEFI, vilket givetvis är det som kallas för att implementera dessa funktioner.

För mer information om hur BIOS roll har minskat över tiden, se Wikipedia.

En annan SuperUser-bidragsgivare, Simon Richter, ger oss en översikt över de saker som BIOS fortfarande gör:

BIOS och strömhantering

BIOS tillhandahåller ett antal tjänster till operativsystemen, varav de flesta är relaterade till strömhantering:

  • modifieraCPU- och busklockor
  • möjliggör / inaktiverar moderkortet
  • Expansionsportens strömstyrning
  • Suspend-to-Disk och Suspend-to-RAM
  • Återuppta händelseinställningar

Suspend-to-Disk implementeras i OS mestadels då OSkan återställa sitt tillstånd snabbare( endast kernelstaten laddas om och programstatus byts in när det behövs, vilket är betydligt snabbare än att ladda hela RAM), men funktionen finns kvar i specifikationen.

Suspend-to-RAM kan inte implementeras av operativsystemet, eftersom det bygger på BIOS som hoppar över RAM-initiering och test, så operativsystemet behöver ett API för att berätta för BIOS att den avser att återupptas med det aktuella RAM-innehållet. För att tillhandahålla denna tjänst frågar BIOS operativsystemet att lämna ett visst RAM-område intakt.

Gränssnittet för operativsystemet för alla BIOS-tjänster är en del virtuell maskinkod som måste köras på en emulator, och som genererar nödvändiga I / O-operationer i hårdvaran. För uppskjutning implementeras det generellt så att körning av en av maskinvarorna skriver utlöser ett avbrott, vilket överför kontrollen till BIOS.

Har något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.