Как перезагружается компьютер?

Как перезагрузить компьютер? После того, как он выключен, как он говорит себе, чтобы вернуться снова? Какая программа может это сделать?

485
задан njallam 2011-06-08 23:04:08
источник

7 ответов

tl; dr: состояния питания компьютера управляются реализацией ACPI (Advanced configuration and power interface). В конце процесса завершения работы операционная система задает команду ACPI, указывающую, что компьютер должен перезагрузиться. В ответ на это материнская плата сбрасывает все компоненты, используя соответствующие команды или линии сброса, а затем следует за процессом загрузки. Материнская плата никогда фактически не поворачивает, она только переустановит различные компоненты и после этого ведет себя так, как будто только что была нажата кнопка питания.

долго и бессвязно, но (на мой взгляд) более интересный ответ:

"мягкая сила" и как она работает

в старые времена (Ну, хорошо, для студента колледжа, как я, 90-е годы были давным-давно), у нас были материнские платы (передовые технологии) с по мощности управление. Система питания AT была очень, очень простой. Кнопка питания на вашем компьютере была аппаратным переключателем (возможно в задней части случая) и ваш входной сигнал 120vac пошел справедливо через его. Он физически включал и выключал питание вашего источника питания, и когда этот переключатель находился в выключенном положении, все в вашем компьютере было полностью мертвым (это делало батарею CMOS очень важной, потому что без нее не было источника питания, чтобы держать аппаратные часы тикающими). Поскольку выключатель питания был физическим механизмом, не было программного способа включения и выключения питания. Окна покажут знаменитое "сейчас безопасно выключить компьютер " сообщение, потому что, хотя все было припарковано и готов к выключению, это не было возможно для ОС на самом деле перевернуть выключатель питания. Эта конфигурация иногда называлась hard power, потому что все оборудование.

В настоящее время все по-другому, из-за чудес материнских плат ATX и ATX блок (это расширенная передовая технология, если вы отслеживаете). Наряду с рядом других достижений (mini-DIN PS / 2, кто-нибудь?), ATX принес мягкую силу. Мягкая сила значит что сила к компьютеру может быть проконтролирована программным обеспечением. Это принесло несколько изменений импорта:

  • Резервное питание: Возможно, вы видели разъем "5v SB" или "5v standby", обозначенный в выводах источника питания. The резервный источник питания. линия 5v к вашей материнской плате которая всегда дальше, даже когда компьютер повернут. Это почему важно отключить или повернуть PSU крепко переключите (если настоящий момент), то обслуживая современные компьютеры, потому что даже когда оно с вас смогл потенциально замкнуть накоротко СБ 5В и повредить материнскую плату. Это также почему батареи CMOS нет действительно как важно больше-SB 5v использован для того чтобы заменить батарею CMOS когда электропитание имеет силу основ, поэтому батарея CMOS только использована когда вы отключаете компьютер полностью. Линия 5V SB важно позволяет компонентам вашего компьютера (наиболее важно 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: работает (компьютер включен)
  • Г1: сна (ожидания вашего компьютера, в состояниях с )
    • S1: питание процессора и оперативной памяти остается включенным, но процессор не выполняет инструкции. Периферийные устройства выключены.
    • S2: процессор выключен, оперативная память поддерживается
    • S3: все компоненты выключены, За исключением ОЗУ и устройств, которые вызовет возобновление (клавиатура). Когда вы скажете своей ОС "спать", она остановит процессы, а затем перейдет в этот режим.
    • S4: Спящий Режим. Абсолютно все выключено. Когда вы говорите операционной системе перейти в спящий режим, она останавливает процессы, сохраняет содержимое ОЗУ на диск и переходит в этот режим.
  • G2: Мягкий Выкл. это состояние "выключен" вашего компьютера. Сила ко всему за исключением приборов которые могут вызвать а ботинок.
  • G3: механическое выключение.

как сброс на самом деле происходит

вы заметите, что перезагрузка не является одним из этих состояний. Так что на самом деле происходит, когда компьютер перезагружается? Ответ может быть удивительным, потому что с точки зрения управления питанием это почти ничего. Есть команда сброса ACPI. Когда вы говорите вашей операционной системе перезагрузиться, она следует своему обычному процессу выключения (останавливает все ваши выполняет некоторое обслуживание, отключает ваши файловые системы и т. д.), а затем в качестве заключительного шага вместо отправки машины в состояние питания G2 (как если бы вы просто сказали ей завершить работу) она устанавливает команду сброса. Это обычно упоминается как "регистр сброса", потому что как большая часть интерфейса ACPI это-просто адрес, в который должно быть записано определенное значение для запроса сброса. Я процитирую спецификацию 2.0 о том, что она делает:

дополнительный механизм сброса ACPI определяет стандартный механизм, обеспечивающий полный сброс системы. При реализации этого механизма необходимо перезагрузить всю систему. Это включает в себя процессоры, основную логику, все шины и все периферийные устройства. С точки зрения OSPM утверждение механизма сброса является логическим эквивалентом циклического включения питания машины. После получения контроля после сброса OSPM выполнит действия подобным образом к холодной загрузке.

Так, когда возврат регистр установлен, несколько вещей происходят последовательно.

  • вся логика сбрасывается. Это значит посылку соответственно команд возврата к различным битам оборудования включая C. P. U., регулятор памяти, периферийные регуляторы, etc. В большинстве случаев это просто означает, что нужно зажечь первый физический провод, как показал Андреяко выше.
  • компьютер загружается. Это часть "выполнение действий подобным образом при холодной загрузке". Материнская плата выполняет такие же действия, как это было бы, если бы источник питания только что стал готов после нажатия кнопки питания.

конечный эффект этих двух шагов (которые на самом деле разбиваются на гораздо больше шагов) заключается в том, что он выглядит так же, как компьютер только что загрузился, но питание было на самом деле все время. Это значит меньше времени необходимо, что выключило и начало вверх (в виду того что вы не должны ждать электропитание для того чтобы стать готовыми), и важно позволяет загрузке быть начатым завершение работы операционной системы. Это означает, что не нужно использовать другой триггер запуска (WoL и т. д.) и позволяет использовать перезагрузку в качестве эффективного способа удаленного сброса системы, когда у вас нет способа инициировать загрузку.


Это был длинный ответ. Но эй, надеюсь, теперь вы знаете больше об управлении питанием компьютера. Я, конечно, узнал некоторые вещи, исследуя это.

595
отвечен jcrawfordor 2011-07-02 23:28:09
источник

вот отправная точка:

фишки обычно не выключите, а затем включите. Вместо этого есть линия сброса, которая приведет процессор в так называемое состояние сброса, когда обычно вся память очищается, и процессор выглядит так, как будто он только что был включен. В то время как тот pin держится высоко (или низко, в зависимости от процессора), процессор находится в сбросе. Как только pin-код будет отпущен, он продолжит загрузку в обычном режиме, как если бы он был включен в первый раз. Смысл этого заключается в том, что нет никакого отключения электроэнергии.

Итак, как это масштабируется на более крупные системы, такие как современные ПК? Современные компьютеры состоят из компьютеров, которые иногда сделаны из самих компьютеров. Поэтому, когда вы устанавливаете компьютер для сброса, "компьютеры", которые делают компьютер, начнут сохранять свои состояния (если сброс контролируется) или просто вытащить их контакты сброса.

некоторые процессоры и микроконтроллеры (миниатюрные автономные компьютеры, обычно 20 лет за современными настольными компьютерами) могут переустановить используя внутренние переключатели. Как я уже сказал, как только сигнал, который генерирует сброс ушел, компьютер будет запущен. Таким образом, предпосылка в вопросе не совсем правильная. Компьютер не знает, когда включить. В знать, когда его нужно "выключить" или в сброс и, когда сигнал, который держит его там нет, он включится.

Это поведение может выглядеть странно на современном компьютере, который может быть установлен, чтобы включить в определенное время или более сеть и так далее. Как я уже сказал, компьютеры сделаны из компьютеров. Таким образом, в то время как главный процессор может быть выключен, внутри может быть множество других чипов и микроконтроллеров. Наиболее очевидным случаем являются часы реального времени, которые часто работают от батареи. Затем он может включить другие чипы, которые будут включать другие чипы и цепная реакция идет до тех пор, пока весь компьютер включен. На современных компьютерах есть линия питания +5 В постоянного тока. Оно снабубежит силу вокруг 50 mW различное устройства, когда компьютер "выключен".

немного мелочи: Пин возврата на процессоре Интел 386 бывшем пин 110.

386EX datasheet figure 2

на Intel i7-900 это номер земли AL39.

Я надеюсь, что кто-то сможет дать ответ, который объяснит, как все работает с точки зрения высокого уровня, так как это довольно сложная система.

79
отвечен AndrejaKo 2016-07-05 18:45:57
источник

этот блог описывает как Linux запускает перезагрузку.

выдержка:

Linux имеет множество различных способов сброса x86. Некоторые из них только 32-битные, и поэтому я просто проигнорирую их, потому что, честно говоря, что вы делаете со своей жизнью. Кроме того, они ужасны. Таким образом, это оставляет нас с пятью из них.

  • kbd-перезагрузка через контроллер клавиатуры. У оригинального IBM PC была связана линия сброса процессора к контроллеру клавиатуры. Запись соответствующего магического значения импульсов линии и машина сбрасывается. Это все очень просто, за исключением того факта, что современные машины не имеют контроллеров клавиатуры (они фактически являются частью встроенного контроллера), и даже более современные машины даже не претендуют на контроллер клавиатуры. Теперь встроенные контроллеры запускают программное обеспечение. И, как мы все знаем, программное обеспечение ужасно. Но, что еще хуже, программное обеспечение на встроенном контроллере было написано Авторы BIOS. Итак, ясно, каким предлогом, что это никогда не работает-это какой-то обман. Некоторые машины очень требовательны к оборудованию, находящемуся в точном состоянии, в котором Windows будет программировать. Некоторые машины работают 9 раз из 10, а затем запираются из-за какой-то странной проблемы с синхронизацией. А другие просто не работают вообще. Ура!

  • тройная попытка создать тройную ошибку. Это делается путем загрузки пустой таблицы дескрипторов прерываний и вызова int (3). Тот прерывание завершается неудачей (IDT отсутствует), сбой обработчика ошибок (IDT отсутствует), и процессор вводит условие, которое теоретически должно вызвать сброс. За исключением того, что, похоже, нет требования, чтобы это произошло, и он просто не работает на куче машин.

  • pci - на самом деле pci. Традиционный доступ к пространству конфигурации PCI достигается путем записи 32-битного значения в порт ввода-вывода 0xcf8 для идентификации шины, устройства, функции и регистра конфигурации. Затем порт 0xcfc содержит соответствующий регистр. Но если вы напишете соответствующую пару магических значений в 0xcf9, машина перезагрузится. Впечатляюще! И никак не стандартизирован (конечно, не входит в спецификацию PCI), поэтому разные чипсеты могут иметь разные требования. БООО.

  • efi - EFI runtime services предоставляет точку входа для перезагрузки компьютера. Это обычно даже работает! До тех пор, пока EFI runtime services работают вообще, что может быть растянуто.

  • acpi - последние версии спецификации ACPI позволяют указать адрес (обычно память или системное пространство ввода-вывода) и значение для записи. Идея состоит в том, что запись значения в адрес сбрасывает систему. Оказывается, сделать это часто не удается. Также невозможно представить метод перезагрузки PCI через ACPI, потому что метод перезагрузки PCI требует пары значений, а ACPI дает только одно.

27
отвечен jabiko 2013-12-24 16:02:30
источник

Он frobs место ввода / вывода, который тянет линии передачи данных низкий, который говорит процессору, что он должен остановить все, что он делает, и начать выполнение кода из определенного места в BIOS.

10
отвечен Ignacio Vazquez-Abrams 2010-07-29 00:19:00
источник

еще в старые времена, до управления питанием, компьютеры все еще могли перезагрузиться, конечно. (Кто-нибудь помнит, когда замороженная программа означала, что вам нужно было использовать Ctrl+Alt+Delete для перезагрузки компьютера?)

на моем старом 486, команда языка ассемблера JMP FFFF:0000 (т. е. установите указатель инструкции процессора на указанный адрес) приведет к перезагрузке всего компьютера. Другими словами, FFFF: 0000 обращается к местоположению в BIOS, которое содержит инструкции для того, что компьютер должен сделать, когда это первые старты. Я подозреваю, что Штырь сброса, описанный ответом Андреяко, или кнопки сброса в дни предварительного управления питанием, также заставили бы указатель инструкции на тот же адрес.

на поиск Google для JMP FFFF: 0000 показывает много интересных страниц об этом.

10
отвечен krubo 2011-06-12 18:38:55
источник

есть также вещь по имени Барбос. Это устройство служит выключателем мертвеца. Компьютер должен сигнализировать сторожевому псу каждую минуту что она все еще жива. При сбое компьютера, например запустив в бесконечный цикл, это будет не сигнал сторожевому псу, что он все еще работает по назначению, в этом случае сторожевой таймер выполнит аппаратный сброс. Это было продемонстрировано в популярном сериале Терминатор, где робот был выбит высоковольтной силой всплеск. он перезагрузится через 2 минуты.

9
отвечен Marcel 2011-06-09 18:24:53
источник

обратно на старый IBM PC-1 клавиатурный контроллер, как ни странно, занимался перезагрузкой. IBM встроила небольшой микропроцессор для обработки клавиатуры, и у него было несколько запасных линий ввода-вывода, поэтому они использовали одну из линий для управления линией сброса основного процессора. Команда, отправленная на контроллер клавиатуры, приведет к сбросу процессора, как если бы питание было только что включено.

Я предполагаю, что эта традиция продолжалась и в эпоху" AT", и, возможно, ее остатки остались в ACPI сегодня.

добавлено: есть интересная деталь о приведенной выше схеме сброса. Во время ранней загрузки код искал в оперативной памяти определенный шаблон, который мог быть задан ранее выполнявшимся кодом. Если этот код присутствовал, то некоторые из диагностик столба (само-теста включения питания) были прыгнуты. Узор будет присутствовать только на" теплом " ботинке.

4
отвечен Daniel R Hicks 2012-12-22 08:59:54
источник

Другие вопросы reboot acpi

X