Dans Linux, tout est un fichier, même les périphériques physiques tels que les lecteurs de disque, les CD/DVD ROM et les disquettes sont représentés à l’aide de fichiers. Cependant, ces fichiers ne sont pas des fichiers de données ordinaires. Au lieu de cela, ces fichiers spéciaux sont appelés fichiers de périphérique et ils peuvent générer ou recevoir les données.

Habituellement, tous les fichiers spéciaux sont présents sous le /dev annuaire. Certains des exemples courants de fichiers spéciaux sont /dev/null, /dev/zéro, /dev/fullet /dev/sr0.

Les fichiers spéciaux peuvent être de type caractère ou bloc. Comme son nom l’indique, les fichiers de caractères traitent un caractère à la fois, tandis que les fichiers de blocs traitent plusieurs caractères à la fois.

Dans ce guide avancé, nous expliquerons comment créer un fichier de périphérique à l’aide de mknod commande. Après avoir suivi ce guide, les utilisateurs de Linux pourront travailler avec différents types de fichiers de périphérique en toute confiance.

Syntaxe de la commande mknod

La syntaxe de la mknod La commande est légèrement différente des autres commandes Linux. La principale différence est que nous devons spécifier les nombres majeur et mineur lors de la création d’un caractère et bloquer les fichiers de périphérique :

Publicité
$ mknod [OPTIONS]   [MAJOR] [MINOR] ...

Dans la syntaxe ci-dessus, les crochets ([]) représentent les arguments facultatifs tandis que les crochets angulaires (<>) représentent les arguments obligatoires.

Sous Linux, le nombre majeur est utilisé pour spécifier le pilote de périphérique qui doit être utilisé. Ce numéro est attribué lors de l’enregistrement d’un pilote de périphérique.

De la même manière, le numéro mineur est utilisé pour spécifier le périphérique réel. On retrouve les numéros majeurs et mineurs réservés dans le Documentation du noyau Linux.

1. Créer un canal sans nom sous Linux

Sous Linux, nous utilisons des canaux pour permettre la communication inter-processus. Dans Shell, le tuyau est représenté à l’aide de la ligne verticale (|). Il lit la sortie du processus précédent et l’envoie comme entrée au processus suivant.

Comprenons cela avec un exemple simple:

$ echo "tecmint.com" | wc -c

Dans cet exemple, nous utilisons le tube pour lire la sortie de la commande echo et l’envoyer comme entrée à la commande wc pour un traitement ultérieur.

Ici, nous avons utilisé la ligne verticale (|) pour créer un tuyau. Cependant, cela crée un canal sans nom et sa portée est limitée à la commande actuelle uniquement. Dans l’exemple suivant, nous verrons comment créer un tube nommé.

2. Créer un canal nommé sous Linux

Nous pouvons utiliser le mknod commande pour créer un canal nommé. Le canal nommé réside sur le système de fichiers comme n’importe quel autre fichier normal. Cependant, son objectif principal est de permettre la communication inter-processus entre des processus non liés.

Tout d’abord, spécifions le type d’appareil comme p pour créer un canal nommé :

$ mknod /tmp/named-pipe p
$ ls -l /tmp/named-pipe 

Essayons maintenant de lire le fichier :

$ cat /tmp/named-pipe

Ici, nous pouvons voir que la commande cat attend infiniment :

Lire Le Fichier De Canal Nommé
Lire Le Fichier De Canal Nommé

Ensuite, ouvrons un autre terminal et écrivons des données dans le /tmp/named-pipe déposer:

$ echo "tecmint.com" > /tmp/named-pipe

Enfin, dirigez-vous vers le premier terminal pour voir le résultat :

Afficher Le Fichier De Canal Nommé
Afficher Le Fichier De Canal Nommé

Ici, on peut voir que le écho et chat les commandes sont capables de communiquer en utilisant le canal nommé.

3. Créer un fichier de périphérique de caractères sous Linux

De la même manière, nous pouvons utiliser le type d’appareil comme c pour créer un périphérique de caractère. Cependant, nous devons utiliser les nombres majeurs et mineurs lors de la création d’un périphérique de caractère.

Utilisons la commande ls pour trouver les nombres majeur et mineur du /dev/full appareil:

$ ls -l /dev/full
Trouver Le Numéro Majeur Et Mineur Du Fichier
Trouver Le Numéro Majeur Et Mineur Du Fichier

Dans la sortie ci-dessus, la paire de nombres séparés par des virgules, c’est-à-dire 1, 7 représentent respectivement les nombres majeur et mineur.

Sous Linux, le /dev/full l’appareil renvoie toujours le Il ne reste plus d’espace sur l’erreur de l’appareil. Pour comprendre cela, écrivons quelques données sur cet appareil :

$ echo "tecmint.com" > /dev/full
Écrire Des Données Dans Le Fichier De Périphérique
Écrire Des Données Dans Le Fichier De Périphérique

Maintenant, utilisons le mknod commande pour créer un nouveau périphérique qui se comporte de la même manière que /dev/full appareil:

$ sudo mknod /tmp/full-device c 1 7

Ensuite, changeons les permissions du fichier :

$ sudo chmod 666 /tmp/full-device 
$ ls -l /tmp/full-device

Enfin, écrivez quelques données sur le périphérique nouvellement créé :

$ echo "tecmint" > /tmp/full-device
Créer Un Nouveau Fichier De Périphérique
Créer Un Nouveau Fichier De Périphérique

Il est important de noter que le périphérique de caractère nouvellement créé se comporte comme le /dev/full périphérique à cause des mêmes numéros majeurs et mineurs.

4. Créer un fichier de périphérique de bloc sous Linux

En plus de cela, nous pouvons spécifier le type d’appareil comme b pour créer un périphérique bloc. Pour créer un périphérique bloc, nous devons utiliser les nombres majeur et mineur.

Sous Linux, /dev/sr0 représente le CD/DVD-ROM appareil. Maintenant, créons un nouveau périphérique de bloc qui se comporte de la même manière que /dev/sr0.

Tout d’abord, découvrons les nombres majeurs et mineurs de la /dev/sr0:

$ ls -l /dev/sr0
Vérifier Les Numéros Majeurs Et Mineurs Du Fichier De Périphérique
Vérifier Les Numéros Majeurs Et Mineurs Du Fichier De Périphérique

Dans la sortie ci-dessus, nous pouvons voir que ses nombres majeur et mineur sont 11 et 0 respectivement.

Maintenant, créons un nouveau périphérique bloc avec les mêmes numéros majeur et mineur :

$ sudo mknod /tmp/dvd-rom b 11 0
$ ls -l /tmp/dvd-rom 
Créer Un Nouveau Périphérique De Bloc
Créer Un Nouveau Périphérique De Bloc

Ensuite, montons l’image ISO du CD/DVD ROM sur le /mn répertoire et vérifiez que l’opération de montage réussit :

$ sudo mount /tmp/dvd-rom /mnt/
$ ls -1 /mnt/
Monter Un Nouveau Périphérique De Bloc
Monter Un Nouveau Périphérique De Bloc

Dans cet exemple, nous pouvons voir que le /tmp/dvd-rom périphérique de bloc est en mesure d’accéder à l’image ISO à partir du CD/DVD ROM.

5. Créer un fichier de périphérique avec des autorisations

Parfois, nous devons modifier l’autorisation d’accès du fichier de périphérique avant de l’utiliser. Dans de tels cas, nous devons utiliser le chmod commande. Cependant, nous pouvons obtenir le même résultat en utilisant le mknod commande au lieu d’utiliser deux commandes distinctes.

Pour comprendre cela, utilisons le -m option pour définir les autorisations d’accès lors de la création d’un canal nommé :

$ sudo mknod -m 444 /tmp/pipe-with-permissions p

Maintenant, vérifions que les autorisations ont été correctement définies :

$ ls -l /tmp/pipe-with-permissions
Créer Un Fichier De Périphérique Avec Des Autorisations
Créer Un Fichier De Périphérique Avec Des Autorisations

Dans cet exemple, nous avons utilisé le -m option avec le canal nommé. Cependant, nous pouvons également l’utiliser avec les périphériques de caractère et de bloc.

Connaissez-vous un autre meilleur exemple de mknod commande sous Linux? Faites-nous part de vos opinions dans les commentaires ci-dessous.

Rate this post
Publicité
Article précédent‘Play It Cool, Guys’ Anime obtient un mini-anime en 2 épisodes le 20 et 27 mars – News 24
Article suivantFortinet FortiOS Flaw Exploited in Targeted Cyberattacks on Government Entities
Avatar
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici