休眠(计算)
冬眠(也称为暂停磁盘,或在Macintosh计算机上安全睡觉)在计算机上为计算机提供电源,同时保留其状态。当冬眠开始时,计算机将其随机访问存储器(RAM)的内容保存到硬盘或其他非易失性存储中。当计算机打开时,恢复了RAM,并且计算机与输入冬眠之前完全一样。 Hibernation于1992年首次实施,并获得了德克萨斯州休斯敦的Compaq Computer Corporation专利。 Microsoft的Windows 10在关闭时默认使用了一种冬眠(快速启动)。
用途
冬眠后,硬件像常规关闭一样关闭电源。该系统可以在不确定的时间长度上完全损失功率,然后恢复到原始状态。冬眠主要用于笔记本电脑,可用电池电量有限。可以将其设置为在低电池警报器上自动发生。大多数台式机还支持冬眠,主要是作为一般节能措施,并允许快速更换可移动电池。 Google和Apple移动硬件( Android , Chromebooks , iOS )不支持Hibernation。使用MacOS的Apple硬件调用Hibernation安全睡眠。
与睡眠模式进行比较
许多系统都支持低功率睡眠模式,在该模式下,使用trick滴来降低机器的处理功能,以保留RAM的内容并支撑醒来。瞬时恢复是睡眠模式的优势之一,而不是冬眠。冬眠系统必须启动并从永久存储中读取数据,然后将其传输回RAM,该数据需要更长的时间,并取决于永久存储设备的速度,通常比RAM内存慢得多。睡眠模式下的系统只需要为CPU和显示器供电,这几乎是瞬时的。另一方面,睡眠模式的系统仍然会消耗电源以将数据保存在RAM中。在睡眠模式下从系统中脱离功率会导致数据丢失,而切断系统中系统的力量没有风险;冬眠系统可以在恢复电源时恢复。除非被拔掉,否则关闭和冬眠的系统都可以消耗待机功率。
Hibernation是避免在关闭并恢复所有运行程序并重新打开文档和浏览器选项卡之前避免保存未保存数据的负担的手段。冬眠和睡眠都可以保留记忆力碎片和萎缩,导致移动设备的工作效果较差,避免了电源的时间越长。这就是为什么许多专家建议经常关闭或重新启动电子设备的原因。
第一个实施
正如其销售材料中指出的那样,第一个工作零售冬眠是在1992年的Compaq LTE Lite 386上。它的部分原因是在英特尔386 CPU中的睡眠和受保护的模式Opcodes 。它是在ROM中实施的,并且与无需驱动程序的操作系统独立工作。 LTE通过使用隐藏的分区来感知电池电量低,并防止数据丢失。它在磁盘写作和操作中与数学处理器保存并恢复了系统。也可以使用可选的软件GUI或自定义键盘快捷键来控制它。它在DOS,Windows 3.1,Banyan Vines和Novell Netware上进行了测试。 Compaq的冬眠也在1993年的IBM专利中注明。
操作系统支持
如上所述,冬眠的早期实施使用了BIOS ,但是现代操作系统通常会自己处理冬眠。冬眠定义为ACPI规范中的睡眠模式S4。
微软Windows
在Windows计算机上,仅当所有硬件和设备驱动程序都是ACPI和插件播放的情况下,Hibernation才能使用。这使某些台式计算机可以在功率故障和功率下,甚至可以轻巧或老化的功率迅速冬眠到SSD。可以从开始菜单或命令行调用Hibernation。
Windows 95通过硬件制造商提供的驱动程序支持冬眠,并且仅在存在兼容的硬件和BIOS时。由于Windows 95仅支持高级电源管理(APM),因此Hibernation称为悬挂到盘。 Windows 98及以后支持ACPI。但是,冬眠通常会引起问题,因为大多数硬件不完全符合ACPI 1.0或没有WDM驱动程序。 FAT32文件系统也存在问题。
Windows 2000是在没有硬件制造商的特殊驱动程序的情况下,在操作系统级别(OS控制的ACPI S4睡眠状态)上支持冬眠的第一个窗口。一个名为“hiberfil.sys “在启动分区的根部中,用于存储计算机冬眠时RAM的内容。在Windows 2000中,此文件与安装的总RAM一样大。
Windows ME是Windows 9X家族中的最后一个版本,还支持OS控制的Hibernation,并且需要等于计算机RAM的磁盘空间。
Windows XP进一步改善了冬眠的支持。由于使用改进的算法压缩记忆页,冬眠和恢复速度要快得多。压缩与磁盘写入重叠,未使用的内存页面被释放,并且在I/O期间使用DMA转移。 Hiberfil.Sys包含更多信息,包括处理器状态。安全研究人员Matthieu Suiche在Black Hat Thirings 2008年还记录了此文件,他还提供了计算机取证框架,以管理和将此文件转换为可读的内存转储。 Microsoft后来还记录了压缩功能。
尽管Windows XP添加了对超过4 GB的内存的支持(通过Windows XP 64位版和Windows XP Professional X64 Edition ),但此操作系统以及Windows Server 2003 , Windows Vista和Windows Server 2008不支持Hibernation时安装了这一数量的内存,这是因为与将如此大的数据库从RAM到磁盘保存相关的性能问题。
Windows Vista引入了一项混合睡眠功能,该功能将内存内容保存到硬盘上,但没有电源,而是进入睡眠模式。如果电源丢失,计算机可以像冬眠一样恢复。
Windows 7将压缩引入了Hibernation文件,并将默认大小设置为总物理内存的75%。微软还建议使用powercfg.exe
工具在某些罕见的工作负载中增加尺寸,其中存储器足迹超过该量。它可以从50%至100%之间的任何地方设置,尽管不建议减少。
Windows 8还引入了快速启动功能。当用户选择关闭选项时,它会冬眠计算机,但在冬眠之前关闭所有程序并将用户会话记录下来。根据Microsoft的说法,常规的Hibernation在内存页面中包含更多数据,这些数据需要更长的时间才能写入磁盘。相比之下,当用户会话关闭时,冬眠数据要小得多,因此需要更少的时间来写入磁盘和恢复。用户可以选择在单击关闭时按住Shift键来执行传统的关闭。
Windows 10镜像Microsoft指出的Windows 8。 Windows 10的Hibernation算法是优化的固态驱动器。
Hibernation通常在商业环境中没有用,因为很难在大型计算机网络上启用它而不诉诸于第三方PC电源管理软件。微软的这种遗漏被批评是导致能源上的巨大浪费。
可以禁用Hibernation并删除hiberfil.sys
。
第三方PC电源管理软件提供的功能超出了Windows中的功能。大多数产品都提供活动目录集成以及使用更高级的电力计划,预定的电力计划,反互动功能和企业电力使用情况报告的每个用户或每机电机设置。
苹果系统
在Mac上,每次Mac进入睡眠模式时,都称为安全睡眠的功能将挥发性内存的内容保存到系统硬盘上。如果没有损失电源,MAC可以立即从睡眠模式醒来。但是,如果电源被中断,例如在没有交流电连接的无交流电源的电池时,MAC会从安全的睡眠中醒来,从而从硬盘驱动器中恢复内存内容。由于安全睡眠的休眠过程发生在常规睡眠期间,因此Apple菜单没有“冬眠”选项。
从2005年10月PowerBook G4 (双层SD)开始,Mac型号中添加了安全睡眠能力。安全睡眠需要Mac OS X V10.4或更高。
Apple开始支持安全睡眠后不久,MAC爱好者发布了一个黑客攻击,以启用此功能,用于运行Mac OS X V10.4的许多较旧的Mac计算机。经典的Mac OS曾经也支持Hibernation,但是此功能由Apple删除。
Linux
在Linux内核中,Hibernation由SWSUSP实施,SWSUSP内置在2.6系列中。替代实现是燕尾服,可作为3.4版本版本的补丁可用。 Tuxonice提供了优势,例如支持对称的多处理和抢先。另一个替代实现是USWSUSP 。这三个都称其为“暂停到盘”。 Systemd ,如果部署,可以管理休眠本身。
混合睡眠
睡眠模式和冬眠可以组合:RAM的内容被复制到非易失性存储中,计算机进入睡眠模式。这种方法结合了睡眠模式和冬眠的好处:机器可以瞬间恢复,其状态(包括开放式文件和未保存的文件)可以保存停电。混合睡眠消耗的功率与睡眠模式一样多,而冬眠则可以在计算机上使用。