Det er en så vanlig stedaktivitet at de fleste av oss sannsynligvis aldri har stoppet for å engang tenke på det: automatisk omstart. Enten bruker eller applikasjonsinitiert, hva skjer egentlig når datamaskinen sykler sin egen kraft?
Dagens spørsmål og svar-økt kommer til oss med tillatelse fra SuperUser - en underavdeling av Stack Exchange, en grupperingsgruppering av spørsmål og svar-nettsteder.
Spørsmålet
SuperUser-leser Seth Carnegie lurer på strømstyring på datamaskiner:
Hvordan kan en datamaskin starte seg selv på nytt? Når den er av, hvordan forteller den seg selv å komme tilbake igjen? Hva slags programvare er det som kan gjøre dette?
Hvor virkelig? Hvilken kombinasjon av magi av programvare / maskinvare får det til å skje?
Svaret
SuperUser-bidragsyter Jcrawfordor tilbyr både et sammendratt og detaljert svar på spørsmålet som mer enn tilstrekkelig adresserer spørsmålet:
For lenge; leste ikke svaret: Strømtilstander på datamaskinen din styres av en implementering av ACPI (avansert konfigurasjon og strømgrensesnitt). På slutten av en avslutningsprosess setter operativsystemet en ACPI-kommando som indikerer at datamaskinen skal starte på nytt. Som svar tilbakestiller hovedkortet alle komponentene ved hjelp av deres respektive tilbakestillingskommandoer eller linjer, og følger deretter bootstrap-prosessen. Hovedkortet slås faktisk aldri av, det tilbakestiller bare forskjellige komponenter og oppfører seg som om av / på-knappen nettopp har blitt trykket.
Langt og vandrende, men (etter min mening) mer interessant svar:
Myk kraft og hvordan det fungerer
I gamle dager (vel, ok, for en høyskolestudent som meg var 90-tallet for lenge siden) hadde vi AT-kort (Advanced Technology) med PÅ kraft ledelse. AT-kraftsystemet var veldig, veldig enkelt. Strømknappen på datamaskinen din var en maskinvarebryter (sannsynligvis på baksiden av saken) og 120vac-inngangen din gikk rett gjennom den. Det slo strømmen til strømforsyningen fysisk på og av, og da denne bryteren var i Av-posisjon, var alt på datamaskinen din helt død (dette gjorde CMOS-batteriet veldig viktig, for uten det var det ingen strømforsyning for å holde maskinvaren klokken tikker). Fordi strømbryteren var en fysisk mekanisme, var det ingen programvaremåte å slå strømmen på og av. Windows viser den berømte meldingen "Det er nå trygt å slå av datamaskinen" fordi selv om alt var parkert og klart til å slå seg av, var det ikke mulig for operativsystemet å snu strømbryteren. Denne konfigurasjonen ble noen ganger referert til som hard kraft , fordi alt er maskinvare.
I dag er ting annerledes på grunn av underverkene til ATX hovedkort og ATX-kraft (det er Advanced Technology eXtended hvis du holder styr på). Sammen med en rekke andre fremskritt (mini-DIN PS / 2, noen?), Brakte ATX myk makt . Myk kraft betyr at strøm til datamaskinen kan styres av programvare. Dette medførte noen få importendringer:
- Standby-strøm: du har kanskje sett en “5v SB” eller “5v standby” -kontakt merket i strømforsyningen. De standby strømforsyning er en 5v-linje til hovedkortet som alltid er på, selv når datamaskinen er slått av. Det er derfor det er viktig å koble fra eller slå av en PSU-hardbryter (hvis den finnes) når du betjener moderne datamaskiner, for selv når den er av, kan du potensielt kortslutte 5v SB og skade hovedkortet. Dette er også grunnen til at CMOS-batterier ikke lenger er like viktige - 5v SB brukes til å erstatte CMOS-batteriet når strømforsyningen har strøm, så CMOS-batteriet brukes bare når du kobler fra datamaskinen helt. 5v SB-linjen lar viktigere komponenter på datamaskinen din (viktigst av alt BIOS og nettverkskortene) fortsette å kjøre litt enkel programvare, selv når datamaskinen er slått av.
- Intelligent strømforsyningskontroll. Hvis du ser på en pinout for strømforsyningens hovedkort (P1) -kontakt, vil du merke to pinner som vanligvis er merket PS_ON og PS_RDY . Disse står for "strømforsyning på" og "strømforsyning klar". Hvis du vil eksperimentere, ta en strømforsyning som ikke er i en datamaskin, koble den til og kortslutt en jordledning (en av de svarte ledningene) til PS_ON-linjen (den grønne ledningen). Strømforsyningen vil synlig slås på, med viften spinnende opp. Komponentene på hovedkortet som går av + 5v SB slår faktisk strømforsyningen din på og av ved å koble strøm til PS_ON-pinnen. Fordi det er noen kondensatorer og andre komponenter i strømforsyningen som tar et øyeblikk å lade opp, kan det hende at spenningene fra strømforsyningens hovedutganger ikke er stabile umiddelbart etter at strømforsyningen slås på. Dette er hva PS_RDY-pinnen er for, den tennes når strømforsyningens interne logikk bestemmer at strømforsyningen er "klar" og vil gi stabil strøm. Hovedkortet venter til PS_RDY er på for å fortsette oppstart.
Så strømbryteren din "slår ikke" datamaskinen på lenger. I stedet er den koblet til hovedkortets grunnleggende kontrollere, som oppdager at knappen har blitt trykket og utfører en rekke trinn for å klargjøre systemet, inkludert å lyse opp PS_ON slik at strøm vil være tilgjengelig. Av / på-knappen er ikke den eneste måten å utløse oppstartsprosessen, enheter på utvidelsesbussen din kan også gjøre det. Dette er viktig fordi Ethernet-nettverkskortene dine forblir på når datamaskinen din er slått av og ser etter en veldig spesifikk pakke som ofte kalles "Magisk pakke." Hvis de oppdager denne pakken adressert til MAC-adressen, vil de utløse oppstartsprosessen. Slik fungerer “Wake-on-LAN” (WoL). Klokken kan også starte en oppstart (de fleste BIOS lar deg angi en tid som datamaskinen skal starte opp hver dag), og USB- og FireWire-enheter kan utløse en oppstart, selv om jeg ikke er klar over noen implementering av dette.
Forstå strømkontroll
Vel, jeg forklarer Soft Power-tingen både fordi jeg synes det er interessant (alltid en viktig årsak til at jeg forklarer ting), og fordi det lar deg forstå hvordan strømmen og tilstanden til å kjøre / av datamaskinen din styres av programvare. I de fleste nåværende datamaskiner er dette programvaresystemet en implementering av Avansert konfigurasjon og strømgrensesnitt, eller ACPI . ACPI er et standardisert, enhetlig system som lar programvare kontrollere datamaskinens kraftsystem. Du har kanskje hørt om ACPI-strømtilstander . Den grunnleggende mekanismen for strømstyring er disse "strømtilstandene", operativsystemet ditt bytter gjennom strømmodus ved å forberede seg på bryteren (avstengning / dvalemodusprosesser som oppstår før strømmen faktisk slår seg av), og deretter befaler hovedkortet å bytte strømtilstand. . Kraftstatene ser slik ut:
- G0: Arbeider (datamaskinens "på" -status)
-
G1: Sleeping (datamaskinens standbytilstand, delt inn i S-understatene)
- S1: strøm til CPU og RAM forblir på, men CPU utfører ikke instruksjoner. Eksterne enheter er slått av.
- S2: CPU slått av, RAM opprettholdt
- S3: Alle komponenter er slått av bortsett fra RAM og enheter som vil utløse et CV (tastatur). Når du ber operativsystemet ditt om å "sove", vil det stoppe prosessene og deretter gå inn i denne modusen.
- S4: Dvalemodus. Absolutt alt er slått av. Når du ber operativsystemet om i dvalemodus, stopper det prosesser, lagrer innholdet på RAM på disken og går deretter inn i denne modusen.
- G2: Soft Off. dette er datamaskinens "av" -tilstand. Strømmen er av for alt bortsett fra enheter som kan utløse en oppstart.
- G3: Mekanisk av.
Hvordan tilbakestilling faktisk skjer
Du vil merke at omstart ikke er en av disse statene. Så hva skjer egentlig når datamaskinen din når den starter på nytt? Svaret kan være overraskende, fordi det fra et strømstyringsperspektiv er nesten ingenting . Det er en ACPI-tilbakestillingskommando . Når du ber operativsystemet om å starte på nytt, følger det den normale avslutningsprosessen (stopper alle prosessene dine, utfører litt vedlikehold, demonterer filsystemene osv.), Og deretter som et siste trinn, i stedet for å sende maskinen til strømtilstand G2 (som det ville gjort hvis du bare hadde bedt den om å slå av), setter den tilbakestillingskommandoen. Dette blir vanligvis referert til som "Tilbakestill register", fordi det som det meste av ACPI-grensesnittet bare er en adresse som en spesifikk verdi skal skrives til for å be om tilbakestilling. Jeg siterer 2.0-spesifikasjonen på hva den gjør:
Den valgfrie ACPI-tilbakestillingsmekanismen spesifiserer en standardmekanisme som gir en fullstendig tilbakestilling av systemet. Når den er implementert, må denne mekanismen tilbakestille hele systemet. Dette inkluderer prosessorer, kjernelogikk, alle busser og alle eksterne enheter. Fra et OSPM-perspektiv er det å hevde tilbakestillingsmekanismen det logiske tilsvaret til å sykle maskinen. Etter å ha fått kontroll etter en tilbakestilling, vil OSPM utføre handlinger på samme måte som en kaldstart.
Så når tilbakestillingsregisteret er satt, skjer det noen få ting i rekkefølge.
- All logikk tilbakestilles. Dette betyr at du sender de respektive tilbakestillingskommandoene til forskjellige maskinvarebiter, inkludert CPU, minnekontroller, perifere kontrollere osv. I de fleste tilfeller betyr dette ganske enkelt å lyse opp en fysisk RST-ledning, slik AndrejaKo viste ovenfor.
- Datamaskinen startes deretter opp. Dette er delen "Utfør handlinger på samme måte som en kaldstart". Hovedkortet utfører de samme trinnene som det ville gjort hvis strømforsyningen nettopp hadde blitt klar etter at strømknappen ble trykket på.
Slutteffekten av disse to trinnene (som faktisk bryter ned til mange flere trinn) er at det ser ut til alt akkurat som datamaskinen nettopp startet, men strømmen var faktisk på hele tiden. Dette betyr mindre tid som kreves for å slå av og starte opp (siden du ikke trenger å vente på at strømforsyningen skal være klar), og viktigere er at oppstart kan startes av at operativsystemet slås av. Dette betyr at en annen oppstartsutløser ikke trenger å brukes (WoL etc), og lar deg bruke Reboot som en effektiv måte å tilbakestille systemet eksternt, når du ikke har en måte å utløse oppstart på.
Det var et langt svar. Men hei, forhåpentligvis vet du mer om datamaskinens strømstyring nå. Jeg lærte absolutt noen ting å undersøke dette.
Har du noe å legge til forklaringen? Hør av i kommentarene. Vil du lese flere svar fra andre teknologikyndige Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her .