Quels points de assembly existent sur un système Linux typique?

J'ai 2 questions.

  1. Pendant l'installation de Linux, nous spécifions l'espace memory pour 2 points de assembly – root et swap. Y a-t-il d'autres points de assembly créés sans l'avis des users?
  2. Est-ce que cette affirmation est correcte: "le assembly n'apparaît dans l'image qu'avec des partitions différentes, c'est-à-dire que vous ne pouvez pas monter, disons, / proc sauf si c'est une partition différente"?

Il y a des idées fausses derrière vos questions.

  1. Swap n'est pas monté.
  2. Le assembly n'est pas limité aux partitions.

Partitions

Une partition est une tranche¹ d'espace disque consacrée à un usage particulier. Voici quelques objectives communs pour les partitions.

  • Un système de files , c'est-à-dire des files organisés sous la forme d'une arborescence de directorys et stockés dans un format tel que ext2, ext3, FFS, FAT, NTFS, …
  • Espace de swap, c'est-à-dire espace disque utilisé pour la pagination (et stockage des images d'hibernation ).
  • Accès direct à l'application. Certaines bases de données stockent leurs données directement sur une partition plutôt que sur un système de files pour gagner un peu de performance. (Un système de files est de toute façon une sorte de database.)
  • Un conteneur pour d'autres partitions. Par exemple, une partition PC étendue , ou une tranche de disque contenant des partitions BSD, ou un volume physique LVM (contenant éventuellement des volumes logiques pouvant eux-mêmes être considérés comme des partitions), …

Systèmes de files

Les filesystems présentent des informations dans une structure hiérarchique. Voici quelques types de filesystems courants:

  • Systèmes de files sauvegardés sur disque, tels que ext2, ext3, FFS, FAT, NTFS, …
    • Le support n'a pas besoin d'être directement sur une partition de disque, comme vu ci-dessus. Par exemple, il peut s'agir d'un volume logique LVM ou d'un assembly en boucle .
  • Systèmes de files sauvegardés en memory, tels que tmpfs de Solaris et Linux.
  • Systèmes de files qui présentent des informations du kernel, comme proc et sysfs sous Linux.
  • Les filesystems réseau, tels que NFS , Samba , …
  • Systèmes de files sauvegardés par application, dont FUSE possède une grande collection . Les filesystems sauvegardés par application peuvent faire n'importe quoi: faire apparaître un server FTP comme système de files, donner une autre vue d'un système de files où les noms de files sont insensibles à la casse ou convertis en un autre enencoding.

Montage

Unix présente des files dans une seule hiérarchie, généralement appelée "le système de files" (mais dans cette réponse, je n'utiliserai pas le mot "système de files" dans ce sens pour minimiser la confusion). Des filesystems individuels doivent être greffés sur cette hiérarchie pour pouvoir y accéder.³

Vous rendez un système de files accessible en le montant. Le assembly associe le directory racine du système de files que vous montez à un directory existant dans la hiérarchie des files. Un directory qui a une telle association est appelé sharepoint assembly.

  • Par exemple, le système de files racine est monté au moment du démarrage (avant que le kernel commence un process²) dans le directory / .
  • Le système de files proc sur lequel certaines versions d'unix telles que Solaris et Linux exposent des informations sur les process est monté sur /proc , de sorte que /proc/42/environ désigne le file /42/environ sur le système de files proc qui ) contient une vue en lecture seule de l'environnement du process numéro 42.
  • Si vous avez un système de files séparé, par exemple pour /home , /home/john/myfile.txt désigne le file dont le path est /john/myfile.txt partir de la racine du système de files domestique.

Sous Linux, il est possible que le même système de files soit accessible via plus d'un path, grâce à bind mount .

Un système de files Linux typique a de nombreux filesystems montés. (Ceci est un exemple, différentes dissortingbutions, versions et configurations conduiront à différents filesystems montés.)

  • / : le système de files racine, monté avant que le kernel charge le premier process. Le bootloader indique au kernel ce qu'il faut utiliser comme système de files racine (il s'agit généralement d'une partition de disque mais peut être autre chose qu'une export NFS, par exemple).
  • /proc : le proc filessytem, ​​avec des informations sur le process et le kernel.
  • /sys : le système de files sysfs , avec des informations sur les périphériques matériels.
  • /dev : un système de files en memory où les files de périphériques sont automatiquement créés par udev en fonction du matériel disponible.
  • /dev/pts : un système de files spécial contenant des files de périphériques pour les émulateurs de terminal en cours d'exécution.
  • /dev/shm : un système de files en memory utilisé à des fins internes par la bibliothèque standard du système.
  • En fonction des composants système que vous utilisez, vous pouvez voir d'autres filesystems spéciaux tels que binfmt_misc (utilisé par le sous-système du kernel du file exécutable étranger ), fusectl (utilisé par FUSE ), nfsd (utilisé par le server NFS du kernel), …
  • Tout système de files explicitement mentionné dans /etc/fstab (et non marqué noauto ) est monté dans le cadre du process de démarrage.
  • Tout système de files monté automatiquement par HAL (ou une fonctionnalité équivalente) suite à l'insertion d'un périphérique amovible tel qu'une key USB.
  • Tout système de files monté explicitement avec la command mount .

¹ De façon informelle ici.
² Initrd et tels sont au-delà de la scope de cette réponse.
³ C'est différent de Windows, qui a une hiérarchie distincte pour chaque système de files, par exemple c: ou \\hostname\sharename .

  1. Chaque dissortingbution linux a son propre arrangement de partition par défaut; certains d'entre eux utilisent des dizaines de partitions, certaines seulement. 3 et 4 sont des arrangements assez communs (/ boot, /, swap et / home). Certaines mises en page plus anciennes avaient souvent / var sur une partition séparée et des systèmes extrêmes, et tout dans / var / * et / opt / * sur des partitions séparées! La meilleure généralisation que je peux faire en réponse à votre question est que rien dans le monde unix ne se fait sans l'avis des users ou la capacité de le changer !
  2. Vous pouvez monter des choses qui ne sont pas des partitions. Par exemple / proc n'est généralement pas une partition, c'est un pseudo système de files fourni par le kernel qui vous permet de lire et d'écrire des données sur les process en cours d'exécution comme s'il s'agissait de files. Vous pouvez également monter des files (comme les ISO) comme s'ils étaient des lecteurs utilisant un périphérique de bouclage, lier des dossiers de assembly à d'autres endroits et faire d'autres astuces ninja.