Newsgroup: it.comp.programmare.win32
Titolo: bug nella copia su dischetto?!?

spero di non essere ot...
ho provato a inviare su floppy una certa quantità di file (diciamo più
o meno una ventina, erano piccoli, pagine html)... ad un certo punto
tutto si ferma e il sistema dice che non può continuare la copia...
non mi permette di mettere altri file, ma lo spazio libero è ancora di
ben 227 kilobyte...
ricordandomi di una voce che avevo sentito tempo fa, ho cancellato
tutto sul dischetto, ho creato una cartella sul dischetto e ho copiato
tutto lì dentro: questa volta tutto è stato copiato...
come si spiega questo fatto? c'è un bug?
-- 
]\/[ad]\/[age
"Un Maestro insegue semplicemente la sua visione di Eccellenza in
qualunque cosa sta facendo e lascia agli altri decidere se sta 
lavorando o giocando. A lui sembra sempre di fare entrambe." - Anonimo

 come si spiega questo fatto? c'č un bug?
nessun bug, e' cosi' dagli albori dei PC.
La root di qualsiasi disco, anche l'HD, ha un numero massimo fisso di
entry, perche' e' composta da un solo cluster e non puo' essere
aumentata, al contrario di una qualsiasi cartella generica che e'
trattata come un file e quindi ha dimensione variabile in base al numero
di entry contenuti.
ciao
donCiccio

di entry contenuti.
e perché mai?!?
vale per tutti i file system?


 vale per tutti i file system?
sicuramente vale per FAT12 (quella dei floppy) e FAT16, gli altri file
system non li conosco
ciao
donCiccio


Non dovrebbe valere per i file system evoluti quali e2fs o NTFS, dovrebbe
invece essere ancora valida per le VFAT ma... E con cio'?
La root di un disco e' composta da un numero di cluster pari ad una certa
percentuale del disco medesimo.
Ora, se questo su un dischetto e' un problema, ho tipo 1024 file al massimo
nella root, forse meno, ma su un HD e' irrilevante perche', semplicemente,
nella root posso mettere un numero talmente impressionante di entry da non
farmi sorgere il bisogno di avere un altro sistema per la root.
Un  po' di storia:
Il problema originale nasce dal fatto che il DOS 1 non aveva ALCUNA gestione
delle directory.
In pratica, avevi una certa parte di disco (il quale era minuscolo) dedicata
a mantenere i nomi dei file presenti sul DISCO (nota bene, non essendoci
sottodirectory i file erano sul disco, punto e stop, non c'era alcuna
organizzazione ulteriore) e il relativo primo cluster della catena, che poi
veniva seguita nella FAT tramite il sistema delle linked list, con la
differenza che l'ultimo cluster era marcato con next=0FFF e non con
next=0000, che invece indicava un cluster libero.
La entry conteneva (contiene) anche altre informazioni, tra cui la
dimensione del file, che veniva usata per "tagliare" nel punto giusto
all'interno dell'ultimo cluster (che viene comunque allocato per intero), la
data e gli attributi.
Con la dimensione ridottissima dei primi dischi, il problema dell'eccessivo
numero di file non si presentava mai.
D'altronde, la root doveva avere una dimensione fissa per consentire al
sistema di calcolare esattamente il punto in cui iniziava il settore dati
dell'HD, cioe' dove veniva locato fisicamente il primo cluster.
Infatti la struttura di un disco FAT e':
[BOOT SECTOR] [FAT] [ROOT] [DATA]
Ed e' rimasta immutata per i sistemi classe DOS (il che include 9x) fin dal
DOS 1.
Successivamente, con dischi piu' grandi, il problema del numero di file
troppo limitato comincio' a porsi, cosi' nel DOS 2 venne inventato un nuovo
attributo per i file.
Questo particolare tipo di file venne chiamato directory; la sua struttura
interna era identica a quella della root; il suo contenuto era gestito dal
sistema e per l'utente non era possibile leggervi e scrivervi con i normali
editor.
Il vantaggio era che, qualora fosse finito lo spazio per le entry in questo
"metafile", sarebbe stato facile allocare un altro cluster, eliminando il
problema del ridotto numero di entry.
Lo svantaggio e', da un lato, la frammentazione aggiuntiva che questo
comporta e, dall'altro, il rischio di perdita dati in caso di corruzione
della FAT in corrispondenza di una catena di directory.
Le FAT non sono un gran file system, ma cono semplici da implementare e da
gestire, il che ne ha fatto il sistema ideale per sistemi a bassa
complessita' come i derivati DOS.
FS piu' moderni includono una gestione dei permessi, una transazionalita',
un sistema di backup del master block (FAT), ciascuno secondo le necessita'
del tipo di utenza.
Per i FS Linux
http://web.mit.edu/tytso/www/linux/ext2intro.html
Per l'NTFS
http://linux-ntfs.sourceforge.net/regis/new/index.html#NTFS
E piu' in generale
http://www.mega-tokyo.com/os/os-faq-fs.html
Ciaotutti,
*