Talált!
Minden fájldarabka külön bejegyzés a FAT-ban, de mivel a FAT hossza stabil, ezért ez csak a tárolható fájlok összdarabszámát csökkenti, mivel a FAT-ot "zabálja".
Ez nem így van! Vagy legalábbis nem ugyanarról beszéltek
A darabka (Cluster vagy Block) mérete formázáskor meg lesz határozva. Ez egy átlag 720-as lemezen 2 szektor, azaz 1 KB. Egy darabkához egy FAT bejegyzés tartozik, így tehát egy 1K-s fájl egy bejegyzést foglal, 2K-s fájl kettõt, stb. Ez így van akár esik, akár fúj, akárhogy vannak szétszórva a fájl darabkái!
Zabálás az lemezterületben jelentkezhet. Miért is? Ha pl 1.5K a fájlméretünk, akkor is 2 darabka foglalódik le, mivel töredék darabka jelzésére nincs mód. Így akkor 0.5K pocsékba ment. Minél több fájl van a lemezen, annál több a veszteség. Ennek csökkentésére az a lehetõség, hogy csökkentjük a darabkék méretét, a legkisebb lehetséges az 1 szektor, azaz 512 bájt. Az EXDOS a RAMDISK-ben ezt is használja alapból.
Én a FAFO-ba tettem bele, hogy be lehessen ezt állítani, alapértelmezést 1-re téve. Így egy 840-es lemezen, az átlagos Spectrum átírat játékokat tárolva, akár 20-30 KB-tal több is fért rá! Annak ellenére, hogy az üres lemezen kezdetben kevesebb a szabad hely, hiszen mivel így kétszer annyi bejegyzést kell tárolni, kétszer akkora a FAT tábla is.
Felmerülhet a kérdés, hogyha úgyis az a jó, hogy ha minimális méretû a darabka, akkor minek lehet egyáltalán nagyobbra beállítani? Egyrészt ha kevés nagyméretû fájlt akarunk tárolni, akkor a dupla méretû FAT-tal több helyet vesztünk, mint a fájlok végén jelentkezõ veszteség.
Másik az, amire a szabvány alkotói gondoltak: a FAT tábla mérete véges. Az már nyílvánvaló volt 1980-ban, a szabvány megalkotásakor, hogy egy bájttal tárolható 256 bejegyzés az kevés lesz. Viszont a 2 bájttal elérhetõ 65536 bejegyzés felesleges luxunak tünt, ugyse lesznek akkora lemezek
Így helytakarékossági okból úgy döntöttek, hogy 1.5 bájton tárolnak egy bejegyzést. Késöbb ez lett elnevezve FAT-12-nek, mivel 1.5 bájt az pont 12 bit
12 biten pedig 4096 lehetséges értéket tudunk eltárolni. Ha egy darabkánk 512 bájt, akkor ez esetben 0.5*4096=2048K lehet a lemezünk maximális mérete. EP-n ebbe a problémába eddig csak a RAMDISK esetén lehetett belefutni, éppen ezért enged az EXDOS csak max RAMDISK 127-et. Nem foglalkoztak azzal, hogy a lemezméret függvényében állítsák be a cluster méretet, gondolom 1985-ben meglehetõsen elméleti gondolot volt az, hogy valaki több mint 2 mega RAM-ot használjon
Egyébként ASMON-nal "diskeditálva" létre lehet hozni 1K-s clusterekkel 2 megánál nagyobb RAMDISK-et is, és természetesen kezeli az EXDOS. Egyedül majd a létrehozó rutint kell kiegészíteni.
Viszont vinyók esetén a legkisebb is nagyobb mint 2 mega, tehát adódik, hogy növelni kell a clusterméretet. Viszont ennek is van egy határa. Ez a méret egy bájton van tárolva, így a lehetséges maximális érték 255. Bár az eredeti szabványban nem szerepel, de egyszerüségi okokból valamennyi létezõ operációs rendszer csak kettõ egész hatványait használja clusterméretként, vagyis lehet: 1,2,4,8,16,32,64,128 További nehezitésként az MSDOS és származékai a 7. bitet elõjelként használják ott is, ahol nincs is szó elõjeles számokról, így a 128 kiesett. Marad a 64, ami szektorokban számolva 32 KB-ot jelent, így elvileg a FAT12 maximális határa 128 MB. De itt már a nagy cluster méret miatt rengeteg a veszteség, ezért, és mert már látták, hogy hamarosan a 128 Mb-ot is megfogják haladni a vinyók, 1987-ben létrehozták a FAT16-ot (ekkor nevezték át a régit FAT12-re).
Ezzel már 65536*32K=2 GB-ra növekedett a maximum. Persze idõvel ez is kicsi lett
Így jött 1996-ban a FAT32 (ami valójában csak FAT28
)
Visszatérve egy kicsit a FAT16-hoz, itt ha a minimális 1 szektoros cluster méretet akarjuk használni, akkor ezt 32 megás lemezméretig tehetjük meg. Viszont FAT32-vel nyugodtan lehet efelett is! Magyarán 32 megás partició méret felett már a FAT32 használata célszerû! Viszont a Microsoft féle FDISK (és az összes általam látott particionáló program), csak 512 mega felett ajánlja fel a FAT32 lehetõségét, és a cluster méretet se lehet ilyen kicsire venni. Ezért kénytelen voltam egy saját particionáló programot írni PC-re
ami egyben lemeztesztelõ is, de ez már egy másik elõadás lesz, hogy miért használhatatlan szemét az összes létezõ vinyó tesztelõ és formázó program PC-re, abban az esetben ha van egy szektor hibás vinyód.