/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.