Ma question est d'ordre théorique dans les systèmes d'exploitation des ordinateurs, et plus précisément sur l'hibernation.
Pour autant que je sache, l'hibernation (état ACPI S5, c'est bien ça ?) consiste à écrire dans le disque dur toutes les données nécessaires à la restauration de la RAM lors du redémarrage du système d'exploitation. OK, ça me paraît bien.
Mais je me souviens du bon vieux temps des cours sur les systèmes d'exploitation, lorsque le professeur expliquait les différences de gestion de la mémoire entre les systèmes d'exploitation. Windows et le noyau Linux utilisent tous deux mémoire virtuelle : toutes les pages sont initialisées dans le swap, puis chargées dans la RAM en cas de besoin afin qu'ils puissent être déplacés à tout moment.
Je sais également que les pages de mémoire ne sont pas immédiatement transférées dans le swap, mais qu'elles sont conservées en mémoire pendant un certain temps, ou lorsqu'il est nécessaire de charger une page à partir du swap et que toutes les pages de mémoire ont été transférées dans le swap. sale
Ma question est la suivante : Pourquoi Windows doit-il stocker un hiberfil.sys
avec toute la mémoire vive à l'intérieur puisque toutes les pages devrait Les caches sont déjà présents dans le fichier d'échange (et l'hibernation signifierait simplement vider les caches et arrêter l'ordinateur) et presque tous nettoyés après une inactivité prolongée ?
De même, pourquoi Linux indique-t-il explicitement qu'il copie des pages sur la partition swap ? Lorsque je suspends simplement le système, il faut quelques secondes d'accès continu au disque avant l'arrêt (peut-être que le noyau vide les caches), mais lorsque je veux mettre le système en veille prolongée, il faut le même temps que pour la restauration.
Ai-je oublié quelque chose à propos des noyaux ?