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?

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 sont-elles à nouveau accessibles?

Sinoosh
la source
6
Swap n'a pas besoin d'un système de fichiers. Il ne stocke pas de fichiers.
Pilot6
3
Il stocke les pages RAM.
Pilot6
2
Pourriez-vous s'il vous plaît expliquer exactement ce que vous essayez de faire? Êtes-vous en train de dire que tout ce dont vous avez besoin est un endroit pour stocker temporairement les données?
Jake
6
"Je veux savoir comment il est possible d'écrire dans un espace de stockage sans système de fichiers?" - Vous écrivez simplement dans l'espace de stockage. Pensez à ceci: si un système de fichiers devait écrire sur un espace de stockage, alors les systèmes de fichiers ne pourraient pas exister, car les systèmes de fichiers doivent pouvoir écrire sur un stockage décider sans système de fichiers. "selon votre réponse, puis-je dire que la RAM a un petit système de fichiers et que le fichier d'échange utilise ce système de fichiers pour travailler avec les pages?" - Non. Un système de fichiers sert à stocker des fichiers. L'espace d'échange ne stocke pas de fichiers.
Jörg W Mittag
4
Il est assez courant d'écrire un seul fichier (ala tar et dd) sur un stockage non formaté, et encore plus d'avoir des systèmes de fichiers imbriqués (disques virtuels, .iso, squashfs). Les jeux sur disquette écrivent parfois des scores élevés dans un emplacement absolu (fixe), et certaines applications sont basées sur Cylinder, Head, Sector. Les partitions de swap sont toujours des partitions, mais non, il n'y a pas de système de fichiers ou de "mappage" autre que le décalage et l'exécution?
mckenzm

Réponses:

28

Swap n'a techniquement 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 de swap en particulier n'a pas de structure, mais elle a un en-tête spécifique, qui est créé par le mkswapprogramme. 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é, c'est une histoire 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. Depuis le même lien kernel.org:

N'oubliez pas 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 d'échange 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 des E / S et comme aucun système de fichiers n'est impliqué, 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 à des 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 que la RAM soit structurée. Cependant, des portions de RAM peuvent être structurées en tmpfs sous des systèmes d'exploitation de type Unix. Il y a aussi les ramfs et initramfs, qui sont chargés pendant le processus de démarrage. Mais techniquement, les données RAM ne sont censées être que des 1 et 0 bruts, il n'est donc pas nécessaire de les structurer de toute façon.

Sergiy Kolodyazhnyy
la source
1
Il est bon de souligner que, même s'il n'a pas de système de fichiers, il a une structure de base qui permet de reconnaître ce que c'est. Empêche d'écraser une autre partition par erreur.
spectras
Je pense qu'ils signifient ici l'espace disque "Je veux savoir comment il est possible d'écrire dans un espace de stockage sans système de fichiers" au lieu de RAM peut-être?
Anwar
@Anwar, oui mais je l'ai
Sinoosh
tar peut être utilisé pour écrire plusieurs fichiers en tant que flux RAW sur un périphérique non formaté tel qu'un lecteur flash. Sinon, un seul fichier peut être écrit (mais pas nommé) et vous devrez inverser le processus pour le réécrire. Cela se fait généralement avec les ISO sur les supports optiques, mais le résultat est un système de fichiers sur place.
mckenzm
1
D'accord. Il peut alors être essentiellement décrit comme une zone cartographiée. Ce n'est pas une extension de la mémoire réelle, mais un espace de travail pour stocker des morceaux qui peuvent être superposés à la demande.
mckenzm
14

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

Ce qui pourrait 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 (ainsi que d'autres contenus) vers l'espace de swap. Voir ici pour des instructions sur la configuration d'un.

Jake
la source
13

L'espace de swap 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 à la mémoire d'application forme une extension du sous-système de mémoire virtuelle dans le CPU et le système d'exploitation.

Autrement dit, il existe déjà un système de mappage entre les espaces de mémoire d'application et l'adresse de mémoire physique réelle. Une application dispose d'un grand espace d'adressage mémoire qu'elle peut utiliser autant ou aussi peu que possible. Comme une plus grande partie de cet espace d'adressage mémoire est réellement utilisée, 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 sont inutiles après un redémarrage.

thomasrutter
la source