L'espace d'échange a-t-il un système de fichiers?

26

Pour travailler avec des périphériques de stockage, nous avons besoin d'un système de fichiers. Qu'en est-il de l'espace d'échange?

Si ce n’est pas un système de fichiers, comment fonctionne le système d’exploitation? Comment les données (de la RAM) sont-elles écrites sur le disque et comment sont-elles accédées à nouveau?

    
posée Sinoosh 06.11.2016 - 11:55
la source

3 réponses

27

Swap techniquement n’a pas de système de fichiers spécifique. Le but du système de fichiers est de structurer les données d'une certaine manière. La partition d'échange en particulier n'a pas de structure, mais elle possède un en-tête spécifique, créé par le programme mkswap . En particulier, ceci (tiré de kernel.org ):

 25 union swap_header {
 26     struct 
 27     {
 28         char reserved[PAGE_SIZE - 10];
 29         char magic[10];
 30     } magic;
 31     struct 
 32     {
 33         char     bootbits[1024];
 34         unsigned int version;
 35         unsigned int last_page;
 36         unsigned int nr_badpages;
 37         unsigned int padding[125];
 38         unsigned int badpages[1];
 39     } info;
 40 };

Chaque partition est associée à un code spécifique, et selon TLDP :

  Le code

pour ext2 est 0x83 et le swap Linux est 0x82

Lorsque swap file est impliqué, l’histoire est légèrement différente. Le noyau doit respecter le fait que le système de fichiers peut avoir sa propre façon de structurer les données. Du même lien kernel.org:

  

Rappelez-vous que les systèmes de fichiers peuvent avoir leur propre méthode de stockage de fichiers   et le disque et il n'est pas aussi simple que la partition de swap où   les informations peuvent être écrites directement sur le disque. Si le stockage de sauvegarde est   une partition, alors un seul bloc de la taille d’une page nécessite IO et comme   Aucun système de fichiers n'est impliqué, bmap () n'est pas nécessaire.

En conclusion, techniquement, vous pouvez appeler swap space un système de fichiers de son type, mais il n'est pas tout à fait comparable aux systèmes de fichiers comme NTFS ou ext4

Vous avez également demandé

  

Je veux savoir comment il est possible d’écrire dans un espace de stockage sans système de fichiers

À strictement parler, il n'est pas nécessaire de structurer la RAM. Cependant, des portions de RAM peuvent être structurées en tmpfs sous les systèmes d'exploitation de type Unix. Il existe également ramfs , et initramfs, ce qui est chargé lors du processus de démarrage. Mais techniquement, les données RAM ne sont censées être que des 1 et des 0 bruts, il n'est donc pas nécessaire de les structurer de toute façon.

    
réponse donnée Sergiy Kolodyazhnyy 06.11.2016 - 12:34
la source
14

L'espace d'échange est utilisé par le noyau pour stocker temporairement les pages de la mémoire système (RAM) à mesure qu'il devient plein. Le noyau utilise ses propres tables internes pour "se souvenir" exactement de l'emplacement de la page dans le disque d'échange. Par conséquent, les disques d'échange ne contiennent pas de système de fichiers correct et ne sont généralement que des partitions vierges sur le disque.

Ce qui vous intéresse peut-être, c'est un disque RAM, qui est un petit système de fichiers stocké dans la mémoire du système. Si plus de mémoire est nécessaire, le noyau l'envoie (et d'autres contenus) dans l'espace de swap. Consultez ici pour obtenir des instructions sur la configuration de celui-ci.

    
réponse donnée Jake 06.11.2016 - 12:04
la source
13

L'espace d'échange est divisé en blocs de la même taille que les pages de mémoire (généralement 4 Ko), et un enregistrement du mappage de ces pages sur la mémoire d'application constitue une extension du sous-système de mémoire virtuelle du processeur et du système d'exploitation.

C'est-à-dire qu'il existe déjà un système de mappage entre les espaces mémoire de l'application et l'adresse de la mémoire physique réelle. Une application se voit attribuer un grand espace d'adressage en mémoire qu'elle peut utiliser autant ou aussi peu que possible. Plus cet espace d'adressage mémoire est utilisé, plus la mémoire physique est mappée à cette application pour servir de support de stockage.

Lorsque la mémoire est échangée sur le disque, un système associé conserve ce mappage de l’espace mémoire d’une application sur le bloc sur le disque.

La table de mappage elle-même n'est pas stockée sur le disque et les données restantes sur le disque ne sont plus utiles après un redémarrage.

    
réponse donnée thomasrutter 07.11.2016 - 06:11
la source

Lire d'autres questions sur les étiquettes