Il titolo della domanda chiede: Perché dobbiamo montare su Linux?
Un modo di interpretare questa domanda: perché dobbiamo emettere mount
comandi espliciti per rendere disponibili i file system su Linux?
La risposta: noi no.
Non è necessario montare esplicitamente i file system, è possibile provvedere affinché sia fatto automaticamente e le distribuzioni Linux lo fanno già per la maggior parte dei dispositivi, proprio come fanno Windows e Mac.
Quindi probabilmente non è quello che intendevi chiedere.
Una seconda interpretazione: perché a volte dobbiamo emettere mount
comandi espliciti per rendere disponibili i file system su Linux? Perché non fare in modo che il sistema operativo lo faccia sempre per noi e nasconderlo all'utente?
Questa è la domanda che sto leggendo nel testo della domanda, quando chiedi:
Perché non saltare del tutto il montaggio e procedere come segue
ls /dev/cdrom
e hai elencato il contenuto del CD-ROM?
Presumibilmente, vuoi dire: perché non avere semplicemente quel comando che fa cosa
ls /media/cdrom
fa adesso?
Bene, in tal caso, /dev/cdrom
sarebbe un albero di directory, non un file di dispositivo. Quindi la tua vera domanda sembra essere: perché in primo luogo avere un file dispositivo?
Vorrei aggiungere una risposta a quelle già fornite.
Perché gli utenti possono vedere i file del dispositivo?
Ogni volta che si utilizza un CD-ROM o qualsiasi altro dispositivo che memorizza i file, viene utilizzato un software che interpreta tutto ciò che è presente sul CD-ROM come un albero di directory di file. Viene invocato ogni volta che si utilizza ls
o qualsiasi altro tipo di comando o applicazione che accede ai file sul CD-ROM. Tale software è il driver del file system per il file system specifico utilizzato per scrivere i file sul CD-ROM. Ogni volta che elenchi, leggi o scrivi file su un file system, è compito di quel software assicurarsi che le corrispondenti operazioni di lettura e scrittura di basso livello vengano eseguite sul dispositivo in questione. Ogni volta che sei mount
un file system, stai dicendo al sistema quale driver di file system utilizzare per il dispositivo. Se lo fai esplicitamente con amount
comando, o lasciarlo al sistema operativo per essere fatto automaticamente, dovrà essere fatto, e ovviamente il software del driver del file system dovrà essere lì in primo luogo.
Come fa un driver di file system a fare il suo lavoro? La risposta: lo fa leggendo e scrivendo nel file del dispositivo. Perché? La risposta, come hai già detto: Unix è stato progettato in questo modo. In Unix, i file dei dispositivi sono l'astrazione comune di basso livello per i dispositivi. Il software veramente specifico del dispositivo (il driver del dispositivo) per un particolare dispositivo dovrebbe implementare l'apertura, la chiusura, la lettura e la scrittura sul dispositivo come operazioni sul file del dispositivo. In questo modo, il software di livello superiore (come un driver del file system) non ha bisogno di sapere molto sul funzionamento interno dei singoli dispositivi. I driver di dispositivo di basso livello e i driver del file system possono essere scritti separatamente, da persone diverse, purché concordino un modo comune di interfacciarsi tra loro, ed è a questo che servono i file del dispositivo.
Quindi i driver del file system richiedono i file del dispositivo.
Ma perché noi comuni utenti possiamo vedere i file del dispositivo? La risposta è che Unix è stato progettato per essere utilizzato dai programmatori del sistema operativo. È stato progettato per consentire ai suoi utenti di scrivere driver di dispositivo e driver di file system. In effetti è così che vengono scritti.
Lo stesso vale per Linux: è possibile scrivere il proprio driver di file system (o driver di dispositivo), installarlo e quindi utilizzarlo. Rende Linux (o qualsiasi altra variante di Unix) facilmente estendibile (ed è in effetti la ragione per cui è stato avviato Linux): quando viene introdotto sul mercato un nuovo hardware, o viene progettato un nuovo modo più intelligente di implementare un file system , qualcuno può scrivere il codice per supportarlo, farlo funzionare e contribuire a Linux.
I file del dispositivo lo rendono più semplice.