Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ich möchte ein Dateisystem programmieren. Wie stelle ich das (https://www.delphipraxis.net/26571-ich-moechte-ein-dateisystem-programmieren-wie-stelle-ich-das.html)

Alstar 25. Jul 2004 17:11


Ich möchte ein Dateisystem programmieren. Wie stelle ich das
 
Hallo!

Ich wollte immer schonmal ein Dateisystem programmieren. Nun suche ich schon eine ganze Weile nach einem Tutorial oder ähnlichem, wo wenigstens ansatzweise erklärt wird wie man sowas in die Hand nimmt (z.B. welche Tools man benutzen muss etc.).

Kennt ihr Tutorials wo das erklärt wird oder wisst ihr, wie man sowas machen könnte?

thx

Alstar

dizzy 25. Jul 2004 17:20

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Als aller erstes brauchst du ein eigenes OS oder ein gütiges Linux :mrgreen:. Win wird dir derart systemnahe Zugriffe bei Leibe nicht gestatten.

Phoenix 25. Jul 2004 17:20

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Ein Dateisystem ist eigentlich eine Kapselung der physikalischen Laufwerke in logisch ansprechbare Datenträger.
Insofern ist ein Dateisystem ein Gerätetreiber.

Du wirst also wohl kaum um das DDK herumkommen, und hier in der DP wirst Du auch einige Argumente finden, warum man Treiber nicht in Delphi schreiben kann. Du wirst da um C, im besten Falle um C++ nicht herumkommen.

Du kannst aber zum Beispiel in den Linux-Sourcen nachgucken, wie die Dateisystemtreiber dort implementiert sind.

Alstar 25. Jul 2004 17:24

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
C++ macht mir nichts aus. Wollte ich sowieso schon immer mal lernen :-D.

Gibt es dafür irgendwelche Tutorials?

Ich wollte es gerne unter Win machen, da ich gesehen habe, dass es Ext3-Treiber für Win gibt.

Alstar

Phoenix 25. Jul 2004 17:27

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Nein, soweit mir bekannt ist gibt es dafür keine Tutorials.
Du musst Dich wohl tatsächlich durch den Linux-Source wühlen.

dizzy 25. Jul 2004 17:27

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
:oops: Ach jo, das ist ja via Treiber implementiert... stümmt ja. :duck:

Ultimator 25. Jul 2004 17:28

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Zitat:

C++ macht mir nichts aus. Wollte ich sowieso schon immer mal lernen
Ich möchte dir ja nicht zunahe treten, aber meinst du nicht, dass es etwas zu hoch gegriffen ist, ein C++ Tut durchzumachen und daraufhin ein Dateisystem hinzukriegen?

Alstar 25. Jul 2004 17:34

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Jo. Mag sein :).

Wo kann ich mir das DDK runterladen? Auf der M$-Site hab ich es nicht gefunden..

Alstar

MathiasSimmack 25. Jul 2004 17:38

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Gibt´s IMHO auch nicht kostenlos. Nico hatte mal so was erwähnt.

Alstar 25. Jul 2004 17:40

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
och nöööö ....

also wird daraus nix ....

kann ich windows wenigstens irgendwie ein Laufwerk vorgaukeln?

Alstar

Phoenix 25. Jul 2004 17:40

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Das musst Du direkt bei Microsoft bestellen: Microsoft Driver Development Kit.

Phoenix 25. Jul 2004 17:42

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Zitat:

Zitat von Alstar
kann ich windows wenigstens irgendwie ein Laufwerk vorgaukeln?

Selbstverständlich. Du musst nur einen virtuellen Gerätetreiber schreiben. :roll:

Alstar 25. Jul 2004 17:44

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
ROFL ....

Ich denke mal, dafür brauche ich auch das DDK, oder?

Geht das nicht anders?

Alstar

Phoenix 25. Jul 2004 17:48

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Nicht das ich wüsste. Eher nein.

Das rührt daher, weil all das doch recht nah ans System geht. Man braucht ja schon für USB-Sticks Treiber (auch wenn die gleich bei Windows > 98 mitkommen). Auch die Daemon-Tools die ein virtuelles CD-Laufwerk erstellen sind ein Treiber.

Chewie 25. Jul 2004 18:31

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Und für ein Dateisystem braucht man keinen Gerätetreiber, sondern einen Dateisystemtreiber. Dafür benötigt man nicht (nur?) das DDL, sonder auch das IFS (Installable File System) Development Kit. Und das ist noch mal richtig schweineteuer :?

NicoDE 25. Jul 2004 18:47

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Zitat:

Zitat von Chewie
Dafür benötigt man nicht (nur?) das DDK, sonder auch das IFS (Installable File System) Development Kit. Und das ist noch mal richtig schweineteuer :?

So teuer ist das IFS-Kit auch nun wieder nicht. Dürften ca. $1000 USD sein.

Ich würde mir an seiner Stelle erstmal ein OS installieren, dessen Quelltexte er sich leisten kann (Windows dürfte wohl nicht dazu gehören). Und dann versuchen zu verstehen wie Dateisysteme in dem entsprechenden Betriebssystem im allgemeinen umgesetzt werden.


Gruss Nico

ps: warum nicht einfach mit einem Dateisystem in einer Datei anfangen? (einen Treiber kann man immer noch draus erstellen, wenn man bis dahin nicht die Lust verloren hat)

Ultimator 26. Jul 2004 10:56

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Kannst du mal erläutern, wie man eine Datei mit einem Dateisystem versieht? :gruebel:

woki 26. Jul 2004 11:38

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Zitat:

Zitat von Ultimator
Kannst du mal erläutern, wie man eine Datei mit einem Dateisystem versieht? :gruebel:

ganz einfach, du nimmst eine "Master"Datei, in die du viele kleine Dateien hineinschreibst, und überlegst dir, wie du den Platz in dieser Datei verwaltest, und wie du an ein Inhaltsverzeichnis kommst, wie du weitere Dateien hinein, und wierderherausbekommst, wie du mit dem Platz umgehst, der beim Löschen einer Datei entsteht.
Hab sowas vor langer Zeit auch mal gemacht, weil die DBASE Entwickler unfähig waren, eine funktionierende BLOB (Content)-Datei zu erstellen.
Ist auch gar nicht so schwer, und hat gut funktioniert. Jedes bekannt Archiv hat soetwas in irgendeiner Form.

Grüsse
Woki

Ultimator 26. Jul 2004 11:40

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Ach so hast du das gemeint. OK, danke :-)

ripper8472 26. Jul 2004 11:44

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Man tut einfach so, als ob die Datei die rohe Festplatte ist.
Anders ausgedrückt: In die Datei schreibst du Datenstrukturen,
die wie ein FS aussehen. Mit "Bootsektor", bitmap von genutzten
Sektoren, Rootverzeichnis, eventuell ne MFT/FAT, der ganze Kram
halt.
Googele einfach mal nach den Dateisystemen, die Linux unterstützt.
In den Erklärungen wird schon recht genau beschrieben, ohne
wirklich schwer technisch zu werden. So Sachen wie INodes und
Berechtigungen sind da ganz durchsichtig beschrieben.
Daraus kannst du dir dann dein eigenes FS frei konstruieren.

Gruß, Christoph

[edit] war ich wohl zu langsam

Robert Marquardt 26. Jul 2004 14:14

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Filesysteme kann man auch unter Windows einhaengen.
Dazu braucht man aber erstens Kenntnisse in Treiberprogrammierung, zweitens mindestens ein MS VC++ 6,
drittens mindestens das Windows DDK (wahrscheinlich aber ein MSDN Abo).
Nicht zu vergessen sind intime Kenntnisse der Fylesystem-Schnittstelle von Windows.

Anfaenger sollten sich auf 2 Jahre lernen einstellen.

Calimero 26. Jul 2004 15:28

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
:-)

Dateisystem wenn ich mich recht erinnere sagt man dieses direkt im Kernel :-)

Brauchst du nur ein Bootsektor zu schreiben in ASM und ein KERNEL :-)


Hier mal ein Link für dich

Ein Tutorial wie man sich sein eigenes OS Proggt

phlux 26. Jul 2004 17:24

Re: Ich möchte ein Dateisystem programmieren. Wie stelle ich
 
Zitat:

Zitat von Alstar
kann ich windows wenigstens irgendwie ein Laufwerk vorgaukeln?

wenn du willst, dass windows denkt ein ordner sei ein Laufwerk guck mal in der Referenz der Win32s-Programmierung nach DefineDosDevice und QueryDosDevice ;)

mfg phlux


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz