Гибернация (также известная как приостановка на диске или безопасный сон на компьютерах Macintosh [1] ) в вычислительной технике — это выключение компьютера с сохранением его состояния. Когда начинается гибернация, компьютер сохраняет содержимое своей оперативной памяти (ОЗУ) на жестком диске или другом энергонезависимом хранилище . Когда компьютер включается, ОЗУ восстанавливается, и компьютер становится точно таким же, каким он был до перехода в режим гибернации. Гибернация была впервые реализована в 1992 году и запатентована [2] корпорацией Compaq Computer в Хьюстоне , штат Техас.
В операционных системах Microsoft Windows 8 , Windows 8.1 , Windows 10 и Windows 11 по умолчанию при завершении работы используется тип гибернации (быстрый запуск). [3]
После гибернации оборудование отключается, как при обычном выключении. [4] Система может полностью отключиться от питания на неопределенный период времени, а затем вернуться в исходное состояние. Гибернация в основном используется в ноутбуках , которые имеют ограниченный доступный заряд батареи. [4] Ее можно настроить на автоматическое включение при низком заряде батареи. Большинство настольных компьютеров также поддерживают гибернацию, в основном как общую меру экономии энергии и позволяют быстро заменить съемную батарею. Мобильное оборудование Google и Apple ( Android , Chromebook , iOS ) не поддерживает гибернацию. Оборудование Apple, использующее macOS, называет гибернацию безопасным сном. [1]
Можно запланировать будильник в реальном времени , чтобы разбудить машину после спящего режима. [5]
Многие системы поддерживают режим сна с низким энергопотреблением , в котором функции обработки машины снижаются, используя струйку питания для сохранения содержимого ОЗУ и поддержки пробуждения. Мгновенное возобновление является одним из преимуществ режима сна перед гибернацией. Гибернированная система должна запуститься и считать данные из постоянного хранилища, а затем перенести их обратно в ОЗУ, что занимает больше времени и зависит от скорости постоянного запоминающего устройства, часто намного медленнее, чем ОЗУ. Системе в режиме сна нужно только включить ЦП и дисплей, что происходит почти мгновенно. С другой стороны, система в режиме сна по-прежнему потребляет энергию для сохранения данных в ОЗУ. Отключение питания от системы в режиме сна приводит к потере данных, в то время как отключение питания системы в режиме гибернации не несет никакого риска; спящая система может возобновить работу, когда и если питание будет восстановлено. Как выключенные, так и спящие системы могут потреблять энергию в режиме ожидания, если они не отключены от сети. [6]
Гибернация — это способ избежать бремени сохранения несохраненных данных перед выключением и восстановлением всех запущенных программ и повторным открытием документов и вкладок браузера. И гибернация, и сон сохраняют фрагментацию и атрофию памяти, что приводит к тому, что мобильные устройства работают хуже, чем дольше они работают без полной перезагрузки. Вот почему многие эксперты рекомендуют частое выключение или перезагрузку электронных устройств.
Первая работающая розничная спящая система появилась в 1992 году на Compaq LTE Lite 386, как отмечено в его рекламных материалах. [7] Это стало возможным отчасти благодаря кодам операций сна и защищенного режима в процессоре Intel 386. Она была реализована в ПЗУ и работала независимо от операционной системы без необходимости в драйверах . LTE определяла низкий уровень заряда батареи и предотвращала потерю данных, используя скрытый раздел . Она сохраняла и восстанавливала систему во время записи на диск и операций с математическим сопроцессором . Ею также можно было управлять с помощью дополнительного программного графического интерфейса или настраиваемого сочетания клавиш. Она была протестирована на DOS, Windows 3.1, Banyan Vines и Novell Netware. Спящий режим Compaq также отмечен в патенте IBM [8] от 1993 года.
Ранние реализации гибернации использовали BIOS , как указано выше, но современные операционные системы обычно сами управляют гибернацией. Гибернация определяется как спящий режим S4 в спецификации ACPI . [9]
На компьютерах Windows спящий режим доступен только в том случае, если все оборудование и драйверы устройств совместимы с ACPI и plug-and-play . Это позволяет некоторым настольным компьютерам быстро переходить в спящий режим на SSD в случае сбоя питания и питания даже от легкого или устаревшего ИБП . Спящий режим можно вызвать из меню «Пуск» или командной строки. [10]
Windows 95 поддерживает спящий режим через драйверы, поставляемые производителем оборудования, и только при наличии совместимого оборудования и BIOS. Поскольку Windows 95 поддерживает только Advanced Power Management (APM), спящий режим называется Suspend-to-Disk. Windows 98 и более поздние версии поддерживают ACPI. Однако спящий режим часто вызывал проблемы, поскольку большая часть оборудования не была полностью совместима с ACPI 1.0 или не имела драйверов WDM . Также были проблемы с файловой системой FAT32, [11] что делало спящий режим проблематичным и ненадежным.
Windows 2000 — первая ОС Windows, поддерживающая спящий режим на уровне операционной системы (управляемое ОС состояние сна ACPI S4) без специальных драйверов от производителя оборудования. Скрытый системный файл с именем " hiberfil.sys " в корне загрузочного раздела используется для хранения содержимого оперативной памяти, когда компьютер переходит в спящий режим. В Windows 2000 этот файл имеет размер, равный общему объему установленной оперативной памяти.
Windows Me , последняя версия семейства Windows 9x , также поддерживает управляемый ОС режим гибернации, как и Windows 2000, и требует дискового пространства, равного объему оперативной памяти компьютера. [12] [13]
Windows XP дополнительно улучшила поддержку спящего режима. [14] Спящий режим и возобновление работы стали намного быстрее, поскольку страницы памяти сжимаются с использованием улучшенного алгоритма; сжатие перекрывается с записью на диск, неиспользуемые страницы памяти освобождаются, а передачи DMA используются во время ввода-вывода. [15] hiberfil.sys содержит дополнительную информацию, включая состояние процессора. Этот файл был задокументирован исследователем безопасности Матье Суишем [16] во время Black Hat Briefings 2008, который также предоставил фреймворк компьютерной криминалистики для управления этим файлом и преобразования его в читаемый дамп памяти. [17] Функция сжатия была позже задокументирована и Microsoft. [18]
Хотя в Windows XP добавлена поддержка более 4 гигабайт памяти (через Windows XP 64-bit Edition и Windows XP Professional x64 Edition ), эта операционная система, а также Windows Server 2003 , Windows Vista и Windows Server 2008 не поддерживают спящий режим при установке такого объема памяти из-за проблем с производительностью, связанных с сохранением такого большого объема данных из оперативной памяти на диск. [19] Позднее эта проблема была решена в Windows 7 и Windows Server 2008 R2 .
Windows Vista представила функцию гибридного сна , которая сохраняет содержимое памяти на жестком диске, но вместо выключения переходит в спящий режим. Если питание отключено, компьютер может возобновить работу, как будто он находится в спящем режиме.
Windows 7 ввела сжатие файла гибернации и установила размер по умолчанию в 75% от общей физической памяти. [18] Microsoft также рекомендует увеличивать размер с помощью powercfg.exe
инструмента в некоторых редких рабочих нагрузках, где объем памяти превышает этот объем. Его можно установить в диапазоне от 50% до 100%, хотя уменьшать его не рекомендуется.
Windows 8 также представляет функцию быстрого запуска . Когда пользователи выбирают опцию «Выключить» , компьютер переходит в спящий режим, но закрывает все программы и завершает сеанс пользователя перед переходом в спящий режим. [20] По данным Microsoft, обычный спящий режим включает в себя больше данных на страницах памяти, которые дольше записываются на диск. Для сравнения, когда сеанс пользователя закрыт, данные спящего режима намного меньше и, следовательно, требуют меньше времени для записи на диск и возобновления работы. Пользователи имеют возможность выполнить традиционное выключение, удерживая клавишу Shift при нажатии кнопки «Выключить» [21] , а также можно выключить компьютер традиционным способом, отключив быстрый запуск в настройках системы.
Windows 10 отражает Windows 8, как отмечает Microsoft. [3] Алгоритм гибернации Windows 10 оптимизирован для твердотельных накопителей . Это поведение перенесено в Windows 11 .
Спящий режим часто недооценивается в бизнес-средах, поскольку его сложно включить в большой сети компьютеров , не прибегая к стороннему программному обеспечению для управления питанием ПК . [22] Это упущение Microsoft подверглось критике, поскольку привело к огромным потерям энергии. [23]
Можно отключить спящий режим и удалить hiberfil.sys
. [24]
Стороннее программное обеспечение для управления питанием ПК предлагает функции, выходящие за рамки функций Windows. [25] [26] [27] Большинство продуктов предлагают интеграцию с Active Directory и настройки для каждого пользователя или компьютера с более продвинутыми планами электропитания, запланированными планами электропитания, функциями борьбы с бессонницей и отчетами об использовании электроэнергии на предприятии.
На компьютерах Mac функция, известная как Safe Sleep, сохраняет содержимое энергозависимой памяти на системном жестком диске каждый раз, когда Mac переходит в режим сна. Mac может мгновенно выйти из режима сна, если питание оперативной памяти не было потеряно. Однако, если подача питания была прервана, например, при извлечении батарей без подключения к сети переменного тока, Mac вместо этого выйдет из режима безопасного сна, восстановив содержимое памяти с жесткого диска. [28] Поскольку процесс гибернации Safe Sleep происходит во время обычного режима сна, в меню Apple нет опции «гибернация».
Функция Safe Sleep была добавлена в моделях Mac, начиная с PowerBook G4 (Double-Layer SD) октября 2005 г. Для Safe Sleep требуется Mac OS X v10.4 или выше.
Вскоре после того, как Apple начала поддерживать Safe Sleep, энтузиасты Mac выпустили хак, позволяющий включить эту функцию на гораздо более старых компьютерах Mac под управлением Mac OS X v10.4. [29] Классическая Mac OS когда-то также поддерживала режим гибернации, но Apple отказалась от этой функции. [30]
В ядре Linux спящий режим реализован с помощью swsusp , встроенного в серию 2.6. Альтернативная реализация — TuxOnIce, доступная в виде патчей для версии ядра 3.4. TuxOnIce обеспечивает такие преимущества, как поддержка симметричной многопроцессорности и вытеснения . Другая альтернативная реализация — uswsusp . Все три называют его «suspend-to-disk». systemd , если он развернут, сам управляет спящим режимом.
Спящий режим и гибернация могут быть объединены: содержимое оперативной памяти копируется в энергонезависимое хранилище, и компьютер переходит в спящий режим. Такой подход объединяет преимущества спящего режима и гибернации: машина может мгновенно возобновить работу, а ее состояние, включая открытые и несохраненные файлы, сохраняется при отключении питания. Гибридный сон потребляет столько же энергии, сколько и спящий режим, тогда как гибернация выключает компьютер. [31] [4]