Avanti Indietro Indice

7. Traduzione e Gestori dei Dischi

La geometria del disco (a testine, cilindri e tracce) è qualcosa che ci arriva dal tempo di MFM e RLL. In quel periodo la geometria corrispondeva ad una realtà fisica. Oggigiorno, con le interfacce IDE o SCSI, nessuno è più interessato a conoscere la geometria `reale' del disco. Il numero di settori per traccia è variabile - ci sono più settori per traccia nelle zone più esterne del disco - cosicché non esiste un numero `reale' di settori per traccia. Anzi è l'esatto opposto: il comando IDE INITIALIZE DRIVE PARAMETERS (91h) serve per richiedere al disco quante testine e settori per traccia pensa di avere. È abbastanza comune che i dischi di grandi dimensioni che hanno due testine comunichino al BIOS 15 o 16 testine mentre il BIOS ne riporta 255 all'utente.

Per l'utente è meglio considerare un disco alla stregua di un vettore di settori numerati progressivamente 0,1,...., e lasciare al controller del disco il compito di localizzare i settori. La numerazione progressiva è definita LBA.

Si riporta adesso il funzionamento logico. Il DOS, o qualsiasi boot loader, dialoga con il BIOS utilizzando la notazione (c,h,s). Il BIOS converte la (c,h,s) nella notazione LBA utilizzando la falsa geometria che l'utente sta utilizzando. Se il disco accetta la LBA allora la utilizza nelle operazioni di I/O su disco. Altrimenti, il BIOS la riconverte in (c',h',s') utilizzando la geometria falsa in uso e questi nuovi valori sono impiegati nell'I/O su disco.

È da rimarcare che c'è un po' di confusione nell'utilizzo dell'espressione `LBA': come termine che descrive le possibilità di un disco significa `Linear Block Addressing' (al contrario dell'indirizzamento CHS), mentre come termine presente nel setup del BIOS descrive uno schema di traslazione che qualche volta viene definito come `assisted LBA' - cfr più sotto Linux e il limite degli 8 GiB dei controller IDE.

Se il controller non supporta la LBA ma è il BIOS ad effettuare la traduzione si ha un comportamento simile a quanto descritto sopra (nel setup del BIOS è spesso indicata come modalità `Large'). In questo caso il BIOS passa al sistema operativo la geometria (C',H',S') e utilizza (C,H,S) per dialogare con il controller del disco. Di norma si ha che: S = S', C' = C/N e H' = H*N, dove N rappresenta la più piccola potenza di due che assicura la validità della diseguaglianza C' <= 1024 (si spreca spazio a causa dell'arrotondamento dovuto al rapporto C' = C/N). Anche in questo caso si possono indirizzare più di 8.4 GB (7.8 GiB).

(La terza opzione del setup è di solito `Normal', che non effettua nessuna traslazione).

Se il BIOS non supporta né la modalità `Large' né la `LBA' si deve ricorrere a delle soluzioni software. Gestori del disco ("Disk Manager") come OnTrack o EZ-Drive sostituiscono con le loro routine di gestione del disco quelle del BIOS. Di solito vengono installati nell'MBR e nei settori seguenti (OnTrack definisce questi programmi come DDO: Dynamic Drive Overlay) in modo che vengono eseguiti prima del sistema operativo. Per questo motivo quando si inizializza il sistema da dischetto ci possono essere problemi.

I risultati che si ottengono sono più o meno gli stessi di quelli forniti da un BIOS che effettua la traduzione - ma, quando sono presenti più sistemi operativi sullo stesso disco ci possono essere molti problemi derivanti dall'utilizzo dei disk manager.

Linux è compatibile con OnTrack Disk Manager dalla versione 1.3.14 e con EZ-Drive da quella 1.3.29. Altri dettagli sono riportati appresso.


Avanti Indietro Indice

Hosting by: hurra.com
Generated: 2007-01-26 17:56:16