File: a284.html

package info (click to toggle)
appunti-informatica-libera 2001.08.18-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 27,912 kB
  • ctags: 23,734
  • sloc: makefile: 69
file content (352 lines) | stat: -rw-r--r-- 28,820 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">
<HTML LANG="it">
<HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html">
    <META NAME="Generator" CONTENT="Alml">
    <META NAME="Description" CONTENT="GNU/Linux e altro software libero">
    <META NAME="Keywords" CONTENT="Linux, GNU/Linux, Unix, software, software libero, free software">
    <META NAME="Author" CONTENT="Daniele Giacomini &nbsp;&nbsp; &nbsp;daniele&nbsp;@&nbsp;swlibero.org">
    <META NAME="Date" CONTENT="2001.08.18 ">
    <META NAME="Resource-type" LANG="en" CONTENT="Document" >
    <META NAME="Revisit-after" LANG="en" CONTENT="15 days" >
    <META NAME="Robots" CONTENT="ALL" >
    <TITLE> Appunti di informatica libera</TITLE>
    <LINK REL="stylesheet" TYPE="text/css" HREF="a2.css">
    <LINK REL="Start" TITLE="Start" HREF="a2.html">
    <LINK REL="Prev" TITLE="Previous" HREF="a283.html">
    <LINK REL="Next" TITLE="Next" HREF="a285.html">
</HEAD>
<BODY>
<P>
<A HREF="a285.html">[successivo]</A>
<A HREF="a283.html">[precedente]</A>
<A HREF="a2.html">[inizio]</A>
<A HREF="a2506.html">[fine]</A>
<A HREF="a21.html">[indice generale]</A>
<A HREF="a26.html">[violazione GPL]</A>
<A HREF="a2504.html">[licenze]</A>
<A HREF="a2505.html">[indice analitico]</A>
<A HREF="a272.html">[tomo]</A>
<A HREF="a283.html">[parte]</A>
</P>
<HR>
<DIV>
<H1>Capitolo 58. &nbsp; <A NAME="title974"></A><A NAME="anchor1145"></A> Memoria di massa <A NAME="index5080"></A> </H1>

<P>Con il termine <STRONG><EM>memoria di massa</EM></STRONG> ci si riferisce alla parte di memoria non volatile di un elaboratore, che consente l'immagazzinamento di grandi quantit&agrave; di dati. Il tipo di supporto pi&ugrave; utilizzato &egrave; quello a disco, che permette un accesso rapido ai dati memorizzati, anche se ci sono ancora i nastri magnetici, graditi in passato per la loro economicit&agrave;.</P>

<H2>58.1 &nbsp; <A NAME="title975"></A><A NAME="anchor1146"></A>
 Nastro <A NAME="index5081"></A> </H2>

<P>Il sistema di memorizzazione a nastro &egrave; stato il primo (a parte le schede perforate) a essere utilizzato con gli elaboratori. Attualmente, si utilizzano quasi esclusivamente cartucce a nastro magnetico di vario tipo.</P>

<P>La memorizzazione a nastro permette la registrazione di dati in modo sequenziale. Questo significa che la modifica di dati pu&ograve; avvenire solo aggiungendo queste modifiche alla fine, senza poter intervenire nella parte gi&agrave; memorizzata. Nello stesso modo, l'accesso a un'informazione richiede lo scorrimento del nastro fino al punto in cui questa si trova.</P>

<P>Solitamente, la memorizzazione di dati all'interno di un nastro avviene in forma di archivio, cio&egrave; di un file unico contenente tutti i file che si vogliono archiviare. In questo modo, &egrave; il programma di archiviazione ed estrazione a prendersi cura del confezionamento dei dati da archiviare e del loro recupero quando necessario.</P>

<H2>58.2 &nbsp; <A NAME="title976"></A><A NAME="anchor1147"></A>
 Disco <A NAME="index5082"></A> </H2>

<P>Il supporto di memorizzazione a disco, ha il vantaggio di consentire l'accesso diretto ai dati senza la necessit&agrave; di scorrerli sequenzialmente. Le tecniche di memorizzazione possono essere differenti: magnetica, magneto-ottica e ottica. Nel primo caso, il pi&ugrave; comune, i dati vengono memorizzati su uno strato ferromagnetico; nel secondo, si sfrutta sempre un sistema di memorizzazione magnetica, ma su un materiale che deve essere scaldato con un fascio laser per consentire la memorizzazione; l'ultimo utilizza una memorizzazione puramente ottica, attraverso un laser.</P>

<P>La memorizzazione magnetica &egrave; la pi&ugrave; comune, offre il vantaggio di una maggiore velocit&agrave; di lettura e scrittura dei dati, ma &egrave; anche la meno sicura per quanto riguarda la durata di mantenimento di questi.<SUP><A HREF="#footnote1" NAME="footnote-ref1">(1)</A></SUP></P>

<P>I dischi magneto-ottici sono funzionalmente analoghi a quelli magnetici, con la differenza che, dovendo scaldare le tracce da memorizzare con un laser, quando questo calore non &egrave; disponibile non sono tanto sensibili ai campi magnetici estranei.</P>

<P>I dischi ottici utilizzano una memorizzazione irreversibile attraverso un fascio laser. Sono ottimi per archiviare dati una volta sola, e la loro vita media &egrave; superiore a quella di qualunque altro tipo di memorizzazione.</P>

<H3>58.2.1 &nbsp; <A NAME="title977"></A><A NAME="anchor1148"></A>
 Dischi fissi e rimovibili </H3>

<P>Esistono due tipi di dischi: quelli che sono fissati stabilmente all'apparecchiatura che permette di effettuare delle registrazioni e di leggerne il contenuto, e quelli che possono essere asportati e quindi sostituiti.</P>

<P>Il disco fisso ha normalmente una capacit&agrave; molto superiore a un disco rimovibile, permettendo di effettuare le operazioni di registrazione e rilettura dei dati molto pi&ugrave; velocemente. Il disco rimovibile ha il vantaggio di poter essere tolto e sostituito con altri cos&igrave; come si pu&ograve; fare con un registratore e le sue cassette.</P>

<H3>58.2.2 &nbsp; <A NAME="title978"></A><A NAME="anchor1149"></A>
 Dischi magnetici </H3>

<P>Il disco magnetico &egrave; costituito essenzialmente da uno o pi&ugrave; piatti di materiale metallico (alluminio o un'altra lega trasparente ai campi magnetici) o plastico, ricoperti su entrambe le facce da un deposito di ossidi ferromagnetici (la stessa sostanza che ricopre il nastro magnetico delle cassette audio). Questi piatti vengono fatti ruotare a velocit&agrave; angolare costante.</P>

<TABLE ID="anchor1150" BORDER="0" WIDTH="100%">
<TR><TD>

<P><IMG SRC="46.jpg" ALT="figure/a2-hd-piatto-tracce-settori" HEIGHT="340"></P>

<P class="caption"> Figura <A HREF="a284.html#anchor1150">58.1</A>. Visione dall'alto di un piatto sul quale scorre una testina per la lettura e scrittura dei dati. Le tracce magnetiche, concentriche, non sono visibili, ma vengono individuate dalla testina magnetica. </P>

</TD></TR>
</TABLE>

<P>L'operazione di registrazione e rilettura dei dati viene effettuata da testine, una per ogni faccia dei piatti, le quali registrano e rileggono lungo tracce concentriche del disco. Le tracce magnetiche vengono definite dalle testine stesse, durante una fase detta di inizializzazione (o formattazione) a basso livello. Le tracce sono suddivise a loro volta in settori di uguale dimensione contenenti un codice di identificazione.</P>

<TABLE ID="anchor1151" BORDER="0" WIDTH="100%">
<TR><TD>

<P><IMG SRC="47.jpg" ALT="figure/a2-hd-traccia-settori" HEIGHT="56"></P>

<P class="caption"> Figura <A HREF="a284.html#anchor1151">58.2</A>. Le tracce concentriche dei dischi magnetici sono suddivise in settori di uguale dimensione. </P>

</TD></TR>
</TABLE>

<P>I settori sono in pratica dei contenitori di dati. L'esistenza di questi settori e del loro sistema di identificazione permette l'accesso diretto ai dati, fino all'unit&agrave; minima gestibile, che &egrave; appunto il settore. Nello stesso modo, non &egrave; possibile registrare dati se prima non sono state definite le tracce e i settori.</P>

<P>In passato sono esistiti dischi magnetici nei quali la suddivisione delle tracce in settori veniva identificata attraverso riferimenti estranei alle tracce stesse, per esempio attraverso dei fori in qualche punto del piatto. Questo vecchio tipo di dischi veniva detto <EM>hard sectored</EM> (suddiviso fisicamente in settori), mentre la modalit&agrave; attuale, cio&egrave; quella che si ottiene con l'inserzione di codici di riconoscimento all'inizio dei settori, si dice <EM>soft sectored</EM> (suddiviso logicamente in settori). In ogni caso, &egrave; sempre presente un riferimento fisico per definire un punto di inizio nella rotazione.</P>

<P>Quando un'unit&agrave; di memorizzazione &egrave; composta da pi&ugrave; dischi, questi sono collocati assieme sullo stesso asse. In questo modo, la registrazione e la lettura avvengono attraverso un pettine di testine collegate assieme.</P>

<P>Le testine non possono appoggiare sul piatto, altrimenti si genererebbe un attrito e conseguentemente un riscaldamento disastroso. La presenza dell'aria o di un altro gas, fa s&igrave; che con la rotazione le testine si appoggino su un cuscino d'aria sottilissimo. A volte pu&ograve; succedere che un corpo estraneo si inserisca tra una testina e il piatto. Quando ci&ograve; succede, nella maggior parte dei casi, si arriva all'atterraggio della testina e alla conseguente distruzione del piatto e della testina stessa.</P>

<H3>58.2.3 &nbsp; <A NAME="title979"></A><A NAME="anchor1152"></A>
 Geometria <A NAME="index5083"></A> <A NAME="index5084"></A> <A NAME="index5085"></A> <A NAME="index5086"></A> <A NAME="index5087"></A> <A NAME="index5088"></A> </H3>

<P>Come gi&agrave; accennato, il settore &egrave; l'unit&agrave; di memorizzazione minima a cui si possa accedere in un disco, di qualunque tipo esso sia. Nel caso di dischi organizzati a tracce concentriche, si utilizzano coordinate composte da cilindro, testina e settore.</P>

<TABLE ID="anchor1153" BORDER="0" WIDTH="100%">
<TR><TD>

<P><IMG SRC="48.jpg" ALT="figure/a2-hd-piatti-cilindri-testine" HEIGHT="283"></P>

<P class="caption"> Figura <A HREF="a284.html#anchor1153">58.3</A>. Schema di un disco fisso visto lateralmente. </P>

</TD></TR>
</TABLE>

<P>Il cilindro rappresenta un gruppo di tracce, tutte alla stessa distanza dal centro; la testina identifica la traccia specifica facendo riferimento alla faccia di un piatto particolare da prendere in considerazione; il settore &egrave; il segmento di traccia a cui si vuole accedere.</P>

<P>Per definire le caratteristiche di un disco del genere si parla di geometria, e questa si esprime attraverso l'indicazione del numero di cilindri, di testine e di settori a disposizione. La dimensione di un disco, espressa in settori, si esprime quindi come il prodotto di questi tre valori.</P>

<P>Infine &egrave; importante considerare anche la dimensione del settore, ovvero la quantit&agrave; di byte che questo pu&ograve; contenere. La dimensione normale &egrave; di 512&nbsp;byte, ma esistono anche dischi con settori di dimensione multipla.</P>

<H3>58.2.4 &nbsp; <A NAME="title980"></A><A NAME="anchor1154"></A>
 Dischi magneto-ottici </H3>

<P>Di norma, i dischi magneto-ottici (MO) sono dischi rimovibili in cui i dati sono registrati in forma magnetica, ma l'operazione di registrazione avviene previo riscaldamento da parte di un fascio laser. Si tratta generalmente di unit&agrave; memorizzazione di grande capacit&agrave;, ma ad accesso piuttosto lento.</P>

<P>Il disco magneto-ottico ha una geometria analoga a quella dei dischi magnetici, anche se si tratta solo di un piatto, per cui, anche in questo caso si parla di cilindri, testine e settori.</P>

<H3>58.2.5 &nbsp; <A NAME="title981"></A><A NAME="anchor1155"></A>
 Dischi ottici </H3>

<P>Mentre i dischi magneto-ottici si comportano in maniera analoga a quelli magnetici, i dischi ottici richiedono una registrazione sequenziale, ed eventualmente consentono un'aggiunta in coda. Al contrario, la rilettura non comporta limitazioni di accesso.</P>

<P>Per questo, i dischi ottici sono registrati utilizzando un'unica traccia a spirale, un po' come si faceva con i vecchi dischi musicali di vinile.</P>

<H2>58.3 &nbsp; <A NAME="title982"></A><A NAME="anchor1156"></A>
 Collocazione e accesso ai dati </H2>

<P>Quando si utilizza un nastro magnetico, la memorizzazione dei dati pu&ograve; avvenire solo in modo sequenziale, per cui, di solito si registra un file unico contenente tutto ci&ograve; che si vuole archiviare.</P>

<P>Nel caso del disco a tracce concentriche, i dati possono essere suddivisi nell'unit&agrave; dei settori e sparpagliati nel disco come si vuole, possibilmente con un qualche criterio. Questo criterio &egrave; il <A NAME="index5089"></A>file&nbsp;system, cio&egrave; qualcosa che definisce un'organizzazione dei dati nel disco e il modo per potervi accedere.</P>

<P>Un disco senza <A NAME="index5090"></A>file&nbsp;system &egrave; solo una serie di settori a partire dalla prima testina del primo cilindro. In questo senso, a volte si utilizzano i dischi come se fossero nastri, registrando e rileggendo i dati nella stessa sequenza naturale di settori, testine e cilindri.</P>

<P>Il caso del disco ottico &egrave; speciale, nel senso che la registrazione avviene come se si trattasse di un nastro, ma quanto registrato pu&ograve; contenere un <A NAME="index5091"></A>file&nbsp;system (solitamente si tratta di quello definito dallo standard ISO 9660) e la rilettura dei dati pu&ograve; avvenire ad accesso diretto, come nel caso dei dischi normali.<SUP><A HREF="#footnote2" NAME="footnote-ref2">(2)</A></SUP></P>

<H2>58.4 &nbsp; <A NAME="title983"></A><A NAME="anchor1157"></A>
 Partizioni secondo la tradizione Dos <A NAME="index5094"></A> <A NAME="index5095"></A> </H2>

<P>I dischi fissi, e anche quelli rimovibili di grandi dimensioni, possono essere suddivisi in partizioni. Questa suddivisione permette, per esempio, di fare convivere diversi sistemi operativi nello stesso disco fisso.</P>

<P>Teoricamente, un disco di qualunque genere pu&ograve; essere suddiviso in partizioni, oppure anche no. In pratica, i dischi fissi vengono sempre suddivisi in partizioni, anche se si dovesse trattare di una sola, mentre i dischi rimovibili no. In particolare, in presenza di dischi rimovibili di grandi dimensioni, non suddivisi in partizioni, si parla a volte di <EM>superfloppy</EM>.</P>

<P>Il sistema della suddivisione in partizioni &egrave; una convenzione. Quella pi&ugrave; comune &egrave; rappresentata dal tipo utilizzato dal Dos e dagli altri sistemi operativi che ne sono derivati. GNU/Linux utilizza fondamentalmente questo tipo di tecnica di partizionamento, ed &egrave; ci&ograve; che qui viene descritto.</P>

<H3>58.4.1 &nbsp; <A NAME="title984"></A><A NAME="anchor1158"></A>
 MBR <A NAME="index5096"></A> <A NAME="index5097"></A> </H3>

<P>Nel sistema di partizionamento secondo il modello utilizzato dal Dos, le informazioni sulla suddivisione in partizioni sono registrate nella parte finale del primo settore del disco, togliendo un po' di spazio alle istruzioni di avvio. Per questo motivo, trattandosi di un settore di avvio con in pi&ugrave; le informazioni sulle partizioni, questo si chiama MBR, o <EM>Master Boot Record</EM>.</P>

<P>Solitamente, il settore di avvio contiene il codice necessario a passare al primo settore di una partizione il compito di avviare effettivamente il sistema operativo: la partizione avviabile.</P>

<P>Lo spazio riservato nell'MBR per annotare i dati delle partizioni &egrave; limitato e consente la suddivisione in un massimo di quattro partizioni principali.</P>

<H3>58.4.2 &nbsp; <A NAME="title985"></A><A NAME="anchor1159"></A>
 Partizioni primarie ed estese <A NAME="index5098"></A> <A NAME="index5099"></A> </H3>

<P>La possibilit&agrave; di suddividere lo spazio di un disco in sole quattro partizioni pu&ograve; essere troppo limitante. Per risolvere questo problema si distinguono partizioni di due tipi: primarie ed estese. La partizione primaria &egrave; quella normale, a essa si attribuisce un codice per riconoscere il tipo di <A NAME="index5100"></A>file&nbsp;system che contiene o che dovrebbe contenere. La partizione estesa viene definita con il codice <SAMP>5</SAMP> (ovvero 05<SUB>16</SUB> in esadecimale) ed &egrave; il contenitore di altre partizioni pi&ugrave; piccole, dette partizioni logiche.</P>

<P>GNU/Linux utilizza nomi di dispositivo particolari per identificare l'intero disco o una singola partizione. In pratica, quando si fa riferimento a una partizione, si aggiunge un numero al nome del dispositivo riferito al disco intero. In particolare, i numeri da uno a quattro rappresentano le prime quattro partizioni (primarie o estese), mentre i numeri successivi vengono utilizzati per identificare le partizioni logiche eventuali.</P>

<P>La numerazione delle partizioni segue solo l'ordine di inserimento. Per cui, se si hanno tre partizioni primarie e si rimuove la seconda per scomporla in due parti, si otterr&agrave; una seconda partizione pi&ugrave; piccola e una quarta partizione, collocata tra la seconda e la terza.</P>

<H2>58.5 &nbsp; <A NAME="title986"></A><A NAME="anchor1160"></A>
 Firmware </H2>

<P>I dischi, di qualunque tipo essi siano, non sono solo contenitori di dati. Nei sistemi operativi attuali, sono coinvolti nel processo di caricamento del sistema stesso. Perch&eacute; ci&ograve; possa avvenire, deve essere avviato un programma iniziale che provvede a sua volta ad avviare il sistema operativo. Questo programma &egrave; suddiviso in due parti: il <A NAME="index5101"></A>firmware (o BIOS negli elaboratori <A NAME="index5102"></A>i386) e il settore di avvio. In pratica, il <A NAME="index5103"></A>firmware avvia il settore di avvio, il quale a sua volta avvia un altro settore di avvio oppure direttamente il <A NAME="index5104"></A>kernel del sistema operativo.</P>

<P>Il codice contenuto in un settore di avvio pu&ograve; avvalersi solo di funzionalit&agrave; offerte dal <A NAME="index5105"></A>firmware stesso e quindi dipende da queste la possibilit&agrave; di raggiungere e avviare il <A NAME="index5106"></A>kernel. Nel <A NAME="index5107"></A>firmware degli elaboratori <A NAME="index5108"></A>i386 esiste una limitazione: le sue funzioni non permettono di accedere a zone di un disco oltre il 1&nbsp;024-esimo cilindro. Questo significa che un <A NAME="index5109"></A>kernel collocato oltre questo punto non pu&ograve; essere avviato. Per risolvere questo problema, alcuni BIOS recenti trasformano in maniera fittizia la geometria dei dischi in modo da mostrare meno cilindri del reale, aumentando gli altri valori (testine o settori per traccia). In tal caso il problema &egrave; risolto, altrimenti occorre trovare il modo di fare risiedere il <A NAME="index5110"></A>kernel in una posizione accessibile. La tecnica pi&ugrave; semplice &egrave; quella di predisporre una piccola partizione solo per questo nella zona protetta, al di sotto del cilindro 1&nbsp;023.</P>

<TABLE BORDER="3" WIDTH="100%">
<TR><TD>

<P>Il <A NAME="index5111"></A>firmware degli elaboratori <A NAME="index5112"></A>i386 ha delle limitazioni anche negli altri parametri che definiscono la geometria di un disco. In pratica, la dimensione massima di un disco fisso per il quale si voglia mantenere il limite dei 1&nbsp;024 cilindri, non pu&ograve; superare gli 8&nbsp;Gibyte.</P>

</TD></TR>
</TABLE>

<H2>58.6 &nbsp; <A NAME="title987"></A><A NAME="anchor1161"></A>
 <A NAME="index5113"></A>Memoria cache <A NAME="index5114"></A> <A NAME="index5115"></A> <A NAME="index5116"></A> </H2>

<P>L'accesso ai dati dei dischi &egrave; un'operazione relativamente lenta e spesso si ripetono accessi successivi a zone contigue, oltre che alle stesse zone con variazioni successive dei dati.</P>

<P>Per ridurre gli accessi ripetuti al disco, i sistemi operativi utilizzano generalmente una <STRONG><EM><A NAME="index5117"></A>memoria cache</EM></STRONG>, riservando parte della memoria RAM, con la quale le operazioni di lettura e scrittura vengono filtrate in modo da evitare richieste ridondanti nel breve periodo. In questo modo, un settore appena letto, se viene richiesto nuovamente dallo stesso programma o anche da un altro, risulta subito disponibile senza disturbare il disco. Nello stesso modo funziona l'operazione di scrittura che viene rinviata a un momento successivo in modo da avere accumulato un blocco di dati pi&ugrave; consistente.</P>

<P>La <A NAME="index5118"></A>memoria cache viene scaricata periodicamente, a intervalli regolari. Tuttavia, a causa di questo meccanismo, uno spegnimento accidentale dell'elaboratore pu&ograve; comportare una perdita parziale dei dati, se le operazioni di scrittura accodate nella <A NAME="index5119"></A>memoria cache non hanno fatto in tempo a essere trasferite nel disco.</P>

<P>Oltre all'azione dei sistemi operativi, si aggiunge spesso una <A NAME="index5120"></A>memoria cache nell'hardware della stessa unit&agrave; a dischi. Questa non pu&ograve; essere controllata tanto facilmente se non attendendo qualche secondo prima di spegnere l'elaboratore dopo aver completato la procedura di arresto del sistema, in base al tipo di sistema operativo utilizzato.</P>

<H2>58.7 &nbsp; <A NAME="title988"></A><A NAME="anchor1162"></A>
 <A NAME="index5121"></A>File&nbsp;system Unix <A NAME="index5122"></A> <A NAME="index5123"></A> </H2>

<P>I <A NAME="index5124"></A>file&nbsp;system dei vari sistemi Unix condividono lo stesso tipo di impostazione e di conseguenza si utilizza un terminologia comune per descriverne le varie parti.</P>

<P>Semplificando molto le cose, si pu&ograve; immaginare che il <A NAME="index5125"></A>file&nbsp;system Unix sia composto da due strutture che si sovrappongono: <STRONG><EM><A NAME="index5126"></A>inode</EM></STRONG> e directory.</P>

<UL>

<LI>

<P>A capo di tutto c'&egrave; il <STRONG><EM>superblocco</EM></STRONG> che contiene informazioni generali sul <A NAME="index5127"></A>file&nbsp;system.</P>
</LI>

<LI>

<P>Un <A NAME="index5128"></A>inode &egrave; un elemento contenente tutte le informazioni riferite a un file di qualunque tipo (comprese le directory), escluso il nome. In particolare, l'<A NAME="index5129"></A>inode contiene i riferimenti necessari a raggiungere i blocchi di dati del file. Gli <A NAME="index5130"></A>inode sono raggiungibili tramite il loro numero (numero di <A NAME="index5131"></A>inode).</P>
</LI>

<LI>

<P>Un blocco di dati &egrave; una zona nel disco utilizzata per contenere dati, corrispondente a un multiplo della dimensione del settore fisico del disco stesso. Il contenuto di un file pu&ograve; essere distribuito su pi&ugrave; blocchi di dati.</P>
</LI>

<LI>

<P>Una directory &egrave; un file contenente un elenco di nomi di file abbinati al numero di <A NAME="index5132"></A>inode rispettivo.</P>
</LI>
</UL>

<P>La struttura di <A NAME="index5133"></A>inode e blocchi di dati &egrave; sufficiente a definire le caratteristiche e il contenuto dei file. La struttura di directory permette di raggiungere i file per nome, organizzandoli nel modo consueto, attraverso diramazioni pi&ugrave; o meno accentuate.</P>

<P>Nel superblocco, tra le altre cose, viene modificato un indicatore particolare (un <EM>flag</EM>) quando il suo <A NAME="index5134"></A>file&nbsp;system viene montato. Nel momento in cui viene smontato, l'ultima cosa a essere modificata nel <A NAME="index5135"></A>file&nbsp;system &egrave; l'indicatore di apertura che viene riportato al livello normale. In questo modo, ogni volta che si monta un <A NAME="index5136"></A>file&nbsp;system Unix &egrave; possibile verificare se questo era stato chiuso (smontato) correttamente. Se risulta che l'attivit&agrave; nel <A NAME="index5137"></A>file&nbsp;system non era stata conclusa correttamente si pu&ograve; temere che i dati siano danneggiati.</P>

<H3>58.7.1 &nbsp; <A NAME="title989"></A><A NAME="anchor1163"></A>
 Directory e <A NAME="index5138"></A>inode <A NAME="index5139"></A> </H3>

<P>Chi non ha mai avuto a che fare con un sistema Unix pu&ograve; trovare difficolt&agrave; a comprendere cosa siano gli <A NAME="index5140"></A>inode, mentre questo &egrave; necessario per poter intendere correttamente cosa siano i <A NAME="index5141"></A>collegamenti.</P>

<P>Un <A NAME="index5142"></A>file&nbsp;system Unix ha due livelli di astrazione logica: <A NAME="index5143"></A>inode e directory. Nella parte pi&ugrave; bassa si trova il disco scomposto in blocchi di dati. Un file di qualunque tipo &egrave; composto da una serie di questi blocchi (eventualmente anche nessun blocco) e queste informazioni sono raccolte in un <A NAME="index5144"></A>inode. L'<A NAME="index5145"></A>inode viene identificato in base a un numero riferito alla tabella di <A NAME="index5146"></A>inode.</P>

<P>Una directory &egrave; un file (cio&egrave; un <A NAME="index5147"></A>inode come gli altri) che ha un compito speciale, quello di raccogliere una serie di riferimenti ad altri <A NAME="index5148"></A>inode, a cui abbinare altre informazioni, come il nome e i permessi. Le voci contenute in una directory sono dei <A NAME="index5149"></A>collegamenti (indicati pi&ugrave; precisamente come <A NAME="index5150"></A>collegamenti fisici o <EM>hard link</EM>) a degli <A NAME="index5151"></A>inode.</P>

<P>A questo punto, potrebbe essere interessante distinguere le informazioni contenute negli <A NAME="index5152"></A>inode, da quelle che invece appartengono alle voci delle directory.</P>

<DL>
<DT><STRONG><A NAME="index5153"></A>Inode</STRONG></DT>
<DD>

<P>L'<A NAME="index5154"></A>inode contiene le informazioni necessarie a raggiungere i blocchi di dati che compongono il file, e inoltre:</P>

<UL>

<LI>

<P>la data dell'ultimo accesso;</P>
</LI>

<LI>

<P>la data dell'ultima modifica;</P>
</LI>

<LI>

<P>la data di creazione (dell'<A NAME="index5155"></A>inode);</P>
</LI>

<LI>

<P>il tipo di file;</P>
</LI>

<LI>

<P>i numeri UID e GID che rappresentano l'utente e il gruppo proprietari;</P>
</LI>

<LI>

<P>i permessi;</P>
</LI>

<LI>

<P>un contatore delle voci delle directory che vi fanno riferimento (ovvero, un contatore dei <A NAME="index5156"></A>collegamenti fisici).</P>
</LI>
</UL>
<DT><STRONG>Directory</STRONG></DT>
<DD>

<P>La directory contiene una serie di voci, dove ognuna di queste contiene a sua volta:</P>

<UL>

<LI>

<P>il nome;</P>
</LI>

<LI>

<P>il riferimento all'<A NAME="index5157"></A>inode (cio&egrave; il <A NAME="index5158"></A>collegamento fisico).</P>
</LI>
</UL>
</DD>
</DL>

<H3>58.7.2 &nbsp; <A NAME="title990"></A><A NAME="anchor1164"></A>
 <A NAME="index5159"></A>Collegamenti o <A NAME="index5160"></A>link </H3>

<P>Come si &egrave; visto nella sezione precedente, le voci di una directory contengono ognuna un riferimento (detto comunemente <A NAME="index5161"></A>collegamento) a un <A NAME="index5162"></A>inode. Pi&ugrave; voci della stessa directory, o di directory differenti, possono puntare allo stesso <A NAME="index5163"></A>inode. Quando si cancella un file, si cancella la voce della directory e il numero di riferimenti contenuti nell'<A NAME="index5164"></A>inode viene ridotto. Quando questo raggiunge lo zero, quel numero di <A NAME="index5165"></A>inode torna a essere disponibile.</P>

<P>Questa possibilit&agrave; di avere riferimenti multipli allo stesso <A NAME="index5166"></A>inode &egrave; ampliata dalla presenza dei cosiddetti <A NAME="index5167"></A>collegamenti simbolici, che sono solo file contenenti un riferimento a un altro file.</P>

<P>Per distinguere questi due tipi di <A NAME="index5168"></A>collegamenti, si pu&ograve; parlare di <A NAME="index5169"></A>collegamenti fisici, o <EM>hard link</EM>, per fare riferimento ai collegamenti che puntano direttamente agli <A NAME="index5170"></A>inode.</P>

<H2>58.8 &nbsp; <A NAME="title991"></A><A NAME="anchor1165"></A>
 Riferimenti </H2>

<UL>

<LI>

<P>Stein Gjoen, <EM>Disk HOWTO</EM></P>

<P>&lt;<EM><A HREF="http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html">http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html</A></EM>&gt;</P>
</LI>

<LI>

<P>Lars Wirzenius, <EM>Linux System Administrators' Guide</EM></P>
</LI>
</UL>
Appunti di informatica libera 2001.08.18  --- <EM>Copyright &copy; 2000-2001 Daniele Giacomini -- &nbsp;daniele&nbsp;@&nbsp;swlibero.org</EM><HR>

<P><A HREF="#footnote-ref1" NAME="footnote1">1)</A> Bisogna ricordare che siamo immersi in una grande quantit&agrave; di fonti magnetiche, cominciando dal campo terrestre, a cui si aggiungono tutti quelli generati dall'attivit&agrave; umana: un telefono cellulare acceso, appoggiato vicino a un dischetto magnetico provoca la sua cancellazione.</P>

<P><A HREF="#footnote-ref2" NAME="footnote2">2)</A> I CD-ROM da utilizzare con i sistemi Unix contengono normalmente un <A NAME="index5092"></A>file&nbsp;system ISO 9660 con estensioni <A NAME="index5093"></A>Rock&nbsp;Ridge. Quando il CD-ROM viene letto da un sistema che non &egrave; in grado di riconoscere queste estensioni, riesce ugualmente ad accedervi, per&ograve; tutto si manifesta esattamente come nello standard ISO normale.</P>
</DIV>
<HR>
<P>Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome  <A HREF="memoria_di_massa.html">memoria_di_massa.html</A></P>
<P>
<A HREF="a285.html">[successivo]</A>
<A HREF="a283.html">[precedente]</A>
<A HREF="a2.html">[inizio]</A>
<A HREF="a2506.html">[fine]</A>
<A HREF="a21.html">[indice generale]</A>
<A HREF="a26.html">[violazione GPL]</A>
<A HREF="a2504.html">[licenze]</A>
<A HREF="a2505.html">[indice analitico]</A>
</P>
</BODY>
</HTML>