web-dev-qa-db-fra.com

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

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 de swap?

S'il n'a pas de 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 y a-t-on accès à nouveau?

26
Sinoosh

Techniquement, l’échange 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 a 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 a un code spécifique qui lui est associé, et selon TLDP :

le code pour ext2 est 0x83 et le swap linux est 0x82

Lorsque le fichier d'échange est impliqué, la situation est légèrement différente. Le noyau doit respecter le fait que le système de fichiers peut avoir sa propre manière de structurer les données. Depuis le même lien kernel.org:

Rappelez-vous que les systèmes de fichiers peuvent avoir leur propre méthode de stockage des fichiers et du disque et que ce 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, seul un bloc de la taille d'une page nécessite IO et, en l'absence de système de fichiers, bmap () n'est pas nécessaire.

En conclusion, techniquement, vous pouvez appeler l’espace de swap un système de fichiers de son propre type, mais ce n’est pas tout à fait comparable aux systèmes de fichiers tels que 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

À proprement parler, il n'est pas nécessaire que RAM soit structuré. Toutefois, des parties de RAM peuvent être structurées de la manière suivante: tmpfs sous un système d'exploitation de type Unix. Il y a aussi ramfs et initramfs, qui est chargé pendant le processus de démarrage. Mais les données RAM ne sont techniquement supposées être que des 1 et des 0 bruts, il n’est donc pas nécessaire de les structurer de toute façon.

28

Le noyau utilise l'espace de permutation pour stocker temporairement des pages de mémoire système (RAM) au fur et à mesure de son saturation. Le noyau utilise ses propres tables internes pour "se souvenir" exactement de l'endroit où, dans le disque d'échange, il a placé la page. Par conséquent, les disques de swap ne contiennent pas de système de fichiers approprié et ne constituent généralement que des partitions vierges sur le disque.

Ce qui peut vous intéresser, 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 le poussera (et d’autres contenus) dans l’espace de permutation. Voir ici pour des instructions sur la configuration.

14
Jake

L'espace de permutation est divisé en blocs de la même taille que les pages de mémoire (généralement 4 ko). Un enregistrement du mappage de ces pages sur la mémoire d'application constitue une extension du sous-système de mémoire virtuelle dans la CPU et le système d'exploitation.

En d'autres termes, il existe déjà un système de mappage entre les espaces mémoire de l'application et l'adresse réelle de la mémoire physique. Une application reçoit un grand espace d’adresses mémoire qu’elle peut utiliser autant ou aussi peu que possible. Au fur et à mesure de l'utilisation de cet espace adresse mémoire, 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 le 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 sont inutiles après un redémarrage.

13
thomasrutter