Qu'est-ce qu'un nœud sous Linux

WBOY
Libérer: 2022-06-28 17:23:19
original
4788 Les gens l'ont consulté

Sous Linux, l'i-node est une table de 64 octets ; l'i-node contient des informations sur un fichier, notamment la taille du fichier, le propriétaire du fichier, la méthode d'autorisation d'accès au fichier et si le fichier est un fichier ordinaire ou un fichier de répertoire. Ou des fichiers spéciaux, etc., l'élément le plus important du i-node est la table d'adresses de disque.

Qu'est-ce qu'un nœud sous Linux

L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.

Le nœud i sous Linux

Le nœud i est une table de 64 octets de long, contenant des informations sur un fichier, y compris la taille du fichier, le propriétaire du fichier, la méthode d'autorisation d'accès au fichier et si le fichier est un fichier ordinaire ou un fichier de répertoire ou spécial documents, etc

Le système de fichiers Linux est le cœur du système Linux, fournissant une structure hiérarchique de répertoires et de fichiers. Le système de fichiers divise l'espace disque en groupes de 1024 octets, appelés blocs (il existe également des blocs de 512 octets, comme SCOXENIX). Numéroté de 0 au nombre maximum de blocs pour l'ensemble du disque.

Tous les blocs peuvent être divisés en quatre parties. Le bloc 0 est appelé le bloc de démarrage, qui n'est pas utilisé par le système de fichiers ; le bloc 1 est appelé le bloc privé. Le bloc privé contient de nombreuses informations, notamment la taille du disque et. la taille des deux autres parties du bloc entier. À partir du bloc 2 se trouve la table des i-nodes, qui contient des i-nodes. Le nombre de blocs dans la table est variable, ce qui sera discuté plus tard. Après la table i-node se trouve un bloc de stockage libre (bloc de stockage de données), qui peut être utilisé pour stocker le contenu du fichier.

La structure logique et la structure physique d'un fichier sont très différentes. La structure logique est le fichier que l'utilisateur voit après avoir tapé la commande cat. L'utilisateur peut obtenir un flux de caractères représentant le contenu du fichier. La structure physique correspond à la manière dont le fichier est réellement stocké sur le disque. Les utilisateurs pensent que leurs fichiers sont des flux de caractères frontaliers, mais en fait, les fichiers ne peuvent pas être stockés sur le disque de manière frontalière. Les fichiers de plus d'un bloc sont généralement stockés dispersés sur le disque. Cependant, lorsqu'un utilisateur accède à un fichier, le système de fichiers Linux supprime chaque bloc dans le bon ordre et fournit à l'utilisateur la structure logique du fichier.

Bien sûr, il doit y avoir une table quelque part dans le système Linux qui indique au système de fichiers comment convertir la structure physique en une structure logique. Cela implique le nœud i.

i node est un tableau de 64 octets qui contient des informations sur un fichier, notamment la taille du fichier, le propriétaire du fichier, la méthode d'autorisation d'accès au fichier et si le fichier est un fichier normal, un fichier de répertoire ou un fichier spécial, etc. . L'élément le plus important du i-node est la table d'adresses de disque.

Il y a 13 numéros de bloc dans ce tableau. Les 10 premiers numéros de bloc sont les adresses de stockage des 10 premiers blocs du fichier. Ces 10 numéros de bloc peuvent donner la structure logique d'un fichier d'une longueur maximale de 10 blocs. Le fichier obtiendra les blocs correspondants dans l'ordre dans lequel les numéros de bloc apparaissent dans la table d'adresses du disque. Que se passe-t-il lorsque le fichier comporte plus de 10 blocs ? Le 11ème élément de la table d'adresses de disque donne un numéro de bloc. Le bloc pointé par ce numéro de bloc contient 256 numéros de bloc. Jusqu'à présent, cette méthode satisfait les fichiers de plus de 266 blocs. 272384 octets). Si le fichier comporte plus de 266 blocs, l'élément 12 de la table d'adresses de disque donne un numéro de bloc. Le bloc pointé par ce numéro de bloc contient 256 numéros de bloc. Chacun de ces 256 numéros de bloc pointe vers un bloc, et le bloc en contient 256. numéros de bloc, ces numéros de bloc sont utilisés pour récupérer le contenu du fichier. La méthode d'adressage d'index de l'élément 13 dans l'adresse de disque est similaire à celle de l'élément 12, sauf qu'il existe un niveau supplémentaire d'index indirect.

De cette façon, dans le système Linux, la longueur maximale du fichier est de 16842762 blocs, soit 17246988288 octets. Heureusement, le système Linux a ajouté une limite plus pratique à la longueur maximale du fichier (généralement 1 à 2 Mo d'octets). ), afin que les utilisateurs ne puissent pas créer par inadvertance un fichier qui utilise tous les blocs de toute la zone du disque.

inode

Quand il s'agit d'inode, nous devons d'abord présenter la structure globale du disque dur. Le disque dur contient plusieurs plateaux de disque dur. Les plateaux de disque dur sont ronds. Chaque plateau de disque dur a une tête magnétique (Tête) qui peut lire et écrire. Lorsque cette tête est fixée et que le plateau de disque dur tourne une fois, la piste qu'elle suit. est une piste. L'ensemble des mêmes numéros de piste sur tous les plateaux du disque dur est appelé un cylindre. Chaque piste est divisée en plusieurs zones, et chaque zone est appelée un secteur. Un secteur est la plus petite quantité physique de stockage d'un disque dur. La capacité de stockage d'un secteur est d'environ 512 octets (environ 0,5 Ko).

Après avoir connu la structure générale du disque dur, parlons de comment partitionner le disque dur. La plus petite unité de partitionnement du disque dur est la colonne magnétique. Après le partitionnement, elle est naturellement formatée. Lors du formatage sous Linux, vous devez prendre en compte le bloc et l'inode. Il s'agit de la plus petite unité que le disque peut enregistrer. Elle est composée de plusieurs secteurs, sa taille est donc généralement de n*512 octets.

Alors, qu'est-ce que l'inode ? Block est la zone qui enregistre le contenu du fichier, et l'inode enregistre les attributs du fichier et les informations dans lesquelles Block il est placé. Par conséquent, chaque fichier occupera un inode. Lorsque le système Linux souhaite rechercher un fichier, il recherchera d'abord la table des inodes pour trouver les attributs du fichier et l'emplacement de stockage des données, puis recherchera le bloc où les données sont stockées pour récupérer les données. Le nombre d'inodes a été défini au début. La méthode de paramétrage est généralement "taille du disque dur/une capacité". Cette capacité est de préférence supérieure au bloc. Par exemple, si le bloc est défini sur 4K à l'instant, alors la capacité. peut être réglé sur environ 8K. Par conséquent, si un disque dur de 1 Go est divisé en 8 Ko inodes, il y aura 131 072 inodes. La taille d'un inode est de 128 octets. De cette façon, nous pouvons clairement savoir qu'une fois formatée en système de fichiers, elle comportera essentiellement deux gros blocs : la table des inodes et la zone de données, et l'un d'entre eux est utilisé pour enregistrer les inodes. informations d'attribut du fichier. Le bloc Block stocké avec le fichier est utilisé pour enregistrer le contenu du fichier.

Après la création d'un fichier, un inode et un bloc seront créés en même temps. L'inode stocke les informations d'attribut du fichier, mais n'inclut pas le nom du fichier, et stocke le pointeur vers l'adresse du bloc où se trouve le fichier. les données correspondantes sont localisées ; le bloc stocke les données du fichier, chaque bloc peut stocker au plus un fichier, et lorsqu'un bloc ne peut pas être stocké, le bloc suivant sera occupé.

Le nom de fichier, les attributs de fichier et le contenu des fichiers sous Linux sont stockés séparément : le nom de fichier est stocké dans l'entrée du répertoire (c'est-à-dire dentry) et les attributs de fichier sont stockés dans l'inode. Dans des circonstances normales, chaque inode. occupe 128 bits d'espace disque. Le contenu du fichier est stocké dans des blocs de données.

Vous pouvez utiliser mkfs.ext3 -b pour définir la taille du bloc. Chaque bloc peut stocker jusqu'à un fichier, donc généralement le paramètre de taille de bloc doit être basé sur les paramètres d'application de notre serveur si ce serveur est utilisé pour le stockage supplémentaire. Pour certains petits fichiers, la taille du bloc peut être définie plus petite pour éviter de gaspiller de l'espace. Lorsque des données volumineuses sont stockées, la taille du bloc doit être définie plus grande, ce qui peut réduire la lecture des blocs de disque. Le nombre de fois de récupération peut également réduire le nombre de fois. charge d'enregistrement des inodes.

Plus le bloc est grand, moins il y a d'inodes, ce qui convient aux systèmes de fichiers qui stockent des fichiers volumineux ; plus le bloc est petit, plus il y a d'inodes, qui conviennent aux systèmes de fichiers qui stockent de nombreux fichiers mais de petite taille.

Lorsque le système est en cours d'exécution, l'inode et le bloc synchroniseront la mémoire et le disque après modification. Le contenu que nous répertorions en utilisant ls -li est le stockage temporaire dans la mémoire, donc parfois l'arrêt anormal du système provoquera un blocage et un blocage. problème de désynchronisation de l'inode.

Apprentissage recommandé : Tutoriel vidéo Linux

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!