Autor Thema: dateisysteme - wie funktioniert denn das jetzt genau?  (Gelesen 15548 mal)

hannibal

  • Host
  • Beiträge: 400
    • Profil anzeigen
    • brainsware - the rock.
Gespeichert
irgendwie hab ich das noch nicht so ganz verstanden, wie das mit den dateisystemen genau geht.

ich wuerde das mal schoen verallgemeinert so sagen: jedes dateisystem hat ja so kleinste fragmente/sektoren was auch immer, die dann mit daten gefuellt werden usw. ... das is ja alles kein problem, nur versuch ich mir grad vorzustellen wie das funktionieren soll, wenn ich zb 3 dateien hintereinander hab (also direkt hintereinander auf der festplatte) und die in der mitte loesche, und stattdessen eine kleinere oder groessere datei reinschreib.. wie macht man das dann? schiebt man dann alle daten zusammen, sodass dann wieder alles von anfang an voll ist? oder wird da einfach in die ersten freien fragmente geschrieben und eine verkettete liste erstellt?

mir ist schon klar, dass das von dateisystem zu dateisystem wahrscheinlich verschieden gehandhabt wird, aber ich haette gern gewusst wie das bei gaengigen systemen funktioniert (ext, fat, ...).

lg, hannibal
\\o
o//
\o/

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 05. April 2005, 13:40 »
FAT (File Allocation Table) benutzt zwei Tabellen fuer die Datenspeicherung.
Erst eine vorwärtsverkettete Liste (heisst das so?) fuer die eigentliche FAT; in dieser steht drin, wo die Datei weitergeht, ob der Sektor frei ist, kaputt ist, ... sie stellt also den Zustand der Festplatte dar mit jeweils 12-, 16- oder 24(?)-Bit (Fat12/16/32) pro realem Festplattensektor. Also wenn du eine grosse Datei in einem kleinen Loch hast, steht da drin, wo der nächste Sektor einer Datei zu finden ist.
In der zweiten "Tabelle" (also dem grossen Rest der Platte) liegen dann die einzelnen Datensektoren.

Unterschiedliche Dateisysteme haben unterschiedliche Verwaltungsmöglichkeiten; von HPFS weiss ich noch, dass es die FAT (die da bestimmt anders heisst und aufgebaut ist), in Streifen auf der Partition verteilt und darum um einiges schneller ist.

Faktum sei, dass du in der Implementierung deines Dateisystems fast ueberhaupt nicht eingeschränkt bist, sofern es funktioniert :)

Du brauchst halt (wenn ich nicht irre) mindestens zwei Tabellen. Eine, die die Daten enthält (und die Mehrheit der Platte in Anspruch nimmt) und eine, die angibt, wo die Daten wie verteilt liegen resp. ob dort freier Platz ist oder nicht.

Svenska

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #2 am: 05. April 2005, 15:06 »
Mein FS hat eine Bitmap in der steht welche Sektoren frei sind. Und zu jeder Datei gibt es dann einen Infoblock, der angibt welche Sektoren zu der Datei gehören. Also gibt es bei mir keine zusammenhängende FAT^^ So ist alles hübsch für jede Datei extra vorhanden und ist meistens platzsparender da keine vollständige FAT benötogt wird^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

jeb

  • Beiträge: 341
    • Profil anzeigen
    • http://www.jebdev.net
Gespeichert
« Antwort #3 am: 05. April 2005, 21:55 »
Hi,
also wenn du drei Dateien hast und die mittlere löschst gibts ganz klar ein Loch. Hier muss nun die bei Windows altbekannte defragmentierung her. Wie der Name schon sagt, werden verstückelte Dateien wieder zusammengefügt und leerraum wieder zugefüllt.
Wenn wir schon bei FS sind: Wie merkt man beim eigenen FS, welches sog. "bad sectors" sind?

mfg
jeb

zacK

  • Beiträge: 216
    • Profil anzeigen
    • http://www.domae.ch
Gespeichert
« Antwort #4 am: 05. April 2005, 22:19 »
zb wenn du ihn beschreibst mit irgendwelchen daten und ihn dann beim lesen diese daten nicht mit den geschriebenen übereinstimmen O.o

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #5 am: 06. April 2005, 16:48 »
bad sectors habe nichts mit dem FS gemein^^
du musst dazu wie gesagt die sektoren einfach prüfen.
Wenn er nicht richtig funktioniert markierst du einfach im FS den als belegt oder sowas
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

T0ast3r

  • Gast
Gespeichert
« Antwort #6 am: 08. April 2005, 11:08 »
Hey Roshl, das stimmt ja nicht so wie dus sagst.
In Fat gibt's ja die Fat Tabelle.
Hier stehen die Infos über den Sektor.
Also ob er frei ist, kaputt ist, oder der nächste Teil der Datei.
Der Wert für einen Bad Sektor weiss ich nicht auswendig, aber schau einfach ins Fat Tutorial rein.
Also haben Bad Sektor schon was mit dem FS zutun.

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #7 am: 09. April 2005, 09:32 »
Ich sagte doch man kann den im FS dann als belegt oder ähnlich kennzeichnen. Alles vollkommen richtig was ich sagte.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

 

Einloggen