Stránka 1 z 1

Souborový systém na disku

Napsal: 01 čer 2013 12:36
od GarGy
Zdravím, opět menší dotaz ... chápu dobře, že na velikosti AU (alokační jednotka) závisí maximální velikost souboru, kterou můžu na disk nahrát ? Takže pokud je velikost AU u FAT32 .. 2 na 32, a to je 4GB tak soubor větší 4GB tam nenahraju ? nebo to má jiný důvod ?


a pak ještě druhej dotaz ... souborový systém obecně vytváří AU, ve kterých jsou sektory a na těch sektorech jsou různě uložený soubory (ne v pořadí sektorů) no a právě proto si SS vytváří FAT tabulky, který obsahují informace o AU a o tom kde jsou soubory v AU rozmístěny ?


no a třetí dotaz se týká NTFS, jak je to tam s AU a obecně v čem je lepší ?

díky moc za každou radu ...

Re: Souborový systém na disku

Napsal: 01 čer 2013 13:26
od faraon
Přesněji 232-1 bajtů, takže maximální velikost jednoho souboru je 4294967295 B. Na větší soubory by bylo třeba nějaké FAT64, ale to neexistuje, naštěstí, protože tenhle souborový systém nebyl vymyšlený zrovna dobře.

FAT tabulka obsahuje záznamy o tom které AU patří kterému souboru a v jakém pořadí, protože soubor větší než alokační jednotka (na disketách 512 B, já mám na starém disku velikost AU 32 KiB) může být na disku rozmístěný přerušovaně a v nejhorším případě dokonce napřeskáčku. Tomu se říká fragmentace a zrovna FAT systém je k tomu velmi náchylný, zpomaluje to čtení z disku.

Z toho také vyplývá že soubor zabírá místo po celých alokačních jednotkách, takže jednobajtový soubor na mém disku zabere 32 KiB, když bude růst, tak jakmile překročí těch 32 KiB, tak zabere dalších dvaatřicet, celkem 64 KiB... To může být problém u spousty malých souborů, že sežerou několikanásobně víc místa než ve skutečnosti mají.

NTFS (správně by mělo být HPFS, protože ten M$ ukradl IBM) už umí 64bitové adresování, další vlastnosti najdeš na Wiki: http://cs.wikipedia.org/wiki/NTFS#Vlastnosti

Srovnání obou systémů (anglicky): http://www.diffen.com/difference/FAT32_vs_NTFS

Re: Souborový systém na disku

Napsal: 01 čer 2013 13:32
od MiliNess
větší soubory by bylo třeba nějaké FAT64, ale to neexistuje

Existuje. ExFAT

--- Doplnění předchozího příspěvku (01 Čer 2013 13:40) ---

Jinak co vím, tak na vývoji HPFS se podílel MS společně s IBM (FS pro OS/2), takže se nejednalo o krádež.
To by si pravděpodobně v IBM nenechali líbit a s MS by řádně zatočili. Navíc HPFS byl pouze 32-bitový FS.

Re: Souborový systém na disku

Napsal: 01 čer 2013 14:47
od GarGy
faraone děkuju moc ... jen mi nesedí jedna věc ... pokud tedy velikost AU udává max velikost souboru - FAT 32 jsou to 4gb tak jak pak může být soubor ve více AU ? to je snad zbytečné ne ? soubory do 4 GB budu vkládat do jedné AU a nebudu ho zbytečně pulit ... k čemu ?

--- Doplnění předchozího příspěvku (01 Čer 2013 14:56) ---

a ještě k tomu ntfs .. na wiki píšou že má AU 2 na 64-1 .... takže na celým disku je jen jedna AU ?

Re: Souborový systém na disku

Napsal: 01 čer 2013 17:36
od MiliNess
Ty ty AU nějak divně chápeš:
AU se jinak říká cluster. Cluster == několik sousedních diskových sektorů dohromady a je to nejmenší adresovatelná jednotka ve file systemu.
Souborový systém nepracuje přímo s diskovými sektory, ale s clustery
-protože je to rychlejší
-protože je to univerzálnější (různé disky můžou mít různou velikost sektoru)
-protože se dá adresovat daleko více místa na disku

Když si klikneš v průzkumníku na nějakou diskovou jednotku a zvolíš Formátovat, můžeš si vybrat i velikost alokační jednotky
alokační jednotka.jpg
alokační jednotka.jpg (30.55 KiB) Zobrazeno 363 x

To, kolik sektorů jeden cluster (AU) obsahuje, je pak uloženo ve struktuře na začátku svazku (v tzv. boot sektoru neboli VBR - volume boot record), která se jmenuje BIOS parameter block.

Maximální velikost souboru ve FAT32 je omezena tímto:
Každý soubor ve FAT tabulce začíná záznamem (hlavičkou), který se jmenuje Directory Entry (viz.dole)
Ten nese informace o názvu souboru, velikosti souboru, atributech, počátečním clusteru souboru atd. Hodnota nesoucí informaci o velikosti souboru je typu DWORD (32bitová),
může tedy obsahovat max. hodnotu 0xFFFFFFFF, což jsou právě 4GB. To je tedy max. velikost souboru, který může být ve FAT32 vytvořen.

Directory entry.jpg

Re: Souborový systém na disku

Napsal: 01 čer 2013 20:59
od faraon
GarGy píše:pokud tedy velikost AU udává max velikost souboru

To právě neudává! Allocation Unit (česky alokační jednotka) je naopak nejmenší adresovatelná část disku, jak píše MiliNess.

Ten problém velikosti souborů je právě v tom, že ve FAT32 je pro údaj o velikosti souboru vyhrazeno dvaatřicet bitů, což umožňuje zadat největší číslo právě FFFFFFFF v šestnáctkové soustavě, což je těch mých 4294967295 v desítkové, neboli čtyři Giga bez jednoho bajtu.

NTFS a jiné moderní souborové systémy pro tenhle údaj mají čtyřiašedesát bitů, takže šestnáctkově FFFFFFFFFFFFFFFF a desítkově 18446744073709551615, a s prostorem 16777216 Terabajtů (mínus jeden bajt) na jeden soubor by se snad dalo pár let vydržet.

I když pamatuji doby kdy se tvrdilo že dvaatřicetibitové adresování paměti je maximum co bude kdy potřeba, protože tak velikou paměť stejně nikdo nebude mít a nebude jí ani schopný využít nebo něčím smysluplným zaplnit :lol:

Re: Souborový systém na disku

Napsal: 02 čer 2013 09:53
od GarGy
Super, konecne to chápu, děkuji moc :-)