prof. Nunzio Brugaletta |
atapSO |
EnneBi –
Computer Science
Avanti – Indietro – Inizio
L'organizzazione dei file messa a disposizione da Linux prevede un unica organizzazione gerarchica del file system (quella che parte da /) cui agganciare i file system contenuti nei dispositivi di memorizzazione.
Ad ogni dispositivo di memorizzazione presente nel computer (hard disk, cd-rom, chiavette USB, partizioni dell'hard disk) Linux associa un device, cioè un file speciale che si trova nella /dev. Per esempio:
Device |
Dispositivo |
---|---|
/dev/sda |
Hard disk installato come primary master |
/dev/sdb |
Hard disk installato come primary slave |
/dev/sd.. |
Altri hard disk |
/dev/cdrom |
Primo lettore cd-rom |
/dev/sda1 |
Prima partizione di sda |
/dev/sda2 |
Seconda partizione di sda |
Il device come file permette un accesso a basso livello alla periferica associata: i dati vengono visti così come sono registrati ovvero sequenze di byte. Per poter accedere alle informazioni così come l'utente li concepisce, in termini cioè di file e sotto-directory, si associa il device ad una directory del file system. Tale operazione viene effettuata facendo il mount del dispositivo. Il vantaggio di questo modo di procedere è quello di avere e operare su un unico file system senza preoccuparsi dell'allocazione fisica dei files.
$ blkid /dev/cdrom
/dev/cdrom: LABEL="Disco dati" TYPE="iso9660"
$ sudo mount -t iso9660 /dev/cdrom /media/cdrom
mount: dispositivo a blocchi /dev/sr0 è protetto da scrittura, viene montato in sola lettura
Il primo comando (BLocK IDentifier) identifica il tipo di file system di una unità di memoria. In questo caso quello presente nell'unità associata al device /dev/cdrom. Il secondo comando, impartito con diritti di root, aggancia il file system contenuto nel device al punto di innesto /media/cdrom. Da questo momento si può navigare fra il contenuto del CD accedendo alla directory /media/cdrom. In generale non è necessario specificare il tipo di file system (in questo caso si sarebbe potuto evitare -t iso9660) perché della rilevazione se ne occupa direttamente il kernel.
$ sudo umount /dev/cdrom
Il comando specificato smonta il dispositivo. Operazione necessaria per garantire che le modifiche che sono state effettuate sul file system (chiaramente non nel caso dei CD-ROM, ma per esempio, nel caso di un HD) siano coerenti con il contenuto del file system su memoria di massa.
In una operazione di scrittura in una memoria di massa i dati sono scritti in maniera asincrona: la scrittura fisica non è detto che coincida con l'operazione di scrittura che un programma o un utente compie. Per velocizzare le comunicazioni con la periferica che gestisce il supporto, il Sistema Operativo effettua una operazione fisica di scrittura sul supporto ogni volta che viene riempita una zona di memoria (buffer) destinata ai dati in transito per la memoria di massa. Se, per esempio, un programma di scrittura termina la sua esecuzione prima che il buffer sia completamente riempito, i dati non sono stati ancora fisicamente ricopiati sul supporto. L'operazione di unmount forza l'invio dei dati sincronizzandoli con la visione dell'utente.
Nel caso di CD/DVD se il dispositivo non è stato smontato il sistema impedisce l'apertura del cassetto dove è posto il supporto. Il comando eject apre il cassetto per espellere il supporto inserito.
L'operazione di mount, e del suo opposto, è in generale disponibile solo per root, a meno che non si sia specificato diversamente nei file di avvio del sistema.
Nel file /proc/mounts sono visibili i dispositivi attualmente montati con i relativi punti di innesto:
$ less /proc/mounts ... /dev/hda7 /home ext3 rw,... /dev/sr0 /media/cdrom0 iso9660 ro,... ...
Ogni linea specifica il device, il punto di innesto, il tipo di file system, il tipo di mounting effettuato (rw, indica accessibilità in lettura e scrittura, ro solo in lettura).
http://ennebi.solira.org |
ennebi@solira.org |