Que signifie «Tout est un fichier» dans Linux?

Table des matières:

Que signifie «Tout est un fichier» dans Linux?
Que signifie «Tout est un fichier» dans Linux?

Vidéo: Que signifie «Tout est un fichier» dans Linux?

Vidéo: Que signifie «Tout est un fichier» dans Linux?
Vidéo: Que faire si vous perdez votre téléphone !! 👀🙌🏼🙌🏼 #davidmichigan #michiganacademy - YouTube 2024, Novembre
Anonim
L'une des caractéristiques déterminantes de Linux et d'autres systèmes d'exploitation de type UNIX est que «tout est un fichier». C'est une simplification excessive, mais comprendre ce que cela signifie vous aidera à comprendre le fonctionnement de Linux.
L'une des caractéristiques déterminantes de Linux et d'autres systèmes d'exploitation de type UNIX est que «tout est un fichier». C'est une simplification excessive, mais comprendre ce que cela signifie vous aidera à comprendre le fonctionnement de Linux.

Beaucoup de choses sur Linux apparaissent dans votre système de fichiers, mais ce ne sont pas des fichiers. Il s’agit de fichiers spéciaux représentant des périphériques matériels, des informations système et d’autres éléments, notamment un générateur de nombres aléatoires.

Ces fichiers spéciaux peuvent être situés dans des pseudo-systèmes de fichiers virtuels, tels que / dev, qui contient des fichiers spéciaux représentant les périphériques, et / proc, contenant des fichiers spéciaux représentant des informations sur le système et les processus.

/ proc

Par exemple, supposons que vous souhaitiez trouver des informations sur votre CPU. Le répertoire / proc contient un fichier spécial - / proc / cpuinfo - contenant ces informations.

Image
Image

Vous n'avez pas besoin d'une commande spéciale qui vous indique les informations relatives à votre processeur. Vous pouvez simplement lire le contenu de ce fichier à l'aide de n'importe quelle commande standard fonctionnant avec des fichiers en texte brut. Par exemple, vous pouvez utiliser la commande cat / proc / cpuinfo imprimer le contenu de ce fichier sur le terminal - imprimer les informations de votre CPU sur le terminal. Vous pouvez même ouvrir / proc / cpuinfo dans un éditeur de texte pour afficher son contenu.

Rappelez-vous que / proc / cpuinfo n’est pas en fait un fichier texte contenant ces informations: le noyau Linux et le système de fichiers proc nous les exposent sous forme de fichier. Cela nous permet d'utiliser des outils familiers pour visualiser et utiliser les informations.

Le répertoire / proc contient également d'autres fichiers similaires, par exemple:
Le répertoire / proc contient également d'autres fichiers similaires, par exemple:
  • / proc / uptime - Expose la disponibilité de votre noyau Linux - en d’autres termes, combien de temps votre système est-il allumé sans être arrêté.
  • / proc / version - Expose la version de votre noyau Linux.

/ dev

Dans le répertoire / dev, vous trouverez des fichiers représentant des périphériques, ainsi que des fichiers représentant d’autres éléments spéciaux. Par exemple, / dev / cdrom est votre lecteur de CD-ROM. / dev / sda représente votre premier disque dur, alors que / dev / sda1 représente la première partition de votre premier disque dur.

Voulez-vous monter votre CD-ROM? Exécutez la commande mount et spécifiez / dev / cdrom en tant que périphérique à monter. Vous voulez partitionner votre premier disque dur? Exécutez un utilitaire de partitionnement de disque et spécifiez / dev / sda en tant que disque dur à modifier. Voulez-vous formater la première partition sur votre premier disque dur? Exécutez une commande de formatage et indiquez-lui de formater / dev / sda1.

Comme vous pouvez le constater, exposer ces périphériques dans le système de fichiers présente des avantages. Le système de fichiers fournit un «espace de noms» cohérent que toutes les applications peuvent utiliser pour adresser et accéder aux périphériques.
Comme vous pouvez le constater, exposer ces périphériques dans le système de fichiers présente des avantages. Le système de fichiers fournit un «espace de noms» cohérent que toutes les applications peuvent utiliser pour adresser et accéder aux périphériques.

/ dev / null, / dev / random et / dev / zero

Le système de fichiers / dev ne contient pas que des fichiers représentant des périphériques physiques. Voici trois des dispositifs spéciaux les plus remarquables qu'il contient:

  • / dev / null - Supprime toutes les données qui y sont écrites - considérez-la comme une poubelle ou un trou noir. Si vous voyez un commentaire vous dire d’envoyer des plaintes à / dev / null, c’est une façon géniale de dire «jetez-les à la poubelle».
  • / dev / random - Produit un caractère aléatoire en utilisant le bruit de l'environnement. C’est un générateur de nombres aléatoires auquel vous pouvez accéder.
  • / dev / zero - Produit des zéros - un flux constant de zéros.

Si vous considérez ces trois fichiers comme des fichiers, vous ne verrez aucune utilisation. Au lieu de cela, pensez à eux comme des outils.

Par exemple, par défaut, les commandes Linux génèrent des messages d'erreur et d'autres sorties qu'elles impriment sur la sortie standard, généralement le terminal. Si vous voulez exécuter une commande sans vous soucier de sa sortie, vous pouvez rediriger cette sortie vers / dev / null. La redirection de la sortie d'une commande vers / dev / null la supprime immédiatement. Au lieu de faire en sorte que chaque commande implémente son propre «mode silencieux», vous pouvez utiliser cette méthode avec n'importe quelle commande.

command > /dev/null

Si vous vouliez une source d’aléatoire - par exemple, pour générer une clé de chiffrement, vous n’auriez pas besoin d’écrire votre propre générateur de nombres aléatoires - vous pouvez utiliser / dev / random.
Si vous vouliez une source d’aléatoire - par exemple, pour générer une clé de chiffrement, vous n’auriez pas besoin d’écrire votre propre générateur de nombres aléatoires - vous pouvez utiliser / dev / random.

Pour effacer le contenu d’un disque dur en y écrivant 0, vous n’avez pas besoin d’un utilitaire spécial dédié à la remise à zéro d’un disque - vous pouvez utiliser les utilitaires standard et / dev / zero. Par exemple, le jj La commande lit à partir d'un emplacement et écrit dans un autre emplacement. La commande suivante permet de lire les zéros de / dev / zero et de les écrire directement sur la première partition de disque dur de votre système, en effaçant complètement son contenu.

(Attention: Cette commande effacera toutes les données de votre première partition si vous l’exécutez. N'exécutez cette commande que si vous souhaitez détruire des données.)

dd if=/dev/zero of=/dev/sda1

Ici, nous utilisons dd avec des fichiers spéciaux (/ dev / zero et / dev / sda1), mais nous pourrions également utiliser dd pour lire et écrire dans des fichiers réels. La même commande fonctionne aussi bien pour manipuler les périphériques directement que pour travailler avec des fichiers.

Clarification

En pratique, il est plus précis de dire que «tout est un flux d’octets» que «tout est un fichier». / Dev / random n’est pas un fichier, mais c’est certainement un flux d’octets.Et, bien que techniquement, ces éléments ne soient pas des fichiers, ils sont accessibles dans le système de fichiers - le système de fichiers est un «espace de noms» universel où tout est accessible. Vous souhaitez accéder à un générateur de nombres aléatoires ou lire directement à partir d'un appareil? Vous trouverez les deux dans le système de fichiers; aucune autre forme d'adressage nécessaire.

Bien sûr, certaines choses ne sont pas réellement des fichiers - les processus en cours d'exécution sur votre système ne font pas partie du système de fichiers. «Tout est un fichier» est inexact, mais beaucoup de choses se comportent comme des fichiers.

Conseillé: