мой вопрос теоретический в компьютерных ОС, в частности, о гибернации.
Насколько я знаю, гибернация (состояние ACPI S5, верно?) включает в себя запись на жесткий диск всех данных, необходимых для восстановления оперативной памяти при повторной загрузке ОС. ОК, это звучит хорошо для меня.
Но я помню старые времена в классе операционных систем, когда учитель объяснял различия в управлении памятью между операционными системами. Ядро Windows и Linux используют виртуальную память: все страницы инициализируются в swap, а затем загружаются в RAM, когда это необходимо, чтобы их можно было перемещать в любое время.
Я также знаю, что страницы памяти не сразу сбрасываются для подкачки, а хранятся в памяти в течение определенного времени или когда требуется загрузить страницу из подкачки, и все страницы памяти загрязнены
Мой вопрос: почему Windows нужно хранить отдельный файл hiberfil.sys
со всей оперативной памятью, сбрасываемой внутри, поскольку все страницы должны уже присутствовать в файле подкачки (а гибернация будет означать просто очистку кешей и остановку компьютера) и почти все чистые после длительное бездействие?
То же самое, почему Linux явно говорит, что копирует страницы в раздел подкачки? Когда я просто приостанавливаю работу системы, требуется несколько секунд непрерывного доступа к диску до остановки (возможно, кэши сброса ядра), но когда я хочу перевести компьютер в спящий режим, для восстановления требуется то же время.
Я что-то упускаю из-за ядер?