La hibernación (también conocida como suspensión en disco o suspensión segura en computadoras Macintosh [1] ) en informática consiste en apagar una computadora mientras se conserva su estado. Cuando comienza la hibernación, la computadora guarda el contenido de su memoria de acceso aleatorio (RAM) en un disco duro u otro almacenamiento no volátil . Cuando se enciende la computadora, la RAM se restaura y la computadora queda exactamente como estaba antes de entrar en hibernación. La hibernación se implementó por primera vez en 1992 y fue patentada [2] por Compaq Computer Corporation en Houston , Texas.
Windows 8 , Windows 8.1 , Windows 10 y Windows 11 de Microsoft emplean un tipo de hibernación (Inicio rápido) de forma predeterminada al apagarse. [3]
Después de la hibernación, el hardware se apaga como un apagado normal. [4] El sistema puede tener una pérdida total de energía por un período de tiempo indefinido y luego reanudarse al estado original. La hibernación se usa principalmente en computadoras portátiles , que tienen energía de batería limitada disponible. [4] Se puede configurar para que suceda automáticamente en una alarma de batería baja. La mayoría de las computadoras de escritorio también admiten la hibernación, principalmente como una medida general de ahorro de energía y permite reemplazar una batería extraíble rápidamente. El hardware móvil de Google y Apple ( Android , Chromebooks , iOS ) no admite la hibernación. El hardware de Apple que usa macOS llama a la hibernación Safe Sleep. [1]
Se puede programar una alarma de reloj en tiempo real para activar la máquina después de la hibernación. [5]
Muchos sistemas admiten un modo de suspensión de bajo consumo en el que se reducen las funciones de procesamiento de la máquina, utilizando un goteo de energía para preservar el contenido de la RAM y permitir la reactivación. La reanudación instantánea es una de las ventajas del modo de suspensión sobre la hibernación. Un sistema hibernado debe iniciarse y leer datos del almacenamiento permanente y luego transferirlos de vuelta a la RAM, lo que lleva más tiempo y depende de la velocidad del dispositivo de almacenamiento permanente, a menudo mucho más lento que la memoria RAM. Un sistema en modo de suspensión solo necesita encender la CPU y la pantalla, lo que es casi instantáneo. Por otro lado, un sistema en modo de suspensión aún consume energía para mantener los datos en la RAM. Desconectar la energía de un sistema en modo de suspensión da como resultado la pérdida de datos, mientras que cortar la energía de un sistema en hibernación no tiene ningún riesgo; el sistema hibernado puede reanudarse cuando y si se restablece la energía. Tanto los sistemas apagados como los hibernados pueden consumir energía en espera a menos que se desconecten. [6]
La hibernación es una forma de evitar la carga de tener que guardar los datos no guardados antes de apagar y restaurar todos los programas en ejecución y volver a abrir los documentos y las pestañas del navegador. Tanto la hibernación como el modo de suspensión preservan la fragmentación y la atrofia de la memoria, lo que hace que los dispositivos móviles funcionen peor cuanto más tiempo estén en funcionamiento sin un reinicio completo. Por eso, muchos expertos recomiendan apagar o reiniciar con frecuencia los dispositivos electrónicos.
El primer modo de hibernación funcional en un comercio minorista se produjo en 1992 en el Compaq LTE Lite 386, como se indica en su material de ventas. [7] Es posible en parte gracias a los códigos de operación de modo protegido y de suspensión de la CPU Intel 386. Se implementó en la ROM y funcionó independientemente del sistema operativo sin necesidad de controladores . El LTE detectaba la batería baja y evitaba la pérdida de datos haciendo uso de una partición oculta . Conservaba y restauraba el sistema en medio de operaciones y escrituras en el disco con un coprocesador matemático . También se podía controlar mediante una interfaz gráfica de usuario de software opcional o un atajo de teclado personalizado. Se probó en DOS, Windows 3.1, Banyan Vines y Novell Netware. La hibernación de Compaq también se menciona en una patente de IBM [8] de 1993.
Las primeras implementaciones de la hibernación utilizaban el BIOS , como se mencionó anteriormente, pero los sistemas operativos modernos generalmente manejan la hibernación por sí mismos. La hibernación se define como modo de suspensión S4 en la especificación ACPI . [9]
En los equipos con Windows, la hibernación solo está disponible si todo el hardware y los controladores de dispositivos son compatibles con ACPI y plug-and-play . Esto permite que algunos equipos de escritorio hibernen rápidamente en SSD en caso de un corte de energía y se suministre energía incluso a un SAI liviano o antiguo . La hibernación se puede invocar desde el menú Inicio o la línea de comandos. [10]
Windows 95 admite la hibernación a través de controladores proporcionados por el fabricante del hardware y sólo si hay hardware y BIOS compatibles. Dado que Windows 95 sólo admite la gestión avanzada de energía (APM), la hibernación se denomina suspensión a disco. Windows 98 y versiones posteriores admiten ACPI. Sin embargo, la hibernación a menudo causaba problemas, ya que la mayoría del hardware no era totalmente compatible con ACPI 1.0 o no tenía controladores WDM . También había problemas con el sistema de archivos FAT32, [11] lo que hacía que la hibernación fuera problemática y poco fiable.
Windows 2000 es el primer sistema operativo que admite la hibernación a nivel del sistema operativo (estado de suspensión ACPI S4 controlado por el sistema operativo) sin controladores especiales del fabricante del hardware. Un archivo de sistema oculto llamado " hiberfil.sys " en la raíz de la partición de arranque se utiliza para almacenar el contenido de la RAM cuando el equipo hiberna. En Windows 2000, este archivo es tan grande como la RAM total instalada.
Windows Me , la última versión de la familia Windows 9x , también admite la hibernación controlada por el sistema operativo como Windows 2000 y requiere un espacio en disco igual al de la RAM de la computadora. [12] [13]
Windows XP mejoró aún más el soporte para la hibernación. [14] La hibernación y la reanudación son mucho más rápidas ya que las páginas de memoria se comprimen utilizando un algoritmo mejorado; la compresión se superpone con las escrituras en el disco, las páginas de memoria no utilizadas se liberan y las transferencias DMA se utilizan durante la E/S. [15] hiberfil.sys contiene más información, incluido el estado del procesador. Este archivo fue documentado por el investigador de seguridad Matthieu Suiche [16] durante Black Hat Briefings 2008, quien también proporcionó un marco de trabajo forense informático para administrar y convertir este archivo en un volcado de memoria legible. [17] La función de compresión fue documentada posteriormente también por Microsoft. [18]
Aunque Windows XP agregó soporte para más de 4 gigabytes de memoria (a través de Windows XP 64-bit Edition y Windows XP Professional x64 Edition ), este sistema operativo, así como Windows Server 2003 , Windows Vista y Windows Server 2008 no admiten la hibernación cuando se instala esta cantidad de memoria debido a problemas de rendimiento asociados con guardar un grupo tan grande de datos de la RAM al disco. [19] Esto luego se resolvería con Windows 7 y Windows Server 2008 R2 .
Windows Vista introdujo una función de suspensión híbrida que guarda el contenido de la memoria en el disco duro, pero en lugar de apagarse, entra en modo de suspensión. Si se corta la energía, el equipo puede reanudarse como si estuviera en estado de hibernación.
Windows 7 introdujo la compresión del archivo de hibernación y estableció el tamaño predeterminado en el 75 % de la memoria física total. [18] Microsoft también recomienda que se aumente el tamaño utilizando la powercfg.exe
herramienta en algunas cargas de trabajo poco frecuentes en las que la huella de memoria exceda esa cantidad. Se puede establecer en cualquier valor entre el 50 % y el 100 %, aunque no se recomienda disminuirlo.
Windows 8 también presenta una función de inicio rápido . Cuando los usuarios seleccionan la opción Apagar , hiberna el equipo, pero cierra todos los programas y cierra la sesión del usuario antes de hibernar. [20] Según Microsoft, una hibernación normal incluye más datos en las páginas de memoria, lo que lleva más tiempo escribirse en el disco. En comparación, cuando se cierra la sesión del usuario, los datos de hibernación son mucho más pequeños y, por lo tanto, lleva menos tiempo escribirse en el disco y reanudarse. Los usuarios tienen la opción de realizar un apagado tradicional manteniendo presionada la tecla Shift mientras hacen clic en Apagar [21] y también es posible apagar un equipo de la manera tradicional deshabilitando el Inicio rápido en la configuración del sistema.
Windows 10 refleja a Windows 8, como lo señaló Microsoft. [3] El algoritmo de hibernación de Windows 10 está optimizado para unidades de estado sólido . Este comportamiento se traslada a Windows 11 .
La hibernación suele subutilizarse en entornos empresariales, ya que es difícil habilitarla en una gran red de computadoras sin recurrir a un software de administración de energía de PC de terceros . [22] Esta omisión por parte de Microsoft ha sido criticada por haber provocado un enorme desperdicio de energía. [23]
Es posible desactivar la hibernación y eliminar hiberfil.sys
. [24]
El software de administración de energía de PC de terceros ofrece funciones que van más allá de las presentes en Windows. [25] [26] [27] La mayoría de los productos ofrecen integración con Active Directory y configuraciones por usuario o por máquina con planes de energía más avanzados, planes de energía programados, funciones contra el insomnio e informes de uso de energía empresarial.
En los Mac, una función conocida como Suspensión segura guarda el contenido de la memoria volátil en el disco duro del sistema cada vez que el Mac entra en modo Suspensión. El Mac puede salir instantáneamente del modo Suspensión si no se ha perdido la alimentación de la RAM. Sin embargo, si se interrumpe el suministro de energía, como al quitar las baterías sin una conexión de alimentación de CA, el Mac se reactivará del modo Suspensión segura y restaurará el contenido de la memoria del disco duro. [28] Debido a que el proceso de hibernación de la Suspensión segura ocurre durante la Suspensión normal, el menú Apple no tiene una opción de "hibernación".
La función de suspensión segura se agregó a los modelos Mac a partir del PowerBook G4 (SD de doble capa) de octubre de 2005. La suspensión segura requiere Mac OS X v10.4 o superior.
Poco después de que Apple comenzara a soportar Safe Sleep, los entusiastas de Mac lanzaron un truco para habilitar esta función para computadoras Mac mucho más antiguas que ejecutaban Mac OS X v10.4. [29] El Mac OS clásico también admitía la hibernación, pero Apple abandonó esta función. [30]
En el núcleo Linux , la hibernación se implementa mediante swsusp , que está integrado en la serie 2.6. Una implementación alternativa es TuxOnIce, que está disponible como parche para la versión 3.4 del núcleo. TuxOnIce ofrece ventajas como compatibilidad con multiprocesamiento simétrico y preemption . Otra implementación alternativa es uswsusp . Los tres se refieren a ella como "suspend-to-disk". systemd , si se implementa, administra la hibernación por sí mismo.
El modo de suspensión y la hibernación se pueden combinar: el contenido de la RAM se copia al almacenamiento no volátil y el equipo entra en modo de suspensión. Este enfoque combina los beneficios del modo de suspensión y la hibernación: el equipo puede reanudarse instantáneamente y su estado, incluidos los archivos abiertos y no guardados, sobrevive a un corte de energía. La suspensión híbrida consume tanta energía como el modo de suspensión, mientras que la hibernación apaga el equipo. [31] [4]