Як мій комп'ютер може перезапустити себе?
Це така загальноприйнята діяльність, що більшість з нас, ймовірно, ніколи не переставала навіть думати про це: автоматичний перезапуск. Будь то користувач чи ініційований програмою, що саме відбувається, коли комп'ютер обробляє власну потужність?
Сьогоднішня сесія запитань та відповідей приходить до нас люб'язно від SuperUser - підрозділу Stack Exchange, групування спільноти веб-сайтів з запитань та відповідей.
Питання
Читач SuperUser Сет Карнегі дивується про керування живленням комп'ютера:
Як можна перезавантажити комп'ютер? Після того, як він відключений, як він каже собі, щоб повернутися знову? Яке це програмне забезпечення може зробити це?
Як насправді? Яке поєднання програмної / апаратної магії робить це?
Відповідь
Співробітник SuperUser Jcrawfordor пропонує як стислий, так і детальний відповідь на питання, що більш ніж адекватно вирішує питання:
Занадто довгий, не прочитав відповідь: Енергетичні стани на вашому комп'ютері контролюються реалізацією ACPI (розширена конфігурація та інтерфейс живлення). Після завершення процесу вимкнення операційна система встановлює команду ACPI, яка вказує, що комп'ютер повинен перезавантажитись. У відповідь, материнська плата скидає всі компоненти за допомогою відповідних команд скидання або рядків, а потім слідує за процесом завантаження. Материнська плата ніколи не вимикається, вона лише скидає різні компоненти, а потім поводиться так, ніби натиснута кнопка живлення.
Довго і незрозуміло, але (на мій погляд) більш цікава відповідь:
М'яка сила і як вона працює
У старі часи (ну, гаразд, студентові коледжу, як я 90-ті, було давно), ми мали материнські плати AT (Advanced Technology) з Потужність AT управління. Система електроживлення AT була дуже, дуже простий. Кнопка живлення на вашому комп'ютері була апаратним перемикачем (ймовірно, в задній частині корпусу), а вхід 120vac пройшов через нього. Він фізично перетворив живлення на блок живлення і вимикав його, і коли цей вимикач знаходився в положенні "Вимкнено", все у вашому комп'ютері було повністю мертвим (це зробило батарею CMOS дуже важливою, оскільки без неї не було живлення, щоб утримати обладнання годинник). Оскільки вимикач живлення був фізичним механізмом, не було програмного засобу для включення та виключення живлення. Windows буде показувати відоме повідомлення "Тепер безпечно вимкнути комп'ютер", тому що, хоча все було припарковане і готово до вимкнення, операційній системі не вдалося перевернути перемикач живлення. Ця конфігурація іноді називалася жорсткої потужності, тому що це все апаратне забезпечення.
Сьогодні все інше, через чудеса материнських плат ATX Потужність ATX (це розширена технологія, розширена, якщо ви відстежуєте). Поряд з рядом інших досягнень (mini-DIN PS / 2, хто?), ATX принесла м'яка сила. М'яка енергія означає, що живлення комп'ютера можна керувати за допомогою програмного забезпечення. Це призвело до деяких змін імпорту:
- Живлення в режимі очікування: можливо, ви бачили роз'єм "5v SB" або "5v standby", позначений у розетках джерела живлення. The резервного живлення є лінією 5v на вашу материнську плату, яка завжди включена, навіть якщо комп'ютер вимкнено. Тому важливо, щоб при обслуговуванні сучасних комп'ютерів відключити або вимкнути жорсткий перемикач БП (якщо він присутній), тому що навіть тоді, коли він відключений, ви могли б потенційно скоротити 5v SB і пошкодити материнську плату. Це також чому CMOS батареї насправді не так важливо більше - 5v SB використовується для заміни батареї CMOS, коли блок живлення має мережеве живлення, так що акумулятор CMOS використовується тільки при відключенні комп'ютера повністю. Лінія SB 5v важливо дозволяє компонентам комп'ютера (головне BIOS та мережним адаптерам) продовжувати працювати з деяким простим програмним забезпеченням, навіть якщо комп'ютер вимкнено.
- Інтелектуальне управління живленням. Якщо ви подивитеся на роз'єм для роз'єму материнської плати (P1) вашого джерела живлення, ви помітите, що два значки, як правило, позначені PS_ON і PS_RDY. Вони означають «живлення включено» та «живлення готово». Якщо ви хочете експериментувати, візьміть блок живлення не в комп'ютер, підключіть його та обережно коротко заземлите лінію (одну з чорних проводів) до лінії PS_ON (зелений дріт). Джерело живлення помітно увімкнеться, а вентилятор повернеться вгору. Компоненти материнської плати, що відключаються від +5v SB, дійсно включають і вимикають живлення, підключаючи живлення до контакту PS_ON. Тому що є деякі конденсатори та інші компоненти в блоці живлення, які займають хвилину, щоб зарядити, напруги від основних виходів джерела живлення можуть не бути стабільними відразу після включення блоку живлення. Для цього потрібний висновок PS_RDY, він виникає, коли внутрішня логіка блоку живлення визначає, що блок живлення є «готовим» і забезпечує стабільну потужність. Материнська плата чекає, поки PS_RDY увімкнеться, щоб продовжити завантаження.
Отже, вимикач живлення більше не вмикає комп'ютер. Замість цього він підключений до основних контролерів вашої материнської плати, які виявляють, що кнопка була натиснута і виконала ряд кроків, щоб підготувати систему, включаючи освітлення PS_ON так, щоб живлення було доступним. Кнопка живлення не є єдиним способом ініціювати процес запуску, пристрої на шині розширення також можуть це зробити. Це важливо, тому що ваші мережеві адаптери Ethernet фактично залишаються, коли комп'ютер вимкнено, і шукаєте дуже специфічний пакет, який часто називають "чарівним пакетом". Якщо вони виявляють цей пакет, адресований до їх MAC-адреси, вони ініціюють процес запуску. . Так працює "Wake-on-LAN" (WoL). Годинник також може ініціювати завантаження (більшість BIOS дозволяють встановлювати час, коли комп'ютер повинен завантажуватися кожен день), а пристрої USB і FireWire можуть ініціювати завантаження, хоча я не знаю про будь-яку реалізацію цього.
Розуміння керування потужністю
Ну, я поясню, що це м'яка сила, тому що я думаю, що це цікаво (завжди ключова причина, що я поясню речі), і тому, що він дозволяє зрозуміти, як влада і стан / вимкнення комп'ютера контролюються програмним забезпеченням. У більшості сучасних комп'ютерів це програмне забезпечення є реалізацією системи Розширений інтерфейс конфігурації та живлення, або ACPI. ACPI - це стандартизована, уніфікована система, що дозволяє програмному забезпеченню контролювати енергосистему комп'ютера. Можливо, ви чули про Стани потужності ACPI. Основним механізмом керування потужністю є такі «енергетичні стани», що операційна система перемикає енергетичні режими, готуючись до перемикання (відключення / сплячі процеси, що відбуваються до відключення потужності), а потім командування материнською платою для перемикання енергопостачання . Стани енергії виглядають так:
- G0: Робота (стан «увімкнено» комп'ютера)
- G1: Сплячий (стан очікування комп'ютера, розділений на підстанції S)
- S1: живлення процесора і оперативної пам'яті залишається ввімкненим, але процесор не виконує інструкції. Периферійні пристрої вимкнено.
- S2: CPU вимкнений, RAM підтримується
- S3: Всі компоненти відключені, за винятком оперативної пам'яті та пристроїв, які запускатимуть резюме (клавіатура). Коли ви повідомляєте операційній системі “Sleep”, вона зупинить процеси і ввійде в цей режим.
- S4: сплячий режим. Абсолютно все вимкнено. Коли ви повідомляєте операційній системі Hibernate, вона зупиняє процеси, зберігає вміст оперативної пам'яті на диску, а потім переходить у цей режим.
- G2: Soft Off. це стан "вимкнено" вашого комп'ютера. Живлення вимкнено для всіх, крім пристроїв, які можуть викликати завантаження.
- G3: Механічне вимкнення.
Як насправді відбувається скидання
Ви помітите, що перезавантаження не є одним з цих станів. Так що ж насправді відбувається, коли комп'ютер перезавантажується? Відповідь може бути дивною, оскільки з точки зору управління енергоспоживанням це майже нічого. існує команду скидання ACPI. Коли ви повідомляєте вашій операційній системі про перезавантаження, він слідує за своїм звичайним процесом вимкнення (зупиняє всі ваші процеси, виконує трохи технічного обслуговування, вимикає файлові системи тощо), а потім, як остаточний крок, замість того, щоб відправляти машину до стану G2 (як це було б, якщо б ви просто сказали, що це вимкнути), він встановлює команду скидання. Це, як правило, називається "Скидання регістра", тому що, як і більшість інтерфейсів ACPI, це лише адреса, до якої потрібно записати певне значення, щоб запитувати скидання. Я наведу специфікацію 2.0 на те, що вона робить:
Необов'язковий механізм скидання ACPI визначає стандартний механізм, який забезпечує повне скидання системи. При реалізації цього механізму необхідно скинути всю систему. Це включає процесори, основну логіку, всі шини і всі периферійні пристрої. З точки зору OSPM, затвердження механізму скидання є логічним еквівалентом енергії, що обертається машиною. Після отримання контролю після скидання, OSPM виконуватиме дії, подібні до холодного завантаження.
Таким чином, коли встановлено регістр скидання, відбувається кілька послідовностей.
- Всі логіки скидаються. Це означає відправлення відповідних команд скидання на різні біти апаратного забезпечення, включаючи процесор, контролер пам'яті, периферійні контролери тощо. У більшості випадків це просто означає, що засвітиться фізичний RST-провід, як показав AndrejaKo вище.
- Комп'ютер потім завантажується. Це "виконує дії подібним чином до частини холодної завантаження". Материнська плата виконує ті ж кроки, що й у випадку, якщо б тільки блок живлення був готовий після натискання кнопки живлення.
Кінцевий ефект цих двох кроків (які фактично розбиваються на багато інших кроків) полягає в тому, що він виглядає як все, що просто завантажений комп'ютер, але влада фактично була на весь час. Це означає менше часу, необхідного для вимикання та запуску (оскільки вам не доведеться чекати, поки джерело живлення стане готовим), і важливо, що завантаження буде ініційовано відключенням операційної системи. Це означає, що інший тригер запуску не потрібно використовувати (WoL і т.д.), і дозволяє використовувати Reboot як ефективний спосіб скидання системи віддалено, коли у вас немає способу запуску завантаження.
Це була довга відповідь. Але гей, сподіваюся, ви знаєте більше про управління живленням комп'ютера зараз. Я, звичайно, дізнався деякі речі, досліджуючи це.
.