total descendants:: total children::2 4 ❤️ |
mala lekcia z filesystemov :) ak vytvoris na fyzickom disku (teraz opomenieme fetaciny typu megaisobyte, ci jak sa tomu nadava a zavedieme axiomu 1kB = 1024B) particiu velkosti 32 MB, do tohto miesa musis vtesnat jednak: - samotne subory - informacie o adresaroch (co su z pohladu filesystemu tiez subory) - informacie o tom, ktore subory su v ktorych adresaroch - informacie o tom, kde na disku sa ktory kus suboru nachadza prvy, druhy a treti bod by mali byt jasne, snad len tolko, ze adresare su tiez len subory s presne definovanym formatom, v ktorych sa pise, ktore subory a adresare obsahuju, ak sa to potom rekurzivne prelieza, ziskava sa adresarovy strom. no a ta posledna informacia je cca zhodna s obsahom v knihach... 200 stranova kniha s 50timi kapitolami ma nejake cca 3 strany obsahu, ktory urcuje, kde subor (kapitola knihy) zacina. avsak pri filesystemoch to nie je tak, ze sa subor raz umiestni a uz sa s nim nehybe, subor moze menit velkost alebo uplne zmiznut. a kedze subor, ktory prijde na jeho miesto, nemusi mat rovnaku velkost, vznika fragmentacia, preto si filesystem musi drzat informaciu o tom, kde sa nachadza kazdy jeden kus suboru (obvykle sa subor rozdeli na rovnako velke kusy a filesystem si pamata len to v akom poradi su kde na disku). No a teraz spat k povodnej otazke, aky je vzorec... vzorec vlastne nie je. Pre FAT32 filesystem sa dalo cca pocitat tak, ze ma moznost adresovat 2^32 - 1 blokov, takze si niekde vo vlastnostiach disku zistime, aky velky je cluster (obvykle 2 ~ 4 kB), predelim velkost particie disku v bytoch velkostou clustra, dostanem +- velkost disku v clustroch. do jedneho sektora sa mi vojde 128 32bytovych odkazov na databloky, teda predelim pocet clustrov filesystemu 128, vyjde mi pocet sektorov, ktore zabera alokacna tabulka (mnou nevyuzitelne miesto). Alokacne tabulky su 2, teda znasobim dvoma. Sektor ma velkost 512 bytov, cize predelim dvoma (alebo rovno nenasobim a nedelim) a mam velkost alokacnych tabuliek v kB. Vysledne cislo je +- udaj o tom, kolko miesta spotrebovali alokacne tabulky filesystemu. Ako sa toto pocita pre filesystem NTFS, XFS, ReiserFS a dalsie, netusim. Pre EXT/EXT2/EXT3/EXT4 by malo platit, ze zabrate miesto sa rovna +- pocet i-nodov * 512 bytov. |
| |||||||||||||||||||||||