3.5 Organizzazione del Disco

La più piccola unità di organizzazione che FreeBSD usa per ricercare file è il nome del file. I nomi dei file sono case-sensitive, ciò significa che readme.txt e README.TXT sono due file distinti. FreeBSD non usa l'estensione (es. .txt) di un file per determinare se il file è un programma, un documento, o qualche altra forma di dati.

I file sono memorizzati in directory. Una directory può contenere centinaia di file o non contenerne affatto. Inoltre una directory può contenere altre directory, consentendo di costruire una gerarchia di directory all'interno di un'altra. Tutto questo rende più facile l'organizzazione dei tuoi dati.

Ci si riferisce a file e directory attraverso il nome del file o della directory, seguito da uno slash in avanti, /, a sua volta seguito da altri nomi di directory necessari. Se hai una directory di nome foo, la quale contiene la directory bar, che a sua volta contiene il file readme.txt, allora il nome completo, chiamato anche il percorso del file è foo/bar/readme.txt.

Le directory e i file sono memorizzati in un file system. Ogni file system contiene esattamente una directory al livello più alto, chiamata la directory root di quel file system. Questa directory root può contenere altre directory.

Fin qui è probabilmente tutto simile ad altri sistemi operativi che hai usato. Tuttavia ci sono alcune differenze; per esempio, MS-DOS® usa il carattere \ per separare i nomi di file e directory, mentre Mac OS® usa :.

FreeBSD non usa lettere di dispositivi, o altri nomi di dispositivi nel path. In FreeBSD non dovrai mai scrivere c:/foo/bar/readme.txt.

Piuttosto, un file system è designato come il file system root. La directory root del file system root è riferita con /. Ogni altro file system è montato sotto il file system root. Non importa quanti dischi hai sul tuo sistema FreeBSD, ogni directory è come se fosse parte dello stesso disco.

Supponiamo che tu abbia tre file system, chiamati A, B, e C. Ogni file system ha una directory root, la quale contiene altre due directory, chiamate A1, A2 (e nello stesso modo B1, B2 e C1, C2).

Sia A il file system root. Se usi il comando ls per visualizzare il contenuto di questa directory dovresti vedere due sottodirectory, A1 e A2. L'albero delle directory assomiglia a questo:

Un file system deve essere montato su una directory di un altro file system. Supponiamo ora che tu monti il file system B sulla directory A1. La directory root di B rimpiazza A1, e di conseguenza appariranno le directory di B:

I file contenuti nelle directory B1 o B2 possono essere raggiunti con il path /A1/B1 o /A1/B2. I file che erano in /A1 sono stati temporaneamente nascosti. Questi riappariranno quando B sarà smontato da A.

Se B è stato montato su A2 allora il diagramma assomiglierà a questo:

e i percorsi saranno rispettivamente /A2/B1 e /A2/B2.

I file system possono essere montati in cima ad altri file system. Continuando con l'ultimo esempio, il file system C può essere montato in cima alla directory B1 nel file system B, arrivando a questa sistemazione:

Oppure C potrebbe essere montato direttamente sul file system A, sotto la directory A1:

Se hai familiarità con MS-DOS, questo è simile, ma non identico, al comando join.

Di solito non ti devi occupare direttamente di questi aspetti. Tipicamente quando installi FreeBSD crei i file system e decidi dove montarli, e da quel momento non avrai più la necessità di modificarli a meno che installi un nuovo disco.

È possibile avere un unico file system root, senza avere la necessità di crearne altri. Esistono alcuni svantaggi utilizzando questo approccio, e un solo vantaggio.

Benefici con File system Multipli

Benefici di un File system Singolo

I file system sono contenuti all'interno di partizioni. Qui il significato del termine partizione si discosta dall'uso comune di questo termine (partizioni MS-DOS, per esempio), a causa dell'eredità UNIX® di FreeBSD. Ogni partizione è identificata da una lettera partendo dalla a fino alla h. Ogni partizione può contenere solo un file system, il che significa che i file system sono spesso identificati sia dal loro punto di mount nella gerarchia del file system, sia dalla lettera della partizione nella quale sono contenuti.

Inoltre FreeBSD usa parte del disco per lo spazio di swap. Lo spazio di swap fornisce a FreeBSD la funzionalità di memoria virtuale. Questo permette al tuo computer di comportarsi come se avesse più memoria di quella che ha realmente. Quando FreeBSD esaurisce la memoria muove alcuni dati presenti in memoria che non sono utilizzati in quel momento nello spazio di swap, e li riporta in memoria (spostando nello spazio di swap qualche altro dato) non appena necessari.

Alcune partizioni hanno certe convenzioni a loro associate.

Partizione Convenzione
a In genere contiene il file system root
b In genere contiene lo spazio di swap
c Di solito rappresenta l'intera dimensione della slice. Questo permette a utility che necessitano di lavorare sull'intera slice (per esempio, uno scanner di blocchi difettosi) di lavorare sulla partizione c. Di norma non dovresti creare un file system su questa partizione.
d La partizione d era utilizzata in passato con un significato speciale, caduto ormai in disuso e ora può essere utilizzata come una partizione normale.

Ogni partizione contenente un file system è memorizzata in ciò che FreeBSD chiama slice. Slice è un termine di FreeBSD per identificare ciò che comunemente viene chiamato partizione, e di nuovo, questo è dovuto dal background UNIX di FreeBSD. Le slice sono numerate, partendo da 1 e arrivando fino a 4.

I numeri di slice seguono il nome del dispositivo, preceduti da una s, e partendo da 1. Quindi “da0s1” è la prima slice sul primo disco SCSI. Ci possono essere solo quattro slice fisiche su un disco, ma puoi avere slice logiche all'interno di slice fisiche di un appropriato tipo. Queste slice estese sono numerate a partire da 5, quindi “ad0s5” è la prima slice estesa sul primo disco IDE. Questi stratagemmi sono usati per i file system che si aspettano di occupare una slice.

Le slice, i dispositivi fisici “pericolosamente dedicati”, e altri dispositivi contengono partizioni, le quali sono rappresentate tramite lettere dalla a fino alla h. Queste lettere seguono il nome del dispositivo, quindi “da0a” è la partizione a sul primo dispositivo da, il quale è “pericolosamente dedicato”. “ad1s3e” è la quinta partizione nel terza slice del secondo disco IDE.

In fine, ogni disco sul sistema è identificato. Un nome di un disco incomincia con un codice che indica il tipo di disco, seguito da un numero, che indica quale disco esso sia. A differenza delle slice, i numeri riferiti al disco incominciano da 0. Puoi vedere dei codici generici in Tabella 3-1.

Quando fai riferimento a una partizione di FreeBSD devi specificare anche il nome della slice e del disco che contengono la partizione, e quando fai riferimento a una slice dovresti specificare anche il nome del disco. Per riferirti ad una partizione specifica quindi il nome del disco, il carattere s, il numero di slice, e infine la lettera della partizione. Alcuni esempi sono mostrati nell'Esempio 3-1.

L'Esempio 3-2 mostra un modello concettuale di struttura di un disco che dovrebbe aiutare a chiarire le cose.

Per installare FreeBSD devi prima configurare le slice del disco, creare le partizioni all'interno della slice che vuoi usare per FreeBSD, e quindi creare un file system (o spazio di swap) in ogni partizione, e decidere dove il file system deve essere montato.

Tabella 3-1. Codici dei Dispositivi Disco

Codice Significato
ad disco ATAPI (IDE)
da disco ad accesso diretto SCSI
acd CDROM ATAPI (IDE)
cd CDROM SCSI
fd Disco floppy

Esempio 3-1. Esempi di Nomi di Dischi, di Slice, e di Partizioni

Nome Significato
ad0s1a La prima partizione (a) sulla prima slice (s1) sul primo disco IDE (ad0).
da1s2e La quinta partizione (e) sulla seconda slice (s2) sul secondo disco SCSI (da1).

Esempio 3-2. Modello Concettuale di un Disco

Questo diagramma mostra come FreeBSD vede il primo disco IDE attaccato al sistema. Si assuma che il disco sia di 4 GB, e che contenga due slice da 2 GB (equivalenti come significato a due partizioni MS-DOS). La prima slice contiene un disco MS-DOS, C:, e la seconda slice contiene un'installazione di FreeBSD. In questo esempio l'installazione di FreeBSD ha tre partizioni dati più una di swap.

Le tre partizioni conterranno ognuna un file system. La partizione a sarà usata per il file system root, la e per la gerarchia di directory /var, e la partizione f per la gerarchia di directory /usr.

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <[email protected]>.
Per domande su questa documentazione, invia una e-mail a <[email protected]>.