¿Cómo se reinicia una computadora?


490

¿Cómo puede reiniciarse una computadora? Después de apagarlo, ¿cómo se dice que vuelva a encenderse? ¿Qué tipo de software es el que puede hacer esto?


8
@ jer.salamon: En realidad, son caminos completamente diferentes. El apagado invoca una rutina ACPI que envía una señal a la fuente de alimentación ATX que apaga los rieles principales de voltaje.
Ignacio Vazquez-Abrams

13
Esto se controla a través del BIOS: si la memoria sirve, las palabras clave de interés son APM y APIC
pst

118
Realmente nunca se "apaga" en un reinicio.
Moab

10
No hay preguntas estúpidas. No, tal vez sí, pero creo que este es realmente muy interesante. Destacado como una pregunta del candidato de la semana .
slhck

44
Solía ​​teletrabajar en un servidor remoto que era básicamente una PC sin pantalla o teclado en el centro de datos de la compañía. Mi servidor normalmente nunca estaba apagado, pero a veces lo reiniciaba desde mi extremo usando WinXP Start-> TurnOffComputer-> Restart, para solucionar las inestabilidades causadas por probar mi propio código. A menudo trabajaba en momentos de mi propia elección, cuando el centro de datos no estaba tripulado. Era muy pesado lo que accidentalmente seleccionado Turn Off como la opción final, y tuvo que esperar hasta dos días después de que un operador vaya y pulse el el interruptor para mí!
FumbleFingers

Respuestas:


598

tl; dr: los estados de energía en su computadora son controlados por una implementación de ACPI (configuración avanzada e interfaz de energía). Al final de un proceso de apagado, su sistema operativo establece un comando ACPI que indica que la computadora debe reiniciarse. En respuesta, la placa base restablece todos los componentes utilizando sus respectivos comandos o líneas de reinicio, y luego sigue el proceso de arranque. La placa base nunca se apaga, solo restablece varios componentes y luego se comporta como si el botón de encendido hubiera sido presionado.

Larga y divagante pero (en mi opinión) respuesta más interesante:

Soft Power y cómo funciona

En los viejos tiempos (bueno, está bien, para un estudiante universitario como yo, los años 90 fue hace mucho tiempo), teníamos placas base AT (tecnología avanzada) con potencia ATadministración. El sistema de energía AT era muy, muy simple. El botón de encendido en su computadora era una palanca de hardware (probablemente en la parte posterior de la caja) y su entrada de 120vac lo atravesó. Encendió y apagó físicamente la fuente de alimentación, y cuando este interruptor estaba en la posición de apagado, todo en su computadora estaba completamente muerto (esto hizo que la batería CMOS fuera muy importante, porque sin ella no había fuente de alimentación para mantener el hardware tictac del reloj). Debido a que el interruptor de encendido era un mecanismo físico, no había forma de software de encender y apagar el dispositivo. Windows mostraría el famoso mensaje "Ahora es seguro apagar la computadora" porque, aunque todo estaba estacionado y listo para apagarse, no era posible que el sistema operativo encendiera el interruptor de encendido. Esta configuración a veces se denominabapoder duro , porque es todo hardware.

Hoy en día las cosas son diferentes, debido a las maravillas de las placas base ATX y la potencia ATX (eso es tecnología avanzada extendida si está haciendo un seguimiento). Junto con una serie de otros avances (mini-DIN PS / 2, ¿alguien?), ATX trajo poder suave . El poder blando significa que el software puede controlar la energía de la computadora. Esto trajo algunos cambios de importación:

  • Alimentación en espera: es posible que haya visto un conector "5v SB" o "5v en espera" etiquetado en las patillas de la fuente de alimentación. La fuente de alimentación de reservaes una línea de 5v a su placa base que siempre está encendida, incluso cuando la computadora está apagada. Esta es la razón por la cual es importante desconectar o apagar un interruptor de la fuente de alimentación (si está presente) al dar servicio a las computadoras modernas, porque incluso cuando está apagado, podría acortar el SB de 5v y dañar la placa base. Esta es también la razón por la cual las baterías CMOS ya no son tan importantes: el 5v SB se usa para reemplazar la batería CMOS cuando la fuente de alimentación tiene alimentación de red, por lo que la batería CMOS solo se usa cuando desconecta la computadora por completo. La línea SB 5v permite que los componentes de su computadora (lo más importante, el BIOS y los adaptadores de red) sigan ejecutando algún software simple incluso cuando la computadora está apagada.
  • Control inteligente de la fuente de alimentación. Si observa un pinout para el conector de la placa base de su fuente de alimentación (P1), notará dos pines típicamente etiquetados PS_ON y PS_RDY. Estos significan "fuente de alimentación encendida" y "fuente de alimentación lista". Si te gusta experimentar, toma una fuente de alimentación que no esté en una computadora, conéctala y corta cuidadosamente una línea de tierra (uno de los cables negros) a la línea PS_ON (el cable verde). La fuente de alimentación se encenderá visiblemente, con el ventilador girando. Los componentes de la placa base que funcionan con + 5v SB en realidad encienden y apagan su fuente de alimentación conectando la alimentación al pin PS_ON. Debido a que hay algunos condensadores y otros componentes en la fuente de alimentación que tardan un momento en cargarse, los voltajes de las salidas principales de la fuente de alimentación pueden no ser estables inmediatamente después de que se enciende la fuente de alimentación. Para eso es el pin PS_RDY, se enciende cuando la lógica interna de la fuente de alimentación determina que la fuente de alimentación está "lista" y proporcionará energía estable.

Por lo tanto, su interruptor de encendido ya no "enciende" la computadora. En cambio, está conectado a los controladores básicos de la placa base, que detectan que se ha presionado el botón y ejecutan una serie de pasos para preparar el sistema, incluida la iluminación de PS_ON para que haya energía disponible. El botón de encendido no es la única forma de activar el proceso de inicio, los dispositivos en su bus de expansión también pueden hacerlo. Esto es importante porque sus adaptadores de red ethernet realmente permanecen encendidos cuando su computadora está apagada y buscan un paquete muy específico, a menudo denominado "paquete mágico". Si detectan este paquete dirigido a su dirección MAC, activarán el proceso de inicio. Así es como funciona "Wake-on-LAN" (WoL). El reloj también puede iniciar un arranque (la mayoría de los BIOS le permiten establecer una hora en la que la computadora debe arrancar cada día),

Comprensión del control de potencia

Bueno, explico lo de Soft Power tanto porque creo que es interesante (siempre es una razón clave por la que explico cosas) como porque te permite comprender cómo el software controla la potencia y el estado de funcionamiento / apagado de tu computadora. En la mayoría de las computadoras actuales, este sistema de software es una implementación de la Interfaz avanzada de configuración y energía, o ACPI . ACPI es un sistema estandarizado y unificado que permite que el software controle el sistema de alimentación de su computadora. Es posible que haya oído hablar de los estados de energía de ACPI. El mecanismo básico de control de energía es estos "estados de energía", su sistema operativo cambia a través de los modos de energía preparándose para el interruptor (los procesos de apagado / hibernación que ocurren antes de que la energía se desconecte), y luego ordena a la placa base que cambie los estados de energía . Los estados de poder se ven así:

  • G0: en funcionamiento (el estado "encendido" de su computadora)
  • G1: Dormir (los estados de espera de su computadora, divididos en los subestados S)
    • S1: la alimentación a la CPU y la RAM permanece activada, pero la CPU no está ejecutando instrucciones. Los dispositivos periféricos están apagados.
    • S2: CPU apagada, RAM mantenida
    • S3: Todos los componentes se apagan, excepto la RAM y los dispositivos que activarán un currículum (teclado). Cuando le dice a su sistema operativo que "Suspenda", detendrá los procesos y luego ingresará a este modo.
    • S4: hibernación. Absolutamente todo está apagado. Cuando le dice a su sistema operativo que hiberne, detiene los procesos, guarda el contenido de la RAM en el disco y luego ingresa a este modo.
  • G2: apagado suave. este es el estado "apagado" de su computadora. Todo está apagado, excepto los dispositivos que pueden activar un arranque.
  • G3: Mecánico desactivado.

Cómo ocurre realmente el reinicio

Notarás que reiniciar no es uno de estos estados. Entonces, ¿qué sucede realmente cuando su computadora se reinicia? La respuesta puede ser sorprendente, porque desde una perspectiva de administración de energía no es casi nada . Hay un comando de reinicio ACPI. Cuando le dice a su sistema operativo que reinicie, sigue su proceso de apagado normal (detiene todos sus procesos, realiza un poco de mantenimiento, desmonta sus sistemas de archivos, etc.), y luego como un paso final, en lugar de enviar la máquina al estado de encendido G2 (como lo haría si simplemente le hubiera dicho que se apagara) establece el comando Restablecer. Esto generalmente se conoce como el "registro de reinicio", porque como la mayoría de la interfaz ACPI, es solo una dirección en la que se debe escribir un valor específico para solicitar un reinicio. Citaré la especificación 2.0 sobre lo que hace:

El mecanismo de reinicio ACPI opcional especifica un mecanismo estándar que proporciona un reinicio completo del sistema. Cuando se implementa, este mecanismo debe restablecer todo el sistema. Esto incluye procesadores, lógica central, todos los buses y todos los periféricos. Desde una perspectiva OSPM, afirmar que el mecanismo de reinicio es el equivalente lógico a un ciclo de energía de la máquina. Al obtener el control después de un reinicio, OSPM realizará acciones de manera similar a un arranque en frío.

Entonces, cuando se establece el registro de reinicio, suceden algunas cosas en secuencia.

  • Toda la lógica se restablece. Esto significa enviar los comandos de reinicio respectivos a varios bits de hardware, incluida la CPU, el controlador de memoria, los controladores periféricos, etc. En la mayoría de los casos, esto simplemente significa encender un cable RST físico, como AndrejaKo apareció arriba.
  • La computadora se arranca. Esta es la parte de "realizar acciones de manera similar a un arranque en frío". La placa base realiza los mismos pasos que si la fuente de alimentación acabara de estar lista después de presionar el botón de encendido.

El efecto final de estos dos pasos (que en realidad se desglosan en muchos más pasos) es que se ve todo como la computadora que acaba de arrancar, pero el poder estaba en todo momento. Esto significa menos tiempo requerido para apagar y arrancar (ya que no tiene que esperar a que la fuente de alimentación esté lista) y, lo que es más importante, permite que el arranque del sistema operativo inicie el arranque. Esto significa que no es necesario usar otro activador de inicio (WoL, etc.) y le permite usar Reiniciar como una forma efectiva de restablecer el sistema de forma remota, cuando no tiene una forma de activar el inicio.


Esa fue una respuesta larga. Pero bueno, espero que ahora sepa más sobre la administración de energía de la computadora. Ciertamente aprendí algunas cosas investigando esto.


3
+1. Respuesta muy informativa y útil. Solo un punto: PS_ON está activo bajo, es decir, se cambió a 0V en lugar de + 5VSB para activar las salidas principales.
MikeJ-UK

2
Para los dispositivos USB que desencadenan un arranque, algunos BIOS tienen la opción de activar la computadora con un doble clic o pulsación de tecla. Además, algunos teclados Mac tienen botones de encendido (una tradición que se remonta al original).
Stuart P. Bentley

1
Gran respuesta, ciertamente aprendí mucho. Sin embargo, queda una pregunta: desde el punto de vista de la placa base, ¿cuál es la diferencia entre los estados S4 y G2? El sistema operativo guarda la RAM en el disco, por lo que S4 suena como "apagado" para el hardware.
EMP

1
Creo que S4 es funcionalmente equivalente a G2, pero la diferencia está almacenada. Algunos BIOS parecen hacer una "POST rápida" cuando comienzan desde S4 pero una POST completa cuando comienzan desde G2. Sin embargo, no creo que haya ninguna razón para esto, aparte de que la gente quiere que el currículum S4 sea rápido.
jcrawfordor

1
Eso es en realidad un poco simplista; hay (muchas) formas que no son ACPI para reiniciar la computadora, y a veces ACPI solo no funciona: superuser.com/questions/294681/…
Tobu

81

Aquí hay un punto de partida:

Los chips generalmente no se apagan y luego se encienden. En cambio, hay una línea de reinicio que pondrá al procesador en el llamado estado de reinicio cuando generalmente se borra toda la memoria y el procesador parece que acaba de encenderse. Mientras ese pin se mantiene alto (o bajo, dependiendo del procesador), el procesador se reinicia. Una vez que se suelta el pin, continuará arrancando normalmente, como si estuviera encendido por primera vez. El punto de esto es que no hay corte de energía en sí mismo.

Entonces, ¿cómo se escala a sistemas más grandes como las PC modernas? Bueno, las computadoras modernas están hechas de computadoras que a veces están hechas de computadoras. Entonces, cuando configuras la computadora para reiniciar, las "computadoras" que hacen que la computadora comience a guardar sus estados (si el reinicio está controlado), o simplemente tienen sus pines de reinicio retirados.

Algunos procesadores y microcontroladores (que son computadoras autónomas en miniatura, generalmente 20 años detrás de las computadoras de escritorio modernas) pueden reiniciarse mediante interruptores internos. Como dije, una vez que la señal que genera el restablecimiento desaparezca, la computadora se iniciará. Entonces la premisa en la pregunta no es completamente correcta. La computadora no sabe cuándo encender. En saber cuándo debe estar "apagado" o en reinicio y cuando la señal que lo mantiene allí se ha ido, se encenderá.

Este comportamiento puede parecer extraño en una computadora moderna que se puede configurar para que se encienda en un momento específico o a través de la red, etc. Como dije, las computadoras están hechas de computadoras. Entonces, si bien el procesador principal puede estar apagado, podría haber muchos otros chips y microcontroladores dentro de los cuales están encendidos. El caso más obvio es el reloj en tiempo real que a menudo funciona con batería. Luego puede encender otros chips que encenderán otros chips y la reacción en cadena continuará hasta que toda la computadora esté encendida. En las computadoras de hoy, hay una línea de PSU llamada +5 VDC Standby Voltage. Proporciona alrededor de 50 mW de potencia a varios dispositivos que están encendidos cuando la computadora está "apagada".

Un poco de curiosidad: restablecer el pin en el procesador Intel 386 EX es el pin número 110.

386EX hoja de datos figura 2

En Intel i7-900 es el número de tierra AL39.

Espero que alguien pueda proporcionar una respuesta que explique cómo funcionan las cosas desde el punto de vista de alto nivel, ya que es un sistema bastante complicado.


Wow, respuesta completa.
Seth Carnegie

13
@Seth Carnegie No es tan genial. Acabo de tocar las cosas de bajo nivel que son ciertas para la mayoría de las computadoras, desde la que está en el refrigerador hasta la PC. Ni siquiera mencioné el ACPI, APM y otros sistemas de alimentación modernos o cómo en las viejas PCs microcontrolador Intel 8042 qué controlador el teclado podría reiniciar el procesador, cómo funciona la POST, reiniciar vectores y muchas otras cosas.
AndrejaKo

1
@netvope Demasiado para imaginar, diría. Probablemente tenga al menos uno en su mouse, uno en el teclado, más de 10 para las partes más básicas de la placa base (incluso si tenemos en cuenta "chipsets" altamente integrados), tal vez uno en la unidad de fuente de alimentación, al menos uno en cada unidad (más probablemente 2-3), varias en cada tarjeta de expansión ... Los monitores también son un asunto serio y mi impresora ahora tiene más RAM que mi primera computadora de escritorio.
AndrejaKo

44
Hablando de memoria, las memorias caché de algunos nuevos discos duros y CPU ahora son más grandes que la RAM de la primera computadora que utilicé. ¡Ahora podemos ejecutar Windows 95 completamente en el caché L2 y mantener toda la partición del sistema en el caché de la unidad!
netvope

27

Esta publicación de blog describe cómo Linux desencadena un reinicio.

Extracto:

Linux tiene muchas formas diferentes de restablecer un x86. Algunos de ellos son solo de 32 bits, así que los voy a ignorar porque, sinceramente, ¿qué estás haciendo con tu vida? Además, son horribles. Entonces, eso nos deja con cinco de ellos.

  • kbd - reiniciar a través del controlador del teclado. La PC original de IBM tenía la línea de reinicio de la CPU vinculada al controlador del teclado. Escribir el valor mágico apropiado pulsa la línea y la máquina se reinicia. Todo esto es muy sencillo, excepto por el hecho de que las máquinas modernas no tienen controladores de teclado (en realidad son parte del controlador integrado) e incluso las máquinas más modernas ni siquiera fingen tener un controlador de teclado. Ahora, los controladores integrados ejecutan software. Y, como todos sabemos, el software es terrible. Pero, lo que es peor, el software en el controlador incorporado ha sido escrito por autores de BIOS. Claramente, cualquier pretensión de que esto funcione es algún tipo de ficción elaborada. Algunas máquinas son muy exigentes con el hardware en el estado exacto que Windows programaría. Algunas máquinas funcionan 9 de cada 10 veces y luego se bloquean debido a algún problema de sincronización extraño. Y otros simplemente no funcionan en absoluto. ¡Hurra!

  • triple: intento de generar una triple falla. Esto se hace cargando una tabla de descriptores de interrupción vacía y luego llamando a int (3). La interrupción falla (no hay IDT), el controlador de fallas falla (no hay IDT) y la CPU entra en una condición que, en teoría, debería desencadenar un reinicio. Excepto que no parece ser un requisito que esto suceda y simplemente no funciona en un montón de máquinas.

  • pci - en realidad no pci. El acceso al espacio de configuración PCI tradicional se logra escribiendo un valor de 32 bits en el puerto io 0xcf8 para identificar el bus, dispositivo, función y registro de configuración. El puerto 0xcfc contiene el registro en cuestión. Pero si escribe el par apropiado de valores mágicos en 0xcf9, la máquina se reiniciará. ¡Espectacular! Y no está estandarizado de ninguna manera (ciertamente no es parte de la especificación PCI), por lo que diferentes conjuntos de chips pueden tener diferentes requisitos. Booo

  • Los servicios de tiempo de ejecución efi - EFI proporcionan un punto de entrada para reiniciar la máquina. Por lo general, incluso funciona! Siempre y cuando los servicios de tiempo de ejecución de EFI funcionen, lo que puede ser difícil.

  • acpi: las versiones recientes de la especificación ACPI le permiten proporcionar una dirección (generalmente memoria o espacio de E / S del sistema) y un valor para escribir allí. La idea es que escribir el valor en la dirección restablece el sistema. Resulta que hacerlo a menudo falla. También es imposible representar el método de reinicio de PCI a través de ACPI, porque el método de reinicio de PCI requiere un par de valores y ACPI solo le da uno.


15
Esto es relevante, pero la respuesta sería más útil si pones aquí un extracto de la información de la otra página.
calvinf

1
tl; dr hay muchas formas de reiniciar; algunas tablas están rotas lo suficiente como para pretender ser ventanas , la única forma es una heurística que involucra algunos intentos y dormir un poco.
Tobu

10

Se congela una ubicación de E / S que tira una línea de datos baja que le dice a la CPU que debe detener lo que sea que esté haciendo y comenzar a ejecutar código desde una determinada ubicación en el BIOS.


... y esa ubicación se especifica en el código que se pasa a la llamada de reinicio del sistema?
Caballero Samar

1
@Knight Samar: No; la ubicación de E / S es generalmente una constante de arquitectura, que el núcleo conoce. Puede ver esto, por ejemplo, en el código de reinicio de Linux, como arch / x86 / kernel / reboot.c.
sleske

¿Alguien tiene un buen recurso para leer más sobre este asunto?
matthias krull

@ mugen.kenichi y todo, un amigo me dio esto para referirme howstuffworks.com/bios.htm/printable
Knight Samar


10

En los viejos tiempos antes de la administración de energía, las computadoras aún podían reiniciarse, por supuesto. (¿Alguien recuerda cuándo un programa congelado significaba que tenía que usar Ctrl + Alt + Supr para reiniciar la computadora?)

En mi viejo 486, el comando de lenguaje ensamblador JMP FFFF:0000(es decir, establecer el puntero de instrucción de la CPU en dicha dirección) haría que toda la computadora se reiniciara. En otras palabras, FFFF: 0000 se dirige a una ubicación en el BIOS que tiene instrucciones sobre lo que la computadora debe hacer cuando se inicia por primera vez. Sospecho que el Pin de reinicio descrito por la respuesta de AndrejaKo, o los botones de reinicio en los días previos a la administración de energía, también obligaría al Puntero de instrucción a la misma dirección.

Una búsqueda en Google de JMP FFFF: 0000 revela muchas páginas interesantes sobre esto.


3
También tenía que escribir un valor específico en 0040: 0072 para determinar si era un arranque en frío (0x0000) o en caliente (0x1234).
Synetech

9

También hay una cosa llamada el perro guardián. Este dispositivo sirve como interruptor de un hombre muerto. La computadora tiene que indicarle al perro guardián cada minuto que todavía está vivo. Cuando la computadora falla, por ejemplo, al ejecutar un bucle sin fin, no podrá indicarle al watchdog que aún se está ejecutando según lo previsto, en cuyo caso el watchdog realizará un reinicio de hardware. Esto se demostró en la popular serie de televisión del terminador, donde un robot fue noqueado por una sobretensión de alto voltaje. se reiniciaría en 2 minutos.


2
Esto es correcto, pero en realidad no responde la pregunta.
sleske

44
¿Hay perros guardianes que realmente reiniciarán toda la computadora? Sé que a veces se usan para varios microcontroladores dentro de la computadora, pero ¿hay uno a nivel de toda la computadora? Mi experiencia personal me lleva a decir que no, pero alguna evidencia a favor o en contra sería bienvenida.
AndrejaKo

55
@AndrejaKo: Solía ​​trabajar para una empresa que fabricaba servidores de comunicación (esencialmente servidores blade con módems conectados a ellos). Tenían un temporizador de vigilancia que estaba conectado a los pines de reinicio en la placa base. El temporizador se activaba periódicamente por una utilidad de fondo que se ejecutaba en la placa base, por lo que si el procesador se bloqueaba, el perro guardián eventualmente presionaría el botón de reinicio. Estaba atado a un circuito que ocupaba la línea telefónica mientras la placa base se reiniciaba.
Robert Harvey

4

De vuelta en el viejo IBM PC-1, el controlador de teclado, curiosamente, manejó el reinicio. IBM incorporó un pequeño microprocesador para manejar el teclado, y tenía algunas líneas de E / S de repuesto, por lo que utilizaron una de las líneas para controlar la línea de reinicio de la CPU principal. Un comando enviado al controlador del teclado daría como resultado que la CPU se reinicie como si la energía se hubiera encendido.

Supongo que esta tradición continuó bien en la era "AT", y puede haber vestigios de que permanezca en ACPI hoy.

Agregado: hay un detalle interesante sobre el esquema de reinicio anterior. Durante la primera secuencia de arranque, el código buscó un patrón particular en la RAM que podría haber sido establecido por el código que se ejecutaba anteriormente. Si este código estaba presente, se omitieron algunos de los diagnósticos POST (autocomprobación de encendido). El patrón solo estaría presente en una bota "cálida".

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.