Aperçu
mknod crée des fichiers dans le système de fichiers avec des objectifs spéciaux. Ces fichiers servent d'interface à des périphériques ou à des canaux de communication spécifiques plutôt que de stocker des données réelles. Les périphériques de bloc représentent des périphériques qui transfèrent des données par blocs, comme les disques, tandis que les périphériques de caractères représentent des périphériques qui transfèrent des données par caractères, comme les terminaux ou les ports série. Les FIFO sont des tubes nommés utilisés pour échanger des données entre deux processus ou plus.
Utilisations principales
- Créer des fichiers de périphérique de bloc
- Créer des fichiers de périphérique de caractère
- Créer des FIFO (tubes nommés)
Options principales
La commande mknod utilise des options pour spécifier le type de fichier spécial à créer, et pour les fichiers de périphérique, elle utilise des arguments pour spécifier les numéros de périphérique majeur (Major) et mineur (Minor).
Spécification du type de fichier
Spécification des numéros de périphérique (pour les périphériques de bloc/caractère uniquement)
Commande générée :
Essayez de combiner les commandes.
Description:
`mknod` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
La commande mknod doit généralement être exécutée avec les privilèges root. Les exemples suivants montrent les utilisations courantes.
Création d'un FIFO (tube nommé)
mknod my_pipe p
Crée un fichier FIFO qui sera utilisé pour la communication inter-processus.
Création d'un fichier de périphérique de bloc (par exemple, disque virtuel)
sudo mknod /dev/myblockdev b 8 16
Crée un fichier de périphérique de bloc avec le numéro majeur 8 (disque SCSI/SATA) et le numéro mineur 16. Ne fonctionnera pas s'il n'est pas connecté à un périphérique réel.
Création d'un fichier de périphérique de caractère (par exemple, terminal virtuel)
sudo mknod /dev/mychardev c 4 64
Crée un fichier de périphérique de caractère avec le numéro majeur 4 (terminal virtuel) et le numéro mineur 64. Ne fonctionnera pas s'il n'est pas connecté à un périphérique réel.
Vérification des fichiers spéciaux créés
ls -l my_pipe /dev/myblockdev /dev/mychardev
Utilisez la commande ls -l pour vérifier le type et les permissions des fichiers spéciaux créés. 'p' indique un FIFO, 'b' un périphérique de bloc et 'c' un périphérique de caractère.
Conseils et précautions
La commande mknod traite des parties importantes du système, il faut donc l'utiliser avec une extrême prudence.
Permissions
- Dans la plupart des cas, mknod doit être exécuté avec les privilèges root (sudo). Les utilisateurs ordinaires peuvent créer des fichiers FIFO, mais les fichiers de périphérique nécessitent des privilèges root pour l'intégrité du système.
Comprendre les numéros de périphérique
- Les numéros de périphérique majeur et mineur sont utilisés par le noyau du système pour identifier un pilote de périphérique spécifique et les périphériques individuels gérés par ce pilote. L'utilisation de numéros incorrects peut entraîner un dysfonctionnement du système, il est donc essentiel de vérifier et d'utiliser les numéros corrects. Vous pouvez consulter les numéros des périphériques existants via `/proc/devices` ou la commande `ls -l /dev`.
Risque de corruption du système de fichiers
- La création de fichiers de périphérique pour des périphériques inexistants ou l'utilisation de numéros qui entrent en conflit avec des fichiers de périphérique existants peut entraîner une instabilité du système ou une perte de données. Il doit être utilisé avec prudence uniquement lorsque cela est absolument nécessaire.