Autor Thema: Filesysteme  (Gelesen 57460 mal)

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« am: 22. April 2004, 21:03 »
Da ich mich in letzter Zeit vorallem mit Dateisystemen Beschäftigt habe, ich will ja nicht ewig mit FAT12 arbeiten, habe ich mir gedacht man könnte hier schon mal einen Thread aufmachen wo man über die einzelnen FSs diskutiert:
Weis jemand wo man die Offizielle Dokumentation oder ein gutes Tutorial zu ReiserFS oder Ext2 findet? Die würden mich nämlich sehr interessieren. Was genau ist der unterschied zwischen fat12 und fat16 sowie FAT32? Weis jemand wie NTFS aufgebaut ist? Arbeitet Jemand von euch auch mit exotischeren FS wie z.B.: dem von Minix oder dem AmigaFS,...

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #1 am: 22. April 2004, 21:34 »
Also zu NTFS musst du einfach mal bei Google suchen. Da gibts ne gute Seite wo das ausführlich beschrieben ist. Aber vorsicht. NTFS ist bei weitem nicht so einfach wie FAT.

Der Unterschied zwischen FAT12 /16 /32 ist eigentlich recht minimal.
Zum einen wird ab FAT32 das Root-Directory genauso gespeichert wie unter FAT12/16 die Subdirs. Also nichtmehr eine fest vorgegebene Anzahl an Root-Dir Einträgen.
Und zum anderen wird für jeden EIntrag in der FAT-Tablle eben anstatt 12 nun 16 oder 32 Bits benutzt, was im Gegenzug die Anzahl der adressierbaren Cluster erheblich erhöht.
----------------------
Redakteur bei LowLevel

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #2 am: 23. April 2004, 07:59 »
ich finde sogar FAT schon schwer...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #3 am: 23. April 2004, 10:30 »
Also ich hab mein eigenes entwickelt^^ Es existiert zwar vorerst hauptsächlich in der Theorie aber ich werde es umsetzen sobald mein Tastaturtreiber fertig ist. Falls es gewünscht ist kann ich ja mal das ganze hier vorstellen. Inspiriert wurde ich selbstverständlich von anderen FS, aber halt eine Eigenkreation:D
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

JensFZ

  • Beiträge: 96
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 23. April 2004, 13:10 »
Hiho

Also ich glaube, ich spreche im Namen aller hier wenn ich sage, dass ein großes interessa an solchen Matreial besteht. Anders ausgedrückt: Bitte Veröffentlichen ;)
 

The-Programmerfish

  • Beiträge: 434
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 23. April 2004, 13:38 »
Beim OSDev Ressource Center gibt's eine ganze Menge zu dem Thema
(http://www.nondot.org/sabre/os/articles/FileSystems/)
<- Verhasst, Verdammt, Vergöttert

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #6 am: 23. April 2004, 13:51 »
mein simples filesystem gibts hier:

http://home.pages.at/joachim-neu/SFS.htm

bitte schreibt, wie ihrs findet...

JOACHIM NEU
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

BigOlly

  • Beiträge: 88
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 23. April 2004, 14:05 »
@Roshl:
Ja, ich bin auch dabei mein eigenes FS zu entwickeln. Meins ist aber noch nicht fertig, also noch auf dem Papier in Entwicklung. Leider hab ich im Momant keine Zeit damit weiter zu machen. Außerdem muss ich auch noch ein par Problemchen lösen... aber egal.. brauchen werd' ich das FS ja erst wenn mein kernel im PM-Mode mal steht und ich die Treiber für Floppy, IDE und SCSI geschrieben hab, vorher brauch ich auch kein Filesystem. ;)

Ansonsten: Zu FAT schreib ich gerade eine Art Docu bzw. Arbeitspapier. Da wird dann auch FAT16 und FAT32 dabei sein, allerdings "strickt" getrennt. Auch lange Dateinamen klamüser ich dabei auseinander.
Wie ich in einem anderen Beitrag schonmal erwähnt habe, schreibe ich diese Übersicht eigentlich deshalb, um bei der Treiber-Entwicklung alles auf einen Blick zu haben. Bisher müsste ich dafür noch 4 Dokumente in die Hand nehmen... (TeeJay's FAT12-Tut., Microsoft FAT-Spezifikation, PC-Hardwarebuch, Microsoft LongFilename-Spez.)... und zwei davon auch noch in englisch.

Wenn die Übersicht ferig ist (ich kann nur an den Wochenenden daran arbeiten) stell ich das Ganze auch gerne zur Verfügung, falls Interesse besteht. Ob nun als Extra-Dokument oder als Beitrag im Magazien kann man ja noch überlegen.
Ich werde allerdings nicht alles so detailiert beschreiben, sondern versuchen mehr die Fakten die man braucht zu liefern, ein gutes Tutorial darüber wie man was einlesen und berechnen muss inclusive Assembler-Beispiele gibt es ja schon mit TeeJay's FAT12.Tutorial. Das lässt sich weitgehend auch auf FAT16 anwenden.

ABER..: Wie gesagt, aus Zeitgründen wird es noch ein bisschen dauern bis es fertig ist. :)
====================================================
Zitat: "Es ist schwierig zu antworten, wenn man die Frage nicht versteht."
(würde mich ja mal interessieren ob jemand weiß woher dieser Satz stammt...)

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #8 am: 23. April 2004, 14:29 »
Ok ich versuche mal mein System kurz zu erläutern (falls später jemand weitergehendes Intresse hat kann er sich ja per ICQ melden:332061907)
Also aufgebaut ist mein FS 4 Elementen.
1. Etwas was ich Blockbitmap nenne, in dieser stehen welche Blöcke belegt sind (1Block=2Sektoren). Aber auch nur ob sie belegt sind, was sie sind steht da nicht. Wenn der erste Byte also 10010011 lautet heisst das, dass die Blöcke 1,4,7 und 8 belegt sind. Das wird verwendet um herrauszufinden wo wir zum Beispiel eine Datei hinspeichern können.
2. Ein Verzeichniss Org-Block, in diesem stehen diverse Informationen wie zum beispiel wieviele Sektoren es gibt und so weiter, von Interresse ist dieser Teil nur im Hauptblock also dem ersten der Partition, bei Unterverzeichnissen werden diese nicht gebraucht. Der zweite und wichtigere Teil besteht aus 4 Byte grossen Einträgen von denen jeder einen Zeiger auf einen weiteren Block darstellt. Alle dort aufgelisteten Blöcke beinhalten dann die Verzeichniseinträge also auf Unterverzeichnisse, Dateien usw.
3. Ein Dateien Org-Block hat mit dem Verzeichnis Org-Block Ähnlichkeit besitzt aber keine Informationsen am Anfang. Auch hier sind je 4 Byte ein Zeiger auf einen Block der Datei. Im Gegensatz zum Verzeichniss Org-Block steht in den letzten 4 Byte des Datei Org-Blocks welches der nächste Org-Block dieser Datei ist.
4. Die Verzeichnisseinträge die in den Verzeichniss Org-Blöcken stehen bestehen aus je 32 Byte. Der erste gibt an ob es eine Datei oder ein Verzeichniss ist, ob der Eintrag überhaupt belegt ist, welcher Typ von Datei(z.B. Systemdatei,ausführbar usw) dann ein paar Zeichen für den Namen, die letzen 4 geben die Dateilänge in Blöcken an, damit das verarbeitende Programm weiß wieviele es brauchen wird, und die 4 vor den letzten 4 also die Vorletzten 4(HÄ?) sagen uns in welchem Block sich der erste Datei Org-Block dieser Datei befinden.

So das wars ganz kurz:D wer Fragen hat wie gesagt bei mir melden^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

kleiner

  • Beiträge: 131
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 23. April 2004, 16:33 »
Für ReiserFS würd ich mir mal die Homepage von Hans Reiser anschauen. Sollte per google leicht zu finden sein.
Ext2 sollte sich in mehreren Listen, Newsgroups, Foren und IRC-Channels finden lassen.
Außerdem gibt es von beiden die Kernelsourcen zu Linux.
Bei NTFS wirds dann schon etwas komplizierter, weil das nicht als Standard veröffentlicht ist. Die Linux-Treiber-Programmierer versuchen schon ne ganze Zeit lang, den Schreibmodus hinzubekommen und scheinen mittlerweile schon ein paar gute Schritte getan zu haben.
Interessant dürfte natürlich auch NFS sein, weil es die Möglichkeit bietet, ein Filesystem über ein ganzes Netzwerk aufzubauen und dementsprechend nicht ganz simpel gestrickt sein wird.
Interessant sind auch immer wieder die virtuellen FS, wie z.B. devfs, procfs etc.

The-Programmerfish

  • Beiträge: 434
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 23. April 2004, 16:50 »
Ich meine schon mal gehört zu haben dass der neue Linux-Kernel 2.6 auf NTFS schreiben kann. ReiserFS ist - soweit ich gelesen habe - einfacher aufgebaut als Ext2 und Ext3.
<- Verhasst, Verdammt, Vergöttert

kleiner

  • Beiträge: 131
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 23. April 2004, 22:51 »
Also ich kann mir fast nicht vorstellen dass ein FS wie Ext2 oder Ext3 simpler als ReiserFS ist, u.a. auch weil Ext2 doch viel stärker Fragmentiert.
Und dieses NTFS-Schreiben ist soweit ich weiß zwar in der Mache, aber noch nicht stabil.
Ein sehr einfaches FS würde natürlich nur aus einem Header zum erkennen, einem Baum, der die Verzeichnisstruktur aufnimmt und den Daten, die man dann geschickterweise als Listen implementiert, bestehen.

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #12 am: 23. April 2004, 23:11 »
so hab ichs probiert...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

kleiner

  • Beiträge: 131
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 24. April 2004, 10:11 »
Also nochmal zu ReiserFS:
schaut einfach mal http://reiserfs.de/ an. Da gibts auch Manpages, ein Mailarchiev und ne mailing list
Und schaut auch mal auf http://sf.net. Da gibt es unter anderem ein Ext2-Projekt für MacOS. (Tipp: Suchfunktion)

kleiner

  • Beiträge: 131
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 24. April 2004, 10:12 »
Also nochmal zu ReiserFS:
schaut einfach mal http://reiserfs.de/ an. Da gibts auch Manpages, ein Mailarchiev und ne mailing list
Und schaut auch mal auf http://sf.net. Da gibt es unter anderem ein Ext2-Projekt für MacOS. (Tipp: Suchfunktion)

bscreator

  • Gast
Gespeichert
« Antwort #15 am: 24. April 2004, 13:51 »
Hey Leute,
mein Betriebssystem besteht momentan aus einem Bootloader, Tastaturtreiber, Kernel und dem wahrscheinlich kleinsten und einfachsten Kommandointerpreter (falls man das so nennen kann) der Welt.
Um Benutzereingaben und ähnliches dauerhaft zu speichern brauch ich selbstverständlich ein Dateisystem. Nur hab´ ich davon eben fast keine Ahnung.
Könnt ihr mir ein paar gute Bücher empfehlen, die einem eine Einführung in das Erstellen von Dateisystemen geben ?

Danke

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #16 am: 24. April 2004, 14:06 »
vielleicht währe es ja möglich, dass wir hier in der Comunity ein eigenes LowLevelFS zusammen entwickeln, so dass keiner ein Einzellkämpfer ist und man sich gegenseitig helfen kann... Dann könnten wir gemeinsam die Aufgaben verteilen und testen und dann währe es auch einfacher, weil wir nur ein Tool schreiben müssen, dass die Daten in unserem FS auf die Disk bringt und nicht mehrere...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

BigOlly

  • Beiträge: 88
    • Profil anzeigen
Gespeichert
« Antwort #17 am: 24. April 2004, 14:40 »
@joachim_neu

:) Ich glaube nicht das jeder von uns das gleiche Betriebssystem-Konzept verfolgt. Wenn man aber ein neues Filesystem für sein OS entwickelt dann denke ich am ehesten deshalb, um eine optimale Unterstützung für sein OS zu gewähren. Sonst könnten wir doch auch einfach FAT32 nehmen...:)

Der eine möchte in seinem FS Userrechte nach Linux-Art, der andere nach Windows-Art, der dritte keine Nutzerrecht . Der eine möchte mit Komprimierung, der andere ohne....  ich könnt so weiter machen....;)

Die Idee ist nicht schlecht, aber dazu müssten siech die zusammen-tun die im Prinziep ein ähnliches OD entwickeln.
====================================================
Zitat: "Es ist schwierig zu antworten, wenn man die Frage nicht versteht."
(würde mich ja mal interessieren ob jemand weiß woher dieser Satz stammt...)

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #18 am: 24. April 2004, 15:17 »
Meine Rede;) weil jeder seine eigenen Gedanken und Vorstellung hat glaub ich eher weniger dass es funzt wenn wir hier eins entwickeln das für alle sein soll. Da ich ja auch meine eignen Vorstellungen hab hab ich auch mein eigenes;) Aber mitmachen würde ich bei sowas vielleicht auch^^ mein "Treiber" für Festplatten funzt ja schon soweit ich könnte meins also schnell umsetzten, nur mein Tastaturtreiber will nich so recht deswegn liegt mein FS grad auf Eis, aber die Idee dazu ist fertig und die Algorythmen hab ich eigentlich auch im Kopf^^
Aber ich hätt nen kleinen Vorschlag für die, die ein gemeinsamen machen wollen:
Ich schreibe die Spezifikationen meines FS in eine HTML Datei und stell das dann irgendwo online, dann können wir das gemeinsam erweitern verbessern und umsetzten. Oder wer will meldet sich per ICQ:P (Irgendjemand muss ja mal ne Offensive starten sonst wird hier nix gemeinsames)
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #19 am: 24. April 2004, 15:21 »
Das wäre dann ja was für meine Projektplattform, sofern diese mal fertig ist :)

Ich persöhnlich mach mir auch ab und zu mal ein paar gedanken zum Thema Filesystem

Aber ich persönlich denke nicht, das man da von Grund auf etwas neues machen muss.
FAT32 finde ich schonmal eine gute Vorlage. Aber ich würde die Einträge der Verzeichnisse abändern. Sohingehend das Benutzerrechte a la Linux funzen und die Umsetzung von langen Dateinamen kann ebenfalls einfacher gestaltet werden.

Ansonsten finde ich das FAT32 ganz solide.
----------------------
Redakteur bei LowLevel

 

Einloggen