GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi Linux a-t-il besoin d'avoir à la fois `/dev/cdrom` et `/media/cdrom` ?

/media/cdrom est une convention pour le point de montage , tandis que /dev/cdrom est le dispositif spécial qui pourrait être monté sur le premier.

Vous avez besoin des deux, car ils servent à des fins différentes :la plupart des applications ne lisent pas directement à partir du périphérique spécial, mais peuvent lire à partir d'un système de fichiers (quelque chose qui est monté)


(Merci pour tant de réponses à ma question. Après avoir cherché sur le Web pendant un certain temps, je souhaite partager ma propre compréhension.)

D'après ici :

Dans les systèmes d'exploitation de type Unix, un fichier de périphérique ou un fichier spécial est une interface pour un pilote de périphérique qui apparaît dans un système de fichiers comme s'il s'agissait d'un fichier ordinaire.

D'après ici :

La commande mount sert à attacher le système de fichiers trouvé sur certains appareils dans la grande arborescence de fichiers.

Donc, je pense qu'il y a 2 niveaux différents d'abstraction logicielle ici :

  • /dev/cdrom est un fichier spécial de périphérique. Il résume le matériel du CD-ROM en tant que périphérique d'E/S en bloc. Cette abstraction est fournie par le pilote de périphérique.

  • /media/cdrom est un point de montage pour un système de fichiers. Ainsi, il fournit un niveau d'abstraction plus élevé du matériel du CD-ROM, c'est-à-dire en tant que système de fichiers. Tels que le système de fichiers ISO-9660. Et cette abstraction est fournie par le pilote du système de fichiers.

Donc, fondamentalement, 2 emplacements de fichiers différents pour 2 niveaux d'abstraction différents. Et dans différents scénarios, nous pouvons en avoir besoin d'un autre. Je pense que d'autres systèmes d'exploitation tels que Windows fournissent également des options si différentes que Linux les unifie en une seule hiérarchie de fichiers.

(Je suppose que je devrais peut-être faire une expérience en écrivant du code C sur Linux pour interagir avec les deux /dev/cdrom et /media/cdrom . Et voyez comment tout se passe.)

(Je continuerai à apprendre et à affiner ma compréhension si nécessaire.)


Pourquoi avons-nous les deux /dev/cdrom et /media/cdrom ?

Pourquoi avons-nous les deux /dev/sda2 et /home ?

En gros, /dev/cdrom est un fichier . Lorsque vous y accédez, vous accédez aux bits et octets individuels du CD (s'il y en a un). Alors que /media/cdrom est un dossier . Lorsque vous y accédez, vous accédez aux fichiers stocké sur le CD.

De même, /dev/sda2 représente le contenu brut de la deuxième partition sur le premier disque dur. Vous y écririez directement, par exemple si vous vouliez formater la partition. (Le mkfs le programme ouvre littéralement /dev/sda2 ou quoi que ce soit, et écrit des modèles de bits particuliers dessus.) Vous montez ensuite /dev/sda2 à, disons, /home , et maintenant vous pouvez accéder aux fichiers réels . Lorsque vous accédez aux fichiers via le point de montage, le pilote du système de fichiers lit et écrit le fichier de périphérique sous-jacent.

C'est juste la façon dont Unix fait les choses.


Linux
  1. Que sont les fichiers /dev/zero et /dev/null sous Linux

  2. Pourquoi avons-nous besoin d'un bootloader dans un appareil embarqué ?

  3. Pourquoi avons-nous besoin du fichier .so.1 sous Linux ?

  4. Pourquoi Linux utilise-t-il une partition swap plutôt qu'un fichier ?

  5. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

Commande de fichier Linux :que fait-elle et comment l'utiliser

Quelle est la portabilité de /dev/stdin, /dev/stdout et /dev/stderr ?

Comment diviser une partition monolithique en deux, une pour `/` et une pour `/home` ??

Pourquoi Linux répertorie-t-il les lecteurs NVMe comme /dev/nvme0 au lieu de /dev/sda ?

Pourquoi sur certains systèmes Linux, le système de fichiers racine apparaît-il comme /dev/root au lieu de /dev/<real device node> dans mtab ?

Pourquoi il y a `/lib` et `/lib64` mais seulement `/bin` ?