Kaip mano kompiuteris gali iš naujo paleisti save?
Tai tokia bendra vieta, kurioje daugelis iš mūsų greičiausiai niekada nesustojo, netgi galvoti apie tai: automatinis perkraustymas. Nesvarbu, ar vartotojas ar taikymas inicijuojamas, kas tiksliai atsitinka, kai kompiuteris ciklo savo galią?
Šiandienos „Klausimų ir atsakymų“ sesijos metu mes galime pasveikinti „SuperUser“ - „Stack Exchange“ padalinį, bendruomenės diską „Q&A“ svetainių grupavimas.
Klausimas
„SuperUser“ skaitytuvas „Seth Carnegie“ klausia apie kompiuterio maitinimo valdymą:
Kaip kompiuteris gali iš naujo paleisti? Po to, kai jis išjungtas, kaip jis pats atsistato vėl? Kokia programinė įranga gali tai padaryti?
Kaip iš tikrųjų? Kokia programinės įrangos ir techninės įrangos magijos kombinacija tai daro?
Atsakymas
„SuperUser“ dalyvis „Jcrawfordor“ siūlo tiek sutrumpintą, tiek išsamų atsakymą į klausimą, kuris daugiau nei tinkamai sprendžia klausimą:
Per ilgas; neperskaitė jo atsakymo: Kompiuterio maitinimo būsenos valdomos naudojant ACPI (išplėstinę konfigūraciją ir maitinimo sąsają). Pasibaigus išjungimo procesui, jūsų operacinė sistema nustato komandą ACPI, nurodydama, kad kompiuteris turėtų paleisti iš naujo. Reaguodama į tai, pagrindinė plokštė atkuria visus komponentus naudodama atitinkamas perkrovimo komandas arba linijas, o tada seka įkrovos proceso procesą. Pagrindinė plokštė niekada neišsijungia, ji tik atkuria įvairius komponentus ir tada elgiasi taip, lyg tik paspaudus maitinimo mygtuką.
Ilgas ir ramblingas, bet (mano nuomone) įdomesnis atsakymas:
Minkšta galia ir kaip ji veikia
Senosiomis dienomis (gerai, gerai, kad koledžo studentas, kaip man, „90-asis“ buvo seniai), turėjome AT (Advanced Technology) pagrindines plokštes su AT galia valdymą. AT galios sistema buvo labai, labai paprasta. Jūsų kompiuterio maitinimo mygtukas buvo aparatinės įrangos perjungiklis (tikriausiai bylos apačioje), o jūsų 120vac įvestis teko tiesiai per ją. Ji fiziškai įjungė ir išjungė maitinimo šaltinį, o kai šis jungiklis buvo išjungtoje padėtyje, viskas jūsų kompiuteryje buvo visiškai mirusi (dėl to CMOS baterija tapo labai svarbi, nes be jos nebuvo elektros energijos tiekimui, kad būtų išlaikyta techninė įranga laikrodis). Kadangi maitinimo jungiklis buvo fizinis mechanizmas, nebuvo programinės įrangos, kaip įjungti ir išjungti maitinimą. „Windows“ parodytų garsųjį pranešimą „Dabar saugu išjungti kompiuterį“, nes, nors viskas buvo pastatyta ir pasirengusi išjungti, OS negalėjo flip maitinimo jungiklio. Ši konfigūracija kartais buvo vadinama kietoji galia, nes visa tai yra aparatinė įranga.
Šiuolaikiniai dalykai yra skirtingi, nes ATX pagrindinės plokštės ir ATX galia (tai yra pažangi technologija, jei norite stebėti). Kartu su daugeliu kitų laimėjimų (mini-DIN PS / 2, kas nors?), ATX atnešė minkšta galia. Minkštas maitinimas reiškia, kad kompiuterio maitinimas gali būti valdomas programine įranga. Tai pakeitė keletą importo pakeitimų:
- Budėjimo būsena: galbūt matėte „5v SB“ arba „5v budėjimo“ jungiklį, pažymėtą maitinimo šaltinio kištukuose. The budėjimo režimu yra 5v linija prie pagrindinės plokštės, kuri visada įjungta, net jei kompiuteris yra išjungtas. Štai kodėl svarbu atjungti arba išjungti PSU kietąjį jungiklį (jei yra), kai aptarnaujate šiuolaikinius kompiuterius, nes net ir tada, kai jis išjungtas, galbūt galite sutrumpinti 5v SB ir sugadinti pagrindinę plokštę. Štai kodėl CMOS baterijos nebėra tokios svarbios - 5v SB naudojamas pakeisti CMOS bateriją, kai maitinimo šaltinis turi maitinimo šaltinį, todėl CMOS baterija naudojama tik tada, kai visiškai atjungiate kompiuterį. 5v SB linija, svarbiausia, leidžia jūsų kompiuterio komponentams (svarbiausia - BIOS ir tinklo adapteriams) toliau naudoti paprastą programinę įrangą net tada, kai kompiuteris yra išjungtas.
- Pažangi energijos tiekimo kontrolė. Jei pažvelgsite į maitinimo šaltinio pagrindinės plokštės (P1) jungtį, pastebėsite, kad dvi smeigtukai paprastai ženklinami PS_ON ir PS_RDY. Tai yra „maitinimo šaltinis“ ir „parengtas maitinimas“. Jei norite eksperimentuoti, atjunkite maitinimo šaltinį ne kompiuteryje, įjunkite jį ir atidžiai sutrumpinkite įžeminimo liniją (vieną iš juodųjų laidų) į PS_ON liniją (žalią vielą). Maitinimo šaltinis bus įjungtas, kai ventiliatorius sukasi. Pagrindinės plokštės komponentai, išjungti iš 5V SB, iš tikrųjų įjungia ir išjungia maitinimą, prijungdami maitinimą prie PS_ON kaiščio. Kadangi maitinimo šaltinyje yra tam tikrų kondensatorių ir kitų komponentų, kurie užima šiek tiek laiko įkrauti, maitinimo šaltinio pagrindinių išėjimų įtampa iš karto po to, kai įjungiamas PSU, gali būti ne stabili. Būtent tai yra PS_RDY smeigtukas, jis įsijungia, kai maitinimo šaltinio vidinė logika nustato, kad maitinimas yra „paruoštas“ ir užtikrins stabilią galią. Pagrindinė plokštė laukia, kol bus įjungtas PS_RDY, kad būtų galima toliau paleisti.
Taigi, jūsų maitinimo jungiklis nebesukelia kompiuterio. Vietoj to, jis prijungtas prie pagrindinės plokštės pagrindinių valdiklių, kurie nustato, kad mygtukas yra paspaudžiamas, ir atlikti keletą žingsnių, kad sistema būtų parengta, įskaitant apšvietimą PS_ON, kad galia būtų prieinama. Maitinimo mygtukas nėra vienintelis būdas paleisti paleidimo procesą, taip pat gali veikti ir jūsų plėtimosi magistralės įrenginiai. Tai svarbu, nes jūsų tinklo tinklo adapteriai išlieka, kai kompiuteris išjungtas ir ieškote labai specifinio paketo, dažnai vadinamo „magiškuoju paketu“. Jei jie aptiks šį paketą, adresuotą jų MAC adresu, jie suaktyvins paleidimo procesą . Taip veikia „Wake-on-LAN“ (WoL). Laikrodis taip pat gali inicijuoti įkrovą (dauguma BIOS leidžia nustatyti laiką, kurį kompiuteris turėtų paleisti kiekvieną dieną), o USB ir „FireWire“ įrenginiai gali paleisti įkrovą, nors aš nežinau, kaip tai įvykdyta.
„Power Control“ suvokimas
Na, aš paaiškinu „Soft Power“ dalyką, nes manau, kad tai įdomu (visada svarbiausia priežastis, kodėl aš paaiškinu dalykus) ir todėl, kad ji leidžia jums suprasti, kaip kompiuterio galia ir veikimo / išjungimo būsena yra valdoma programine įranga. Daugumoje dabartinių kompiuterių ši programinė įranga yra diegimas Išplėstinė konfigūracija ir maitinimo sąsaja arba ACPI. ACPI yra standartizuota, vieninga sistema, leidžianti programinei įrangai valdyti kompiuterio maitinimo sistemą. Galbūt girdėjote apie ACPI galios būsenos. Pagrindinis galios valdymo mechanizmas yra šios „galios būsenos“, jūsų operacinė sistema perjungia maitinimo režimus, ruošdamasi jungikliui (išjungimo / užmigdymo procesai, kurie vyksta prieš išjungiant maitinimą), ir tada įjungus pagrindinę plokštę įjungti maitinimo būsenas . Galios būsenos atrodo taip:
- G0: darbas (kompiuterio „įjungta“ būsena)
- G1: miega (kompiuterio budėjimo būsenos, suskirstytos į „S“ padalinius)
- S1: įjungtas procesoriaus ir atminties maitinimas, tačiau procesorius nevykdo instrukcijų. Išoriniai įrenginiai išjungiami.
- S2: išjungtas CPU, palaikomas RAM
- S3: visi komponentai išjungiami, išskyrus RAM ir įrenginius, kurie suaktyvins atnaujinimą (klaviatūra). Kai „OS“ parodysite „Sleep“, jis sustabdys procesus ir įeis į šį režimą.
- S4: sulaikytosios veiksenos. Visiškai viskas išjungta. Kai pasakysite savo operacinei sistemai užmigdymo režimą, jis sustabdo procesus, įrašo atminties turinį į diską ir tada įeina į šį režimą.
- G2: išjungtas. tai jūsų kompiuterio „išjungta“ būsena. Maitinimas yra išjungtas viskas, išskyrus prietaisus, kurie gali paleisti įkrovą.
- G3: mechaninis išjungimas.
Kaip iš tikrųjų įvyksta atstatymas
Pastebėsite, kad perkrovimas nėra viena iš šių būsenų. Taigi, kas iš tikrųjų atsitinka, kai jūsų kompiuteris vėl įsijungia? Atsakymas gali būti nustebinantis, nes nuo galios valdymo perspektyvos beveik nieko. Yra komanda „ACPI reset“. Kai pasakysite savo operacinei sistemai, kad jis būtų paleistas iš naujo, jis seka įprastą išjungimo procesą (sustabdo visus procesus, atlieka šiek tiek priežiūros, ištrina failų sistemas ir tt), o paskui - kaip paskutinį žingsnį, o ne siunčiant įrenginį į maitinimo būseną G2 (kaip būtų, jei paprasčiausiai pasakytumėte, kad ji būtų išjungta), ji nustato komandą Reset. Tai paprastai vadinama „Reset register“, nes kaip ir dauguma ACPI sąsajos, tai tik adresas, į kurį reikia įrašyti tam tikrą vertę, kad būtų galima pareikalauti iš naujo. Cituoju 2.0 specifikaciją, ką ji daro:
Pasirenkamas ACPI atstatymo mechanizmas nurodo standartinį mechanizmą, kuris suteikia pilną sistemos atstatymą. Įgyvendinus šį mechanizmą reikia iš naujo nustatyti visą sistemą. Tai apima procesorius, pagrindinę logiką, visus autobusus ir visus išorinius įrenginius. Iš OSPM perspektyvos, atkurimo mechanizmo patvirtinimas yra logiškas ekvivalentas įrenginio galios ciklui. Po to, kai iš naujo nustatoma kontrolė, OSPM atliks tokius veiksmus kaip šaltas įkroviklis.
Taigi, kai nustatomas naujo registro nustatymas, viskas vyksta nuosekliai.
- Visa logika iš naujo nustatoma. Tai reiškia, kad atitinkamos atstatymo komandos siunčiamos įvairiems aparatūros bitams, įskaitant CPU, atminties valdiklį, periferinius valdiklius ir tt Daugeliu atvejų tai tiesiog reiškia fizinio RST laido apšvietimą, nes AndrejaKo parodė aukščiau.
- Tada kompiuteris įkraunamas. Tai yra „atlikti panašius veiksmus į šaltojo įkrovos“ dalį. Pagrindinė plokštė atlieka tuos pačius veiksmus, kaip ir tada, kai maitinimo mygtukas būtų paspaudęs.
Galutinis šių dviejų žingsnių poveikis (kuris iš tikrųjų suskirsto į daug daugiau žingsnių) yra tas, kad jis atrodo kaip viskas, kaip kompiuteris tik įkrovęs, bet galia buvo iš tikrųjų visą laiką. Tai reiškia, kad reikia mažiau laiko uždaryti ir paleisti (nes jums nereikia laukti, kol bus pasirengęs maitinti), ir svarbiausia leidžia paleisti įkrovos operacinę sistemą. Tai reiškia, kad nereikia naudoti kito paleidimo paleidimo (WoL ir tt), ir leidžia naudoti „Reboot“ kaip veiksmingą būdą atkurti sistemą nuotoliniu būdu, kai neturite būdų paleisti įkrovą.
Tai buvo ilgas atsakymas. Deja, tikiuosi, kad dabar daugiau sužinosite apie kompiuterio maitinimo valdymą. Aš tikrai sužinojau keletą dalykų, tiriančių šį klausimą.
.