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.
Filesystem diversi possono avere opzioni di
mount diverse. Per esempio, in un'attenta progettazione,
il file system root potrebbe essere montato in modalità di sola
lettura, rendendo impossibile la cancellazione accidentale o la modifica
di un file critico. Inoltre, separando i file system scrivibili
dall'utente, come /home
, da altri file system
permette di montare i primi con l'opzione nosuid;
questa opzione non permette il settaggio dei bit
suid/guid sui file
eseguibili memorizzati sul file system che ha tale opzione di mount
attivata, migliorando l'aspetto sicurezza.
FreeBSD ottimizza in modo automatico la disposizione dei file sul file system, a seconda di come è usato il file system. Quindi un file system che contiene molti file piccoli che sono scritti di frequente avrà un'ottimizzazione diversa rispetto ad un altro file system che contiene pochi file di grandi dimensioni. Utilizzando un solo grande file system questa ottimizzazione viene a mancare.
I file system di FreeBSD reagiscono bene ad una violenta perdita di energia elettrica. Tuttavia, una perdita di energia in un punto critico potrebbe sempre danneggiare la struttura del file system. Splittando i tuoi dati su file system multipli sarà più probabile che il sistema riparta, dandoti la possibilità di ripristinare un precedente backup se necessario.
I file system sono a dimensione fissa. Se crei un solo file system quando installi FreeBSD e gli assegni una data dimensione, in futuro potresti scoprire che necessiti di creare una partizione più grande. Questo non è facilmente realizzabile se non effettuando un backup dei dati, ricreando il file system con la nuova dimensione, e quindi ripristinando il backup di dati.
FreeBSD ha il comando growfs(8), con il quale è possibile incrementare la dimensione del file system al volo, rimuovendo questa limitazione.
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, «Codici dei Dispositivi Disco».
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, «Esempi di Nomi di Dischi, di Slice, e di Partizioni».
L'Esempio 3.2, «Modello Concettuale di un Disco» 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.
Codice | Significato |
---|---|
ad | disco ATAPI (IDE) |
da | disco ad accesso diretto SCSI |
acd | CDROM ATAPI (IDE) |
cd | CDROM SCSI |
fd | Disco floppy |
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 ). |
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
<questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a
<doc@FreeBSD.org>.