GNU/Linux >> Tutoriels Linux >  >> Linux

Bases sur les fichiers Unix :Inode, Soft Vs Hard link, Device files, Named pipes

Inodes

Chaque fichier d'un système d'exploitation Linux/Unix est associé à un inode, à l'exception de Solaris ZFS, qui n'a pas d'inodes. Les inodes fonctionnent essentiellement de manière très similaire à une annexe d'un livre. Chaque Inode aura ci-dessous des informations sur le fichier.

1. propriétaire
2. autorisations
3. taille
4. heure du dernier accès
5. temps de création
6. identifiant de groupe
7. Pointeurs vers des blocs de données associés au contenu du fichier
Remarque :Inode ne fournit cependant pas de nom de fichier.

Types de fichiers

Il existe essentiellement 5 types de fichiers dans n'importe quel système d'exploitation Unix.

1. Régulier
2. Répertoire
3. Liens symboliques (lien dur et lien souple)
4. Fichiers de périphérique (spécial caractère et périphérique spécial bloc)
5. Tubes nommés

Le caractère dans la première colonne de la commande ls -l identifie le type d'un fichier.

# cd /
# ls -l bin
lrwxrwxrwx   1   root   root  9  Sep  19  15:41   bin -> ./usr/bin
-   Regular files
d   Directories
l   Symbolic links
b   Block-special device files
c   Character-special device files
p   Named pipes

Fichiers et répertoires

Les fichiers réguliers peuvent stocker différents types de données et peuvent être facilement créés à l'aide de la commande tactile ou de l'éditeur vi. Les répertoires contiennent l'association entre les fichiers et/ou les répertoires et les numéros d'inode.

Liens souples

Comme le montre le diagramme, les liens symboliques ou les liens symboliques pointent simplement vers un autre fichier. Il ne contient que le chemin du fichier vers lequel il pointe

1. Méthode de création

# touch file1
# ln -s file1 link1
# ls -l
-rw-r--r-- 1   root   root  0  Sep  19  14:41  link1
lrwxrwxrwx 1   root   root  5  Sep  19  15:41  link1 -> file1

2. La taille du lien symbolique créé dans l'exemple ci-dessus est le nombre de caractères dans le chemin d'accès (fichier1), qui est de 5 (il peut être absolu ou relatif).
3. Si vous supprimez le fichier d'origine (fichier1), le lien symbolique devient inutile.
4. Les liens symboliques peuvent résider sur différents systèmes de fichiers.

Liens physiques

Chaque fichier utilise au moins un lien physique. Ainsi, lorsque vous créez un nouveau fichier, une nouvelle entrée de répertoire est créée, appelée nombre de liens. Ainsi, lorsque vous créez un nouveau lien physique vers ce fichier, le nombre de liens augmente de 1.

1. méthode de création

# touch file1
# ls -l
-rw-r--r-- 1  root  root  0  Sep  23  13:19  file1
# ln file1 file2
# ls -l
-rw-r--r--  2  root  root  0  Sep  23  13:19  file1
-rw-r--r--  2  root  root  0  Sep  23  13:19  file2
# ls -li
1282  -rw-r--r--  2  root  0  root  0  Sep  23  13:19  file1
1282  -rw-r--r--  2  root  0  root  0  Sep  23  13:19  file2
# find . -inum 1282
./file1
./file2

2. Le nombre de liens augmente d'un, chaque fois que vous créez un nouveau lien physique vers le fichier, comme indiqué ci-dessus.
3. Même si vous supprimez l'un des fichiers, cela n'a aucun effet sur l'autre fichier. Seul le nombre de liens diminue
4. Les liens physiques ne peuvent pas traverser le système de fichiers.

Fichiers de l'appareil

Dans le système d'exploitation UNIX, tout périphérique physique est associé à un fichier appelé fichier de périphérique . C'est une interface qui interagit avec les pilotes de périphériques. Contrairement à d'autres types de fichiers, ils ne contiennent aucune donnée dans des blocs de données, mais utilisent les inodes pour stocker le numéro majeur et mineur pour n'importe quel fichier de périphérique.

# cd /dev/
# ls -l
crw-r-----  1  root  tty   4,  0  Sep  23  12:51  tty0
brw-rw----- 1  root  disk  8,  1  Sep  23  12:51  sda0

N° d'appareil principal – Pilote de périphérique spécifique requis pour accéder à un périphérique
périphérique mineur non – unité spécifique du type contrôlé par le pilote de périphérique.

Par exemple, si vous avez 10 imprimantes HP, le numéro majeur sera le pilote des périphériques d'impression HP et le numéro mineur sera l'instance de l'imprimante (1,2 .. jusqu'à 10).

Les fichiers de périphérique sont de 2 types
1. Caractère spécial
2. Blocage spécial

Fichiers d'appareils spéciaux pour les personnages
1. Le caractère "c" dans la première colonne de la sortie de la commande ls -l identifie un fichier de périphérique spécial de caractères
2. Les données sont accessibles sous forme de flux de données (caractère par caractère, 1 octet à la fois)
3. Exemple :tty, série, terminaux virtuels

# ls -l
crw-r-----  1  root  tty   4,  0  Sep  23  12:51  tty0

Bloquer le fichier de périphérique spécial
1. Le caractère « b » dans la première colonne de la sortie de la commande ls -l identifie un fichier de périphérique spécial de caractères
2. Les données sont accessibles selon la taille de bloc définie pour cet appareil
3. Exemple :Disque dur, CD/DVD

# ls -l
brw-rw-----  1  root  disk   8,  1  Sep  23  12:51  sda0

Canaux nommés

– Les canaux nommés sont des fichiers spéciaux utilisés pour les communications entre processeurs. Contrairement aux canaux normaux, vous pouvez lire et écrire dans les canaux nommés. Pour cette raison, ils sont également appelés FIFO (file in file out).
– mknod() ou mkfifio() sont des exemples courants qui utilisent des canaux nommés pour accéder au canal par son nom.
– Comme le montre l'exemple ci-dessous, 2 processus (gzip et cat) peuvent accéder simultanément au canal nommé pour y écrire et y lire des données.

# mkfifo test_pipe
# gzip -9 -c > test_pipe < out.gz
# cat file1 > test_pipe
# ls -l test_pipe
prw-rw-----  1  root  root  0  Sep  23  12:51  test_pipe


Linux
  1. Comprendre les bases des inodes UNIX / Linux avec des exemples

  2. RHEL 7 – RHCSA Notes :Créez des liens matériels et logiciels.

  3. UNIX/Linux :notions de base sur les listes de contrôle d'accès (ACL)

  4. Qu'est-ce que les liens souples et les liens durs dans le système de fichiers Linux

  5. Questions d'entretien Linux :fichiers ouverts / descripteurs de fichiers ouverts

Comment créer des liens matériels et logiciels (lien symbolique) sur les systèmes Linux

Expliquer Soft Link et Hard Link sous Linux avec des exemples

Création forcée de lien(s) physique(s) de répertoire ?

La commande ln sous Linux :créer des liens logiciels et matériels

Commande Unix LS :15 exemples pratiques

Pourquoi je ne peux pas créer de lien physique à partir d'un fichier de périphérique dans un répertoire autre que /dev ?