Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 554

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Large Disk HOWTO: Accesso al Disco</TITLE>
 <LINK HREF="Large-Disk-HOWTO-5.html" REL=next>
 <LINK HREF="Large-Disk-HOWTO-3.html" REL=previous>
 <LINK HREF="Large-Disk-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="Large-Disk-HOWTO-5.html">Avanti</A>
<A HREF="Large-Disk-HOWTO-3.html">Indietro</A>
<A HREF="Large-Disk-HOWTO.html#toc4">Indice</A>
<HR>
<H2><A NAME="s4">4. Accesso al Disco</A></H2>

<P>Per poter leggere o scrivere qualsiasi cosa su un disco 
occorre specificare una posizione sul disco stesso per esempio
indicando il numero del settore o del blocco.
Se il disco &egrave; SCSI il numero del settore viene passato al controller SCSI
ed &egrave; capito dal disco.
Se il disco &egrave; un IDE che utilizza la modalit&agrave; LBA si ha la stessa cosa.
Ma se il disco &egrave; obsoleto, RLL o MFM o IDE senza supporto LBA
allora l'hardware del disco si aspetta una terna (cilindro,testina,settore)
per individuare il punto desiderato sul disco.
<P>La corrispondenza tra la numerazione lineare e la terna di tre cifre &egrave; di seguito mostrata.
Per un disco con C cilindri, H testine e S settori/traccia
la posizione indicata dalla notazione come terna o CHS (c,h,s) &egrave; la stessa di quella indicata dalla notazione lineare o LBA
c<CODE>*</CODE>H<CODE>*</CODE>S + h<CODE>*</CODE>S + (s-1)
(la sottrazione di una unit&agrave; &egrave; legata al fatto che nella notazione come terna i settori sono contati
a partire da 1 e non da 0).
<P>Concludendo possiamo dire che per accedere ad un disco non SCSI obsoleto &egrave;
necessario conoscerne la sua <EM>geometria</EM> ossia i valori C, H e S.
<P>
<H2><A NAME="ss4.1">4.1 Accesso BIOS al Disco e il Limite dei 1024 cilindri</A>
</H2>

<P>Al contrario di altri sistemi Linux non utilizza il BIOS.
Il BIOS, antecedente all'LBA, 
fornisce le routine di I/O su disco attraverso l'INT13 che prevedono come ingresso la terna
(c,h,s) (pi&ugrave; precisamente: <CODE>AH</CODE> seleziona la funzione da utilizzare,
<CODE>CH</CODE> contiene gli 8 bit bassi del numero dei cilindri,
<CODE>CL</CODE> contiene nei bit 7-6 i due bit alti del numero dei cilindri
e nei bit 5-0 il numero del settore,
<CODE>DH</CODE> contiene il numero delle testine
e <CODE>DL</CODE> contiene il numero identificativo del drive (80h or
81h). Questo spiega una parte dello schema della tavola delle
partizioni). 
<P>Noi abbiamo la terna CHS codificata su tre byte in cui
10 bit sono per il numero dei cilindri, 8 per le testine
e 6 per il numero dei settori (numerati da 1 a 63).
Da ci&ograve; risulta come il numero dei cilindri possa variare da 0 a 1023
e come il BIOS non sia in grado di indirizzare pi&ugrave; di 1024 cilindri.
<P>I programmi per DOS e Windows non sono stati modificati quando sono stati
introdotti i dischi IDE con il supporto LBA cos&igrave; sia il DOS che Windows
continuano ad aver bisogno della geometria del disco
solo per poter dialogare con il BIOS, pur non essendo necessaria
per le operazioni di I/O.
Questo significa che Linux ha bisogno di conoscere la geometria del disco
in quei sistemi ove sia richiesto il dialogo tra BIOS e altri sistemi operativi presenti,
anche con un disco attuale.
<P>Questi problemi sono iniziati pi&ugrave; o meno circa quattro anni fa,
quando apparvero dischi che non potevano essere indirizzati dalle
funzioni dell'INT13 (perch&eacute; i 10+8+6=24 bits della terna (c,h,s)
non possono indirizzare pi&ugrave; di 8.5 GB) e fu quindi progettata
una nuova interfaccia per il BIOS: la cosidetta INT13 Estesa
dove DS:SI punta ad un Disk Address Packet di 16 byte che
contiene un numero assoluto di inizio blocco di 8 byte.
<P>Molto lentamente il mondo Microsoft sta traghettando verso
l'utilizzo delle funzioni fornite dall'INT13 Esteso.
Probabilmente fra pochi anni nessun sistema moderno equipaggiato 
con hardware moderno necessiter&agrave; pi&ugrave; del concetto
di "geometria del disco".
<P>
<H2><A NAME="ss4.2">4.2 Storia del BIOS e dei limiti dell'IDE</A>
</H2>

<P>
<DL>
<DT><B>Specifiche ATA (per dischi IDE) - il limite dei 137 GB</B><DD><P>65536 cilindri (numerati da 0-65535), 16 testine
(numerate da 0-15), 255 settori/traccia (numerati da 1-255),
corrispondono a 267386880 settori (di 512 byte ciascuno)
che equivalgono ad un massimo di 136902082560 byte (137 GB).
Questo non &egrave; un problema attuale (1999) ma lo diverr&agrave; tra qualche anno.
<P>
<DT><B>BIOS Int 13 - il limite degli 8.5 GB</B><DD><P>1024 cilindri (numerati da 0-1023), 256 testine
(numerate da 0-255), 63 settori/traccia (numerati da 1-63),
corrispondono a 8455716864 byte (8.5 GB).
Questo &egrave; un limite molto gravoso ai nostri giorni perch&eacute; significa che il DOS
non pu&ograve; utilizzare i dischi di grosse dimensioni attuali. 
<P>
<DT><B>Il limite dei 528 MB</B><DD><P>Se gli stessi valori c,h,s sono utilizzati dalla chiamata all'INT 13 del BIOS
e dal controller I/O IDE entrambe le limitazioni si sovrappongono permettendo
l'accesso al massimo a 1024 cilindri, 16 testine, 63 settori/traccia
per una capacit&agrave; totale di 528482304 byte (528MB), l'infame limite
dei 504 MiB del DOS con i vecchi BIOS.
Questo problema si &egrave; sentito a partire dal 1993 circa e gli utenti sono ricorsi ai pi&ugrave; svariati trucchi
sia hardware (LBA) sia firmware (traslazione del BIOS) sia software (gestori dei dischi).
Il concetto di 'traslazione' &egrave; stato introdotto nel 1994: il BIOS
pu&ograve; usare una geometria per dialogare con il disco e un'altra, contraffatta,
per dialogare con il DOS ed effettuare la conversione tra le due.
<P>
<DT><B>Il limite dei 2.1 GB (Aprile 1996)</B><DD><P>Alcuni BIOS datati allocano solo 12 bit nella CMOS RAM per memorizzare il numero dei cilindri.
Come conseguenza il valore massimo rappresentabile &egrave; 4095. Da ci&ograve; deriva che sono indirizzabili 
solamente 4095<CODE>*</CODE>16<CODE>*</CODE>63<CODE>*</CODE>512=2113413120 byte.
Se si ha un disco pi&ugrave; grande si avr&agrave; un blocco del sistema in fase di avvio.
Questo ha reso i dischi con la geometria 4092/16/63 abbastanza diffusi.
Ancor'oggi molti dischi di grandi dimensioni hanno un jumper per fornire la geometria 
4092/16/63
Per ulteriori informazioni: 
<A HREF="http://www.firmware.com/support/bios/over2gb.htm">over2gb.htm</A>.
<A HREF="http://www.asus.com/Products/Techref/Ide/Intel/intel-ide-001.html">Altri BIOS</A>
non si bloccano ma rilevano un disco molto pi&ugrave; piccolo, ad esempio 429 MB invece di 2.5 MB.
<P>
<P>
<P>
<DT><B>Il limite dei 3.2 GB</B><DD><P>I BIOS Phoenix 4.03 e 4.04 avevano un baco che causava il blocco del sistema
quando si impostavano nel setup della CMOS dischi con capacit&agrave; superiori
ai 3277 MB. Vedi: 
<A HREF="http://www.firmware.com/support/bios/over3gb.htm">over3gb.htm</A>.
<P>
<DT><B>Il limite dei 4.2 GB (Feb 1997)</B><DD><P>La traslazione effettuata dal BIOS (ECHS= CHS Estesa, detta anche 'Supporto
ai dischi di grandi dimensioni' o semplicemente 'Large')
ricorsivamente raddoppia il numero delle testine e contemporaneamente dimezza
il numero dei cilindri passati al DOS finch&eacute; il numero dei cilindri &egrave; al massimo 1024.
Il DOS e Windows95 non possono gestire 256 testine, e nel caso abbastanza comune
in cui il disco fornisce 16 testine ci&ograve; significa che questo meccanismo &egrave; utilizzabile 
per gestire al massimo 8192<CODE>*</CODE>16<CODE>*</CODE>63<CODE>*</CODE>512=4227858432 byte
(con una geometria contraffatta di 1024 cilindri, 128 testine e 63 settori/traccia).
&Egrave; da osservare che ECHS non modifica il numero dei settori per traccia,
cos&igrave; se non sono 63 la capacit&agrave; gestibile sar&agrave; ancora pi&ugrave; bassa.
Vedi: 
<A HREF="http://www.firmware.com/support/bios/over4gb.htm">over4gb.htm</A>.
<P>
<DT><B>Il limite dei 7.9 GB</B><DD><P>Un po' furbescamente alcuni BIOS aggirano il problema precedente
fissando a 15 il numero di testine ('ECHS rivisto') in modo
da poter ottenere una geometria contraffatta con 240 testine.
Sono indirizzabili 1024<CODE>*</CODE>240<CODE>*</CODE>63<CODE>*</CODE>512=7927234560 byte.
<P>
<DT><B>Il limite degli 8.4 GB</B><DD><P>
<A NAME="The 8.4 GB limit"></A> 
Se il BIOS &egrave; in grado di utilizzare 255 testine e 63 settori/traccia
('LBA assistita' o pi&ugrave; semplicemente 'LBA')
pu&ograve; indirizzare 1024<CODE>*</CODE>255<CODE>*</CODE>63<CODE>*</CODE>512=8422686720 byte,
un po' meno del limite precedente di 8.5 GB questo perch&eacute; le geometrie con 256 testine
sono da evitarsi (la traslazione utilizza come numero di testine H il primo valore della sequenza
16, 32, 64, 128, 255 per il quale la  capacit&agrave; totale sia minore od eguale a 
1024<CODE>*</CODE>H<CODE>*</CODE>63<CODE>*</CODE>512, quindi calcola il numero dei cilindri C come la capacit&agrave; totale diviso per 
(H<CODE>*</CODE>63<CODE>*</CODE>512)).
<P>
<DT><B>Il limite dei 33.8 GB  (Agosto 1999)</B><DD><P>
<A NAME="biosupgrades"></A> 
Ci sono ulteriori difficolt&agrave; con dischi di dimensioni superiori ai 33.8 GB.
Il problema sta nel fatto che i valori predefiniti di 16 testine e 63
settori/traccia corrispondoo ad un numero di cilindri maggiore di 65535,
quantit&agrave; che non &egrave; rappresentabile da una variabile di tipo short.
Attualmente molti BIOS non sono in grado di gestire tali unit&agrave;(vedi per esempio: 
<A HREF="http://www.asus.com/Products/Motherboard/bios_slot1.html">Aggiornamenti Asus</A>
per trovare versioni aggiornate del BIOS che supportino tali unit&agrave;).
I kernel precedenti le versioni 2.2.14 / 2.3.21 devono essere aggiornati.
Vedi 
<A HREF="Large-Disk-HOWTO-12.html#verylarge">Problemi dei controller IDE con dischi di dimensioni superiori ai 34 GB</A> pi&ugrave; sotto.
<P>
</DL>
<P>Per ulteriore materiale su questo argomento vedi:
<A HREF="http://www.maxtor.com/technology/q&amp;a/qa610017.html">Breaking the Barriers</A> ("Rompere le barriere"), e per ulteriori dettagli
<A HREF="http://www.maxtor.com/technology/whitepapers/capbar0.html">IDE Hard Drive Capacity Barriers</A> ("Limiti della capacit&agrave; degli HD IDE").
<P>I dischi superiori agli 8.4 GB riportano la loro geometria come 16383/16/63.
Ci&ograve; significa che la 'geometria' &egrave; obsoleta e che la capacit&agrave; totale del disco
non pu&ograve; pi&ugrave; essere calcolata dalla geometria.
<P>
<P>
<HR>
<A HREF="Large-Disk-HOWTO-5.html">Avanti</A>
<A HREF="Large-Disk-HOWTO-3.html">Indietro</A>
<A HREF="Large-Disk-HOWTO.html#toc4">Indice</A>
</BODY>
</HTML>