Jump to content
Che

NTFS, FAT32, EXT3, EXT4, EXT5, BTRFS etc. ?

Recommended Posts

Posted

Cum anume functioneaza concret un sistem de fisiere? Adica vine fisierul de pe CD/DVD si? Ce face exact? 

De fapt ce vreau eu sa inteleg este daca ai vrea sa scrii tu personal un nou sistem de fisiere care sa fie si mai bun sau la fel ca si acestea, cum ar trebui sa scrii codul exact?

Adica? Vine fisierul de pe CD si? Ce scrii exact in codul tau?

 

 

De ce adica NTFS trebuie defragemntat si EXT3, EXT4 si EXT5 de exemplu nu trebuie?

De ce FAT32 este mult mai rapid decat toate si de ce nu sunt toate la fel de rapide?

De ce nu trece Microsoft Windows-ul de pe NTFS pe EXT5 daca este mai bun si sa-l combine cu viteza din FAT32 sa fie super rapid si nici sa nu mai trebuiasca defragmentat?

BTFRS este cica mai bun decat toate dar foarte posibil ii mai lipsesc chestii. Si mai este si cel ZTFS de pe Fedora care cica este foarte rapid.

De ce nu se ia tot ce e mai bun de la toate si sa se faca unul super performant care sa aiba toate calitatile?

 

 

Si inca o curiozitate, de ce pe Linux se creaza automat partitii separate pentru swap si root si home si System si toate au sisteme de fisiere diferite si de ce nu se lasa o singura partitie cu cel mai bun sistem de fisiere?

 

Multumesc mult de tot!

  • Haha 1
Posted

Sistemul de fisiere e un fel de protocol care specifica cum sunt salvate fisierele. Sa presupunem ca tu ai un fisier "manele.txt" dar pe langa continutul acestui fisier trebuie pastrate si alte informatii: ce user l-a creat, cand a fost creat, cand a fost modificat ultima oara, ce dimensiune are si mai stiu eu ce.

Gandeste-te la hard-disk/stick USB/CD/DVD ca un spatiu de stocare gol. Daca ai pune pe el doar niste date nu ar avea nici un sens, tu trebuie sa ai o structura de directoare cu fisiere si toate trebuie sa contina acele metadate de mai sus ca atunci cand sistemul de operare citeste brut acel disk sa inteleaga ce contine.

De multe ori sistemele de fisiere au niste zone de metadate, care nu contin date, precum Master File Table. Adica un exemplu banal ar fi ca in primii x MB de pe disc sa fie un tabel de forma:

Id fisier | ID folder parinte | Dimensiune | Owner | Last moditication date | Locatie date pe disk (offset)

Sistemul de fisiere citeste acest tabel si intelege ce fisiere sunt acolo. Se foloseste de acel offset ca sa stie exact unde pe disc se afla continutul fisierului dar are si alte informatii despre fisier.

Exemplul e banal, in practica sunt mult mai multe informatii necesare. Dar cam asta ar fi principiul de baza. 

Fiecare sistem de fisiere are avantaje si dezavantaje. Unele pot fi rapide dar atat. Altele pot avea fisiere de maxim 4GB. Altele pot fi optimizate pentru diverse lucruri. Altele nu necesita defragmentare dar sunt mai lente. Altele sunt prea complicate etc. Sunt multe lucruri care pot fi luate in considerare insa pentru un utilizator obisnuit nu sunt deloc relevante, sistemul de operare (sau utilitarele care implementeaza aceste sisteme de operare) se ocupa de tot ce e necesar si totul e transpare pentru user (aproape totul - vezi FAT32 cu fisiere de maxim 4GB).

  • Thanks 1
  • Upvote 1
Posted

@Nytro Din ceea ce spui tu practic sistemul de fisiere este un fel de baza de date referitoare la fisierele insasi.

De curiozitate, se poate accesa in vreun fel aceasta baza de date ca sa vezi cum arata?

 

Si tot legat de asta, cand faci defragmentare ce se intampla practic fiindca fisierul X ramane practic tot in acelasi director/subdirector unde era si inainte si practic ce s-a schimbat in baza de date de trebuie defragmentare?

 

Sa inteleg ca astea care nu au nevoie de defragmentare ar fi comparabile cu niste baze de date fara index cu UNIQUE KEY PER ROW si astfel s-ar explica viteza mai lenta. Dar sunt unele care cica sunt mai rapide si decat NTFS caruia ii trebuie defragmentare, astea cum functioneaza?

 

De ce ce in FAT32 fisierele pot avea maxim 4GB? Cum se explica acest lucru si ce treaba ar avea sistemul de fisiere cu dimensiunea lor din moment ce in baza de date este trecuta doar data, numele si marima fisierului? Ar trebui sa poti recrea fisierul in caz ca s-a pierdut din moment ce te intereseaza marimea lui exacta si prin urmare il mai stocheaza inca o data ca sa il poate recrea la nevoie sau de ce?

 

Si inca ceva, te rog, din tot ce ai spus rezulta si urmatoarele nelamuriri:

De unde stie OS cat spatiu separat sa aloce pentru sistemul de fisiere pentru un hard-disk?

Si ca si o concluzie inseamna ca daca ai un HDD cu un fisier foarte mare teoretic iti ocupa mai putin spatiu total pe disk fiindca stocheaza in baza de date doar caracteristicile unui singur fisier, nu? Si atunci, daca pui pe HDD foarte multe fisiere foarte mici, inseamna ca ocupi HDD-ul mult mai repede si nu pe seama fisierelor ci pe seama bazei de date cu metadate, nu? Asa este?

 

De ce SSD-urile nu trebuie defragmentate din moment ce tot Windows cu NTFS pui pe ele si NTFS trebuie defragmentat dar cica astea nu trebuie defragmentate?

 

Multumesc mult de tot!

Posted
3 hours ago, Che said:

De curiozitate, se poate accesa in vreun fel aceasta baza de date ca sa vezi cum arata?

 

Da, booteaza de pe un Linux si foloseste comanda "dd". Dar e mai simplu sa citesti despre structurile de fisiere folosite.

 

3 hours ago, Che said:

de trebuie defragmentare

 

Sa zicem ca ai multe fisiere de cate 1GB pe disk. Sa zicem ca brut sunt fix unul dupa celalalt. Dar apoi stergi cate jumatate din fiecare. Asta inseamna ca ai bucati de 0,5 GB de fisier urmate de 0,5 GB de spatiu gol. Dar daca apoi vrei sa ma pui un fisier de 1 GB? O sa fie impartit in doua, in doua astfel de bucati libere. Cand accesezi fisierul va citi jumatate din prima locatie apoi jumatate din a doua. Nu e mult, dar daca il ai in 5000 de locatii timpul de citire creste.

 

3 hours ago, Che said:

nu au nevoie de defragmentare

 

Nu am idee ce optimizari fac, dar e mai practic sa faci o defragmentare regulat decat sa dureze mult orice operatiune.

 

3 hours ago, Che said:

De ce ce in FAT32 fisierele pot avea maxim 4GB

 

Probabil in acele metadate de care vorbeam marimea fisierelor este memorata ca un numar pe 4 bytes (32 bits) ~ 4GB. E posibil sa fie si alte lucruri la mijloc, precum modul in care se fac citirile si scrierile. 

 

3 hours ago, Che said:

De unde stie OS cat spatiu separat sa aloce pentru sistemul de fisiere pentru un hard-disk

 

Nu stie, tu ii zici cat facand partitii. 

 

3 hours ago, Che said:

HDD cu un fisier foarte mare teoretic iti ocupa mai putin spatiu total pe disk

 

Da, se poate. In Windows dai click dreapta si Properties pe un fisier si o sa vezi "Size" - dimensiunea fisierului in sine si "Size on disk" - cat ocupa de fapt (se face aliniere la niste dimensiuni/blocuri de exemplu 4KB). Si asta e fara acele metadate.

 

3 hours ago, Che said:

De ce SSD-urile nu trebuie defragmentate

 

Din cate stiu eu nevoia de defragmentare vine de la HDD-urile clasice, care au un disc ce se invarte de exemplu la 7200 de rotatii pe minut si care e citit de catre "ceva". Faptul ca un fisier e in locatii diferite necesita ca acel "pin" (laser sau ce o fi) sa se mute in diferite locatii, fizic, ceea ce necesita timp si citirile/scrierile sunt vizibil mai lente. 

La SSD nu ai astfel de probleme, nu ai disc care se invarte si e irelevant unde scrii (desi are un microcontroller ce evita sa scrie prea des in aceleasi locuri, nu e relevant pentru sistemul de fisiere).

 

Sper ca nu am zis balarii.

  • Thanks 1
  • Upvote 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...