Systèmes de fichiers vs partitions vs répertoires

30

Je suis nouveau sur Linux alors pardonnez-moi pour la confusion possible que vous pourriez rencontrer dans cette question.

D'après ce que je comprends, le système de fichiers spécifie comment une partition stocke / gère le fichier, avec des normes telles que ext2, ext3, reiserfs, xfs, etc. Parfois, je vois que les gens semblent se référer à chaque " directory" comme

    /boot filesystem
    /usr/bin filesystem
    /root filesystem
    /bin filesystem

Pourquoi les qualifierions-nous filesystems?

Si chacun d'eux est une partition, cela me confond parce que, pour autant que je sache, /usret /usr/binont tendance à être dans la même partition, mais j'ai vu que les gens se réfèrent à la fois à /usr filesystemet /usr/bin filesystem.

Si filesystemici est équivalent à Windows directory, ce n'est pas clair pour moi car apparemment le système de fichiers est quelque chose de plus que de simples répertoires. Aussi, pour autant que je sache, Linux n'a pas de directoryconcept; tous sont des fichiers.

Kenny
la source
Je n'ai jamais vu d'instance du "système de fichiers / root". Quel que soit le système de fichiers monté sur "/", c'est "le système de fichiers racine". Certains autres points de montage probables sur une distribution Linux moderne seraient "/ boot", "/ home" et "/ mnt / xx" ou "/ media / xx" pour diverses valeurs de "xx". Les distributions du noyau 2.x + (?) Auront "/ proc" et "/ sys", Systemd a des points de montage "/ var / run / nnnn" pour divers UID numériques nnnn. Les installations Unix plus anciennes peuvent monter "/ usr" via NFS, mais c'est peu probable sur une distribution Linux personnelle. "/ bin" et "/ usr / bin" ne seraient normalement pas des points de montage séparés.
david
Il y a un / root , n'est-ce pas? Voulez-vous dire qu'il ne reste jamais dans un système de fichiers séparé?
Kenny
Droite. "/ root" est le répertoire personnel standard de l'utilisateur "root", mais il s'agit généralement d'un autre répertoire du système de fichiers racine.
david
Ce sujet a été longuement discuté sur Ask Ubuntu , qui, IMNSHO, est idiot, car, AFAIK, les concepts ne sont pas différents sur Ubuntu qu'ils sont sur toute autre forme d'Unix ou Linux. Par exemple, qu'est-ce que «monter»? a été demandé il y a quelques jours.
Scott
Je suis assez impressionné par les questions. Venant de peu de connaissances, vous pourriez déjà comprendre beaucoup de choses en ce moment et que vous avez manqué la conclusion que "/ root filesystem" peut faire référence au système de fichiers sur lequel la partition est montée /root, je pense que c'est rejetable compte tenu de la complexité de la situation.
erikbwork

Réponses:

14

Comme je l'ai écrit dans https://superuser.com/a/293160/38062 :

Le problème ici est le mot "système de fichiers". Dans les mondes POSIX / Unix / Linux, il est utilisé pour signifier plusieurs choses différentes.

  1. Le "système de fichiers" est parfois l'ensemble du système de fichiers, enraciné dans /et tel que présenté aux logiciels d'application par le noyau du système d'exploitation. Dans ce sens, les gens parlent par exemple de systèmes d'exploitation POSIX ayant une " arborescence de systèmes de fichiers unique ".
  2. Un "système de fichiers" est parfois une (ou plusieurs) tranche (s) d'un (ou plusieurs) DASD - une ou plusieurs collections de secteurs de disque contigus formatés en un seul volume avec un format donné - comme délimité par une partition de disque schème. Avec cette signification, les gens parlent, par exemple, de "formatage de mon /usrsystème de fichiers ". " /usr" voici le point de montage (attendu) du volume, ou (dans certains schémas de partitionnement) son étiquette d'identification.
  3. Un "système de fichiers" est parfois une arborescence de fichiers et de répertoires pouvant être jointe, présentée par un pilote de système de fichiers (c'est-à-dire la couche VFS) au reste du système. Avec cette signification, les gens parlent, par exemple, de "monter le système de fichiers proc/proc " ou "d'utiliser un système de fichiers tmpfs pour /tmp".

Vous voyez la signification n ° 1 lorsque vous voyez " /usr/binsystème de fichiers". C'est une arborescence de système de fichiers enracinée dans le répertoire /usr/bin. Oui, Linux très bien fait avoir le concept des répertoires.

Le sens # 2 et le sens # 3 sont ce que vous interprétez mal. Les gens ne parlent pas/usr/bin d'un ensemble de données sur disque, délimité par le découpage / partitionnement du disque. Ils ne parlent pas non /usr/binplus d'un type particulier de pilote de système de fichiers ou d'un format de volume de disque particulier.

Lectures complémentaires

  • Ramesh Bangia (2010). "système de fichiers". Dictionnaire des technologies de l'information . Laxmi Publications, Ltd. ISBN 9789380298153. p. 224.
  • Système de fichiers . "Définitions de base". Les spécifications de base du groupe ouvert . Numéro 7 IEEE 1003.1. Le groupe ouvert. 2013.
  • Binh Nguyen (2004-08-16). "système de fichiers". Le dictionnaire Linux . Version 0.16. p. 616.
JdeBP
la source
8

Bien sûr, Linux utilise le concept de répertoires. Le concept de répertoires est le même que sous Windows.

Le concept des systèmes de fichiers est également très similaire à ce qui est utilisé dans Windows. Windows utilise généralement NTFS ou FAT - Linux utilise généralement ext2, ext3, ext4 et ainsi de suite, c'est toute la différence.

Ce qui est différent, c'est que sous Linux, les fichiers / répertoires de toutes les parties disponibles sont organisés en une seule arborescence. Sous Windows, vous faites référence à différentes partitions à l'aide d'une lettre, par exemple "a:", "c:", sous Linux, le chemin d'accès complet à tout fichier disponible commence par "/" - le répertoire racine. Par exemple, il y a une partition séparée sur votre disque dur avec des fichiers récupérés pour démarrer le système: vous exécutez la commande 'mount' avec les arguments appropriés et le contenu de cette partition devient disponible sur le chemin "/ boot /". Ainsi, les chemins fe "/ boot" et "/ home" peuvent faire référence à des données sur différentes partitions, ces partitions peuvent avoir des systèmes de fichiers différents. Probablement causé votre malentendu.

Les répertoires qui sont physiquement situés sur la même partition auraient toujours "le même système de fichiers". Quand quelqu'un parle du système de fichiers d'un répertoire, il s'agit en fait du système de fichiers de la partition où se trouve ce répertoire.

(Correction mineure et probablement pas importante: parfois le système de fichiers est virtuel et il n'y a pas de partition correspondante. Par exemple "/ proc" contient quelque chose, qui ressemble beaucoup à des fichiers, mais ces "fichiers" sont virtuels, ils ne résident pas sur tout disque dur et contiennent des informations sur les processus en cours d'exécution. Et il existe un système de fichiers "procfs" spécial qui fournit une interface de type fichier habituelle pour ces données)

lesnik
la source
Vous avez mentionné le "système de fichiers d'un répertoire", est-ce qu'il cascade vers tous ses sous-répertoires. Est-il possible qu'un répertoire et ses sous-répertoires aient un système de fichiers différent? Par exemple / a et / a / b , avec / b est une autre partition avec son propre système de fichiers F2 monté sur un système de fichiers F1?
Kenny
Quant à savoir si les répertoires situés sur la même partition font en fait partie du même système de fichiers, cela peut devenir un peu flou pour certains systèmes de fichiers très modernes tels que ZFS ou btrfs; vous pouvez avoir un volume ZFS avec plusieurs systèmes de fichiers le partageant, avec leurs propres points de montage entièrement distincts.
Charles Duffy
@Kenny Oui, vous avez raison. Exemple en direct: j'insère un disque compact dans le lecteur de CD. Mon linux monte le CD dans "/ mount / cdrom". Le répertoire "/ mount" (et tous les fichiers que j'y crée) se trouve sur mon disque dur. Mais le contenu "/ mount / cdrom" est déjà sur CD.
lesnik
6

Un disque est divisé en une ou plusieurs partitions . Pour Windows, il n'y en a généralement qu'un, peut-être avec une partition de récupération cachée quelque part. Une partition est une zone logiquement contiguë du disque, par exemple "secteurs 1 à 10 000 000".

Sur une partition peut être construit un système de fichiers. Pour Windows, c'est NTFS ou FAT; pour Linux, c'est l'une des extversions ou diverses autres options.

À l'intérieur d'un système de fichiers se trouvent des fichiers et des répertoires. Linux a des répertoires, je ne sais pas comment vous avez eu l'idée que ce n'était pas le cas.

Comment un système d'exploitation présente-t-il plusieurs partitions sur plusieurs disques à l'utilisateur? Sous Windows, cela se fait avec des lettres de lecteur : C:, D:etc. Sur Linux, il n'y a pas des lettres de lecteur et tout se fait avec les points de montage : à un répertoire particulier, l' accès reroutage à un autre système de fichiers (+) Souvent , si vous insérez un CD. ou une clé USB, il apparaîtra quelque part sous /mediaou /mnt.

/usret /usr/binseront généralement sur le même système de fichiers mais ne sont pas tenus de l'être. Les gens peuvent vouloir dire «le système de fichiers qui contient le /usr/binrépertoire» lorsqu'ils utilisent ce phrasé.

(+) Vous pouvez aussi le faire avec des points de jonction NTFS, mais les gens le font rarement. Jusqu'à ce qu'ils soient à court de lettres de lecteur.

pjc50
la source
Corrigez-moi si je me trompe: sous Linux, 1 disque physique peut être divisé en plusieurs partitions, chacune ayant son propre système de fichiers? De la même manière qu'un disque dur sous Windows contient plusieurs partitions, l'une peut être FAT et l'autre NTFS?
Kenny
1
Oui, vous avez raison: mais ce n'est pas analogue, c'est exactement le même mécanisme sous-jacent. Les machines à double démarrage peuvent avoir des partitions NTFS et ext3 sur le même disque, et le gestionnaire de disques de chaque système d'exploitation voit le même ensemble de partitions. C'est juste que Windows ne peut pas voir monter les partitions ext3 pour voir les fichiers.
pjc50
3

Il est possible de garder un système Linux entier sur une partition, tous les sous-répertoires étant sur un système de fichiers.

Il est également possible de le répartir sur plusieurs partitions, certains sous-répertoires étant sur différents systèmes de fichiers. Par exemple, il est fréquent de mettre /home, /tmp, /usret /varsur les systèmes de fichiers séparés. Pour répondre à l'une de vos questions, il se /usr/bintrouvera parfois également sur son propre système de fichiers.

Ce schéma présente des avantages. Par exemple, s'il se /varremplit de nombreux e-mails, le reste du système n'est pas affecté. De même, si un système de fichiers est corrompu en raison d'un crash ou de quelque chose, d'autres systèmes de fichiers sont toujours bons et il est plus facile de récupérer le système.

Lorsque le système démarre, au début, seul le système de fichiers racine est disponible. Les programmes qui y sont conservés sont exécutés pendant le processus de démarrage. L'un de ces programmes mount,, est exécuté plusieurs fois, en utilisant les données du fichier /etc/fstab, la table du système de fichiers. Pour prendre un exemple: à l'origine, /homec'est juste un répertoire ordinaire dans le système de fichiers racine. Ensuite, nous exécutons cette commande en tant que root:

mount /dev/sda7 /home

Cela indique au système que le système de fichiers sur la partition /dev/sda7 doit être monté sur le répertoire /home. Alors maintenant, tout dans ce système de fichiers est considéré comme étant sous /home.

Vous pouvez voir ce qui est actuellement monté en exécutant df.

Tom Zych
la source
3

Nous les appelons parfois filesystems, car parfois ces répertoires sont des points de montage. Voilà pour la seule question que vous avez posée ...

filesystem peut se référer à deux choses différentes ... ou en fait deux aspects très différents de la même chose:

  1. La structure logique utilisée pour organiser les données sur un support de stockage.
  2. La méthodologie utilisée par l'OS pour offrir aux processus un accès unifié aux données.

Le concept de fichiers et de répertoires est une métaphore. Pour un ordinateur, il n'y a que des données et tous les médias ne sont que des appareils qui peuvent contenir des données. Certains appareils autorisent la lecture et l'écriture de données (par ex. Disque dur), d'autres appareils autorisent uniquement la lecture de données (par ex. CD-ROM) et il existe même des appareils qui autorisent uniquement l'écriture de données (par ex. Imprimante). Nous utilisons la métaphore du fichier et du répertoire pour structurer les données, afin que nous puissions accéder à de petits morceaux de données, plutôt qu'à tout en même temps.

Les systèmes de fichiers que nous mettons sur les supports de stockage, par exemple ext4, xfs, fat, font la partie structurante. Nous les utilisons pour mettre des étiquettes sur des morceaux de données (fichiers) et pour avoir une liste structurée cohérente de toutes les étiquettes (répertoires). La liste structurée est en fait un arbre. L'aspect le plus important est qu'un arbre a exactement un début, sa racine. Maintenir cette structure et garantir que les données sont et restent accessibles est tout à fait la tâche, c'est pourquoi il n'y a pas qu'une seule saveur de système de fichiers.

L'autre aspect des systèmes de fichiers est qu'il appartient au système d'exploitation de rendre les données stockées sur les périphériques de stockage accessibles à tous les programmes. Ceci est accompli par deux choses:

  1. L'OS offre précisément une interface (de programmation) pour accéder aux fichiers et répertoires et interagir avec eux. Pour les programmes / processus, peu importe que le système de fichiers sur le périphérique de stockage soit ext2, xfs, fat ou autre. Les programmes / processus accèdent aux fichiers et aux répertoires de manière uniforme.

  2. L'OS organise tous les supports de stockage, c'est-à-dire leurs systèmes de fichiers, dans une structure superordonnée. Les programmes accèdent aux fichiers et aux répertoires via cette structure supérieure et n'ont pas besoin d'interagir directement avec les périphériques de stockage. De cette façon, les programmes n'ont pas à se soucier de l'appareil sur lequel les données résident réellement. Cette structure superordonnée est souvent appelée «système de fichiers virtuel» du noyau.

L'ajout du système de fichiers d'un périphérique de stockage au système de fichiers virtuel s'appelle "monter" un système de fichiers. Lorsque votre Linux démarre, le noyau crée le système de fichiers virtuel (VFS). Juste après sa création, il est vide et ne se compose que de son point d'entrée, alias sa racine, transcrit /. Ensuite, le noyau monte un système de fichiers à la racine du VFS. Il s'agit soit d'un disque virtuel, soit immédiatement d'un système de fichiers sur une partition sur un disque dur. Comme elle est ajoutée à la racine du VFS, cette partition est souvent appelée système de fichiers racine.

Maintenant, voici la partie où les lignes sont floues et nous voyons que les systèmes de fichiers sur les périphériques de stockage et le VFS du noyau sont en fait deux aspects de la même tâche du système d'exploitation: avec le montage d'un système de fichiers racine, le VFS contient de nombreux fichiers et répertoires, qui tous existent sur la partition racine. Cependant, chaque répertoire peut devenir un "point de montage". Un point de montage est l'endroit où le VFS place le point d'entrée vers un système de fichiers sur un périphérique de stockage. Cela signifie que chaque fois que nous montons un système de fichiers sur un répertoire, nous informons le VFS qu'au lieu d'accéder aux données stockées dans ce répertoire, nous préférons accéder aux données sur un périphérique de stockage différent. Les points de montage sont généralement des répertoires vides, de sorte que nous ne rendons pas les données inaccessibles en montant d'autres systèmes de fichiers sur le dessus.

Lorsque vous installez votre système d'exploitation, c'est à vous de décider si vous souhaitez placer toutes les données sur un système de fichiers qui devient alors votre système de fichiers racine, ou si vous souhaitez diviser vos données entre plusieurs systèmes de fichiers. Ce dernier nécessite que votre système d'exploitation monte tous les systèmes de fichiers individuels, pour rendre toutes les données accessibles. La façon dont vous divisez les choses dépend de la façon dont vous concevez votre système. C'est pourquoi parfois les répertoires que vous connaissez de votre installation sont appelés systèmes de fichiers.

Pour les ordinateurs que nous avons habituellement à la maison, il n'est plus nécessaire de diviser votre installation en plusieurs systèmes de fichiers. Il peut toujours y avoir de bonnes raisons de le faire, mais cela est hors de portée de cette publication.

Pour garder le reste de cette publication courte: Les partitions sont un autre moyen de structurer les données sur les périphériques de stockage. Avec les partitions, on découpe l'espace de stockage contigu d'un périphérique de stockage physique et les offre en tant que périphériques de stockage individuels au système d'exploitation (sur lequel on peut placer des systèmes de fichiers à monter dans le VFS). Cela peut être dû au fait que l'on n'a qu'un seul disque dur, mais que l'on souhaite utiliser de nombreux systèmes de fichiers différents. La partition sur laquelle réside le système de fichiers racine est souvent appelée partition racine.

Bananguin
la source
1

Vous faites un peu de confusion. Filesystemindique un mécanisme par lequel les fichiers sont localisés et organisés sur un périphérique de stockage ou sur une mémoire de masse, comme un disque dur ou un CD-ROM et, dans certains cas, également sur la RAM.

Même les fenêtres des utilisations telles que les systèmes de fichiers NTFSou, plus tôt, FAT.

Votre exemple montre une pratique courante pour les systèmes Linux et Unix, pour avoir leur propre système composé de différents systèmes de fichiers montés sur des répertoires nommés point de montage. Cela permet, en cas de problème, de limiter les dégâts à un ou plusieurs mais pas à tous les systèmes de fichiers.

Donc, FS n'est pas équivalent au répertoire, et aussi sous linux il y a des répertoires, qui sont un type spécial de fichier

LilloX
la source