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 manteniendo 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 está 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 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 en un apagado normal. [4] El sistema puede tener una pérdida total de energía por un período de tiempo indefinido y luego regresar al estado original. La hibernación se utiliza principalmente en portátiles , que tienen una batería disponible limitada. [4] Se puede configurar para que suceda automáticamente ante una alarma de batería baja. La mayoría de las computadoras de escritorio también admiten la hibernación, principalmente como medida general de ahorro de energía y permite reemplazar rápidamente una batería extraíble. El hardware móvil de Google y Apple ( Android , Chromebooks , iOS ) no admite la hibernación. El hardware de Apple que utiliza macOS llama hibernación Safe Sleep. [1]
Se puede programar una alarma de reloj en tiempo real para despertar la máquina después de la hibernación. [5]
Muchos sistemas admiten un modo de suspensión de bajo consumo de energía en el que se reducen las funciones de procesamiento de la máquina, utilizando un mínimo 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 nuevamente 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 sólo necesita encender la CPU y la pantalla, lo cual es casi instantáneo. Por otro lado, un sistema en modo de suspensión todavía consume energía para mantener los datos en la RAM. Cortar la alimentación de un sistema en modo de suspensión provoca la pérdida de datos, mientras que cortar la alimentación de un sistema en hibernación no supone ningún riesgo; el sistema hibernado puede reanudarse cuando se restablezca la energía. Tanto los sistemas apagados como los hibernados pueden consumir energía en espera a menos que estén desconectados. [6]
La hibernación es una forma de evitar la carga de guardar datos no guardados antes de cerrar y restaurar todos los programas en ejecución y volver a abrir documentos y pestañas del navegador. Tanto la hibernación como el sueño preservan la fragmentación y atrofia de la memoria, lo que hace que los dispositivos móviles funcionen peor cuanto más tiempo funcionan sin un reinicio completo. Es por eso que muchos expertos recomiendan apagar o reiniciar los dispositivos electrónicos con frecuencia.
La primera hibernación minorista que funcionó fue en 1992 en el Compaq LTE Lite 386, como se indica en su material de ventas. [7] Esto es posible en parte gracias a los códigos de operación del modo de suspensión y protegido en la CPU Intel 386 . Se implementó en ROM y funcionó independientemente del sistema operativo sin necesidad de controladores . El LTE detectaría la batería baja y evitaría la pérdida de datos al utilizar una partición oculta . Preservó y restauró el sistema en medio de escrituras en disco y operaciones con un coprocesador matemático . También se puede controlar mediante una GUI de software opcional o un método abreviado de teclado personalizado. Fue probado 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 hibernación usaban el BIOS como se indicó anteriormente, pero los sistemas operativos modernos generalmente manejan la hibernación por sí mismos. La hibernación se define como el modo de suspensión S4 en la especificación ACPI . [9]
En computadoras con Windows, la hibernación está disponible solo si todo el hardware y los controladores de dispositivos son compatibles con ACPI y plug-and-play . Esto permite que algunas computadoras de escritorio hibernen rápidamente a SSD en caso de un corte de energía y se suministre energía incluso a un UPS liviano o antiguo . La hibernación se puede invocar desde el menú Inicio o la línea de comando. [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 Administración avanzada de energía (APM), la hibernación se denomina Suspensión en 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 hubo problemas con el sistema de archivos FAT32, [11] haciendo que la hibernación sea problemática y poco confiable.
Windows 2000 es el primer Windows 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 inicio se utiliza para almacenar el contenido de la RAM cuando la computadora 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 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 informático forense para administrar y convertir este archivo en un volcado de memoria legible. [17] La función de compresión también fue documentada posteriormente 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 Esta cantidad de memoria se instala debido a problemas de rendimiento asociados con el almacenamiento de un conjunto tan grande de datos de la RAM en el disco. [19] Esto se resolvería posteriormente 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, ingresa al modo de suspensión. Si se corta la energía, la computadora puede reanudarse como si estuviera en hibernación.
Windows 7 introdujo compresión en el archivo de hibernación y estableció el tamaño predeterminado en el 75% de la memoria física total. [18] Microsoft también recomienda aumentar el tamaño utilizando la powercfg.exe
herramienta en algunas cargas de trabajo poco comunes donde la huella de memoria excede esa cantidad. Se puede establecer entre 50% y 100%, aunque no se recomienda disminuirlo.
Windows 8 también introduce una función de inicio rápido . Cuando los usuarios seleccionan la opción Apagar , hiberna la computadora, pero cierra todos los programas y cierra la sesión del usuario antes de hibernar. [20] Según Microsoft, una hibernación regular incluye más datos en las páginas de la memoria, lo que tarda más en 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 escribir 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 una computadora de la manera tradicional desactivando el Inicio rápido en la configuración del sistema.
Windows 10 refleja 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 estar infrautilizada en entornos empresariales, ya que es difícil habilitarla en una gran red de computadoras sin recurrir a 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 archivos hiberfil.sys
. [24]
El software de administración de energía de PC de terceros ofrece funciones más allá de las presentes en Windows. [25] [26] [27] La mayoría de los productos ofrecen integración de 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 Mac, una función conocida como Safe Sleep guarda el contenido de la memoria volátil en el disco duro del sistema cada vez que la Mac ingresa al modo de suspensión. La Mac puede salir instantáneamente del modo de suspensión si no se ha perdido la energía de la RAM. Sin embargo, si se interrumpía el suministro de energía, como cuando se retiraban las baterías sin una conexión de alimentación de CA, la Mac se reactivaría del modo de suspensión segura y restauraría el contenido de la memoria del disco duro. [28] Debido a que el proceso de hibernación de Safe Sleep ocurre durante el modo de suspensión normal, el menú de Apple no tiene una opción de "hibernar".
La capacidad Safe Sleep se agregó en los modelos Mac a partir del PowerBook G4 (SD de doble capa) de octubre de 2005. Safe Sleep requiere Mac OS X v10.4 o superior.
Poco después de que Apple comenzara a admitir Safe Sleep, los entusiastas de Mac lanzaron un truco para habilitar esta función en computadoras Mac mucho más antiguas que ejecutan Mac OS X v10.4. [29] El Mac OS clásico alguna vez también admitió la hibernación, pero Apple eliminó esta característica. [30]
En el kernel de 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 parches para la versión 3.4 del kernel. TuxOnIce proporciona ventajas como soporte para multiprocesamiento simétrico y preferencia . Otra implementación alternativa es uswsusp . Los tres se refieren a él como "suspensión en disco". systemd , si se implementa, gestiona 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 la computadora entra en modo de suspensión. Este enfoque combina los beneficios del modo de suspensión y la hibernación: la máquina 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 la computadora. [31] [4]