di tba.free » 20/02/03 10:45
Il canale IDE ha la proprietà di poter effettuare solo un'operazione per volta, quindi o legge o scrive. I motivi che ti obbligano a mettere i dischi su IDE differenti sono molteplici, primo fra tutti le operazioni di I/O e quindi conflitti e prestazioni. Il masterizzatore infatti deve stare sull'IDE opposto al disco Primary Master (IDE0) e si dovrebbe sempre fare in modo di masterizzare i dati da questo disco. Qualsiasi operazione di trasferimento dati dovrebbero sempre avvenire tra device posizionati su IDE differenti, qualsiasi sia la loro natura.
Per quanto riguarda il 1024 cilindro, il problema non era dovuto tanto dal S.O quanto dall'architettura della piattaforma. I primi 512 byte (l'MBR)del disco come sappiamo, sono destinati a contenere il boot loader del sistema operativo (qualsiasi). In pratica un programmino che sa esattamente come è partizionato il disco, quanto è grande, e dove andare a leggere il codice per lanciare il sistema operativo.
Ogni sistema operativo installava il suo loader nei primi 128 byte, il che permetteva di avere un massimo di 4 partizioni primarie per 4 tipi di SO differenti (E qua se ci pensi viene fuori il lato oscuro di Winzoze, perchè pretende la priorità assoluta e non convive con un altro S.O.).
Ogni O.S. installato sul computer occupava in ordine sequenziale le celle da 128 byte. In ogni cella vengono inserite righe in formato esadecimale (definite in fase di partizionamento) che descrivono la geometria del disco, quindi head, cilindri e testine, Il cilindro di partenza e quello di destinazione di ogni singola partizione presente sul disco e stabilita al momento del partizionamento del disco, grazie al BIOS che gli fornisce queste informazioni. (E' la che viene inserita la geometria del disco)
Il flag esadecimale che si occupava di far capire al Loader quanto fosse grande il disco di cui si disponeva, permetteva una combinazione massima
che andava da 0 a 1023 perchè permetteva di far entrare sono 4 byte, ecco perché il famoso limite è impostato a 1024 cilindri. 1024 cilindri sono esattamente 8192 Mb (8 Gb). La dimensione del disco viene restituita dalla moltiplicazione dei cylinders x le heads del disco per i sectors del disco. (Su Linux fdisk -l per avere queste informazioni)
Era tanto se si pensa che 10 anni fa il computer più potente aveva un disco rigido di qualche Mb. Quando i Mb sono stati rimpiazzati dai Gb per superare il limite degli 8 Gb sono state create le partizioni secondarie o estese che non avevano limiti perchè dal loader si saltava ad un'altra parte del disco dove era possibile registrare una stringa esadecimale molto più grande di 4 byte. Oggi le nuove architetture dovrebbero superare tranquillamente il limite del 1024 cilindro (Forse utilizzando lo stesso stratagemma), ma nel caso di più sistemi operativi il metodo per non andare incontro a brutte sorprese dovrebbe essere quello vecchio. Soprattutto se si installa una Linux box e un Winzoz.
Il problema risiede solo dalla parte Micro$oft perchè ricopre il loader quindi sovrascrivendo L'MBR ( i primi 512 byte) e facendo perdere i puntamenti al resto del disco, ma nel caso di Loader manipolabili, come Lilo, Grub, OS/2 e altri davvero non ci sono limiti perchè il loader può essere installato in qualsiasi punto del disco mentre nell'MBR va inserito il solo puntamento a al codice che poi provvederà a far partire il sistema operativo.