GNU/Linux >> Linux Esercitazione >  >> Linux

Perché Linux deve avere sia `/dev/cdrom` che `/media/cdrom`?

/media/cdrom è una convenzione per il mountpoint , mentre /dev/cdrom è lo speciale dispositivo che può essere montato sul primo.

Ti servono entrambi, perché hanno scopi diversi:la maggior parte delle applicazioni non legge direttamente dal dispositivo speciale, ma può leggere da un filesystem (qualcosa che è montato)


(Grazie per le tante risposte alla mia domanda. Dopo aver cercato per un po' sul web, voglio condividere la mia comprensione.)

Secondo qui:

Nei sistemi operativi simili a Unix, un file di dispositivo o un file speciale è un'interfaccia per un driver di dispositivo che appare in un file system come se fosse un normale file.

Secondo qui:

Il comando mount serve per allegare il filesystem trovato su qualche dispositivo al grande albero dei file.

Quindi, penso che qui ci siano 2 diversi livelli di astrazione del software:

  • /dev/cdrom è un file speciale del dispositivo. Astrae l'hardware del CD-ROM come un dispositivo IO a blocchi. Questa astrazione è fornita dal driver del dispositivo.

  • /media/cdrom è un punto di montaggio per un filesystem. Quindi fornisce un livello più alto di astrazione dell'hardware del CD-ROM, cioè come un file system. Come il file system ISO-9660. E questa astrazione è fornita dal driver del file system.

Quindi, in pratica, 2 posizioni di file diverse per 2 diversi livelli di astrazione. E in scenari diversi, potremmo averne bisogno di uno diverso. Penso che anche altri sistemi operativi come Windows forniscano opzioni così diverse solo che Linux li unifica in un'unica gerarchia di file.

(Immagino che forse dovrei fare qualche esperimento scrivendo del codice C su Linux per interagire con entrambi /dev/cdrom e /media/cdrom . E guarda come va avanti.)

(Continuerò a imparare e a perfezionare la mia comprensione come appropriato.)


Perché abbiamo entrambi /dev/cdrom e /media/cdrom ?

Perché abbiamo entrambi /dev/sda2 e /home ?

Fondamentalmente, /dev/cdrom è un file . Quando vi accedi, accedi ai singoli bit e byte sul CD (se ce n'è uno). Mentre /media/cdrom è una cartella . Quando accedi, accedi ai file memorizzati sul CD.

Allo stesso modo, /dev/sda2 rappresenta il contenuto grezzo della seconda partizione sul primo disco rigido. Dovresti scriverci direttamente, ad esempio, se desideri formattare la partizione. (Il mkfs il programma apre letteralmente /dev/sda2 o qualsiasi altra cosa, e vi scrive particolari schemi di bit.) Quindi monta /dev/sda2 a, diciamo, /home e ora puoi accedere ai file effettivi . Mentre accedi ai file tramite il punto di montaggio, il driver del filesystem sta leggendo e scrivendo il file del dispositivo sottostante.

Questo è solo il modo in cui Unix fa le cose.


Linux
  1. Che cos'è un server Linux e perché la tua azienda ne ha bisogno?

  2. Linux:differenza tra /dev/console , /dev/tty e /dev/tty0?

  3. Quanto sono portatili /dev/stdin, /dev/stdout e /dev/stderr?

  4. L'output del comando `tty` e il file `/dev/tty` si riferiscono entrambi al terminale di controllo dell'attuale processo Bash?

  5. Cosa sono i file /dev/zero e /dev/null in Linux

Comando file Linux:cosa fa e come usarlo

Linux:perché Linux mostra sia più che meno memoria di quella che ho installato fisicamente?

Linux – Perché `/dev/ptmx` e `/dev/pts/ptmx` non sono file di dispositivo?

Come dividere una partizione monolitica in due, una per `/` e una per `/home`??

Perché su alcuni sistemi Linux, il filesystem di root appare come /dev/root invece di /dev/<real device node>in mtab?

A cosa serve `/dev/console`?