Lowlevel

Lowlevel => OS-Design => Thema gestartet von: livinskull am 10. January 2008, 20:35

Titel: floppy bzw dateisystemtreiber
Beitrag von: livinskull am 10. January 2008, 20:35
Tach,

ich hab jetz nen funktionierenden Floppy-Treiber, das Dateisystem (FAT12) fehlt allerdings noch........
Jetz meine Frage: Ist es sinnvoll die komplette Diskette in den RAM zu laden?
Oder soll überhaupt eine komplette FAT geladen werden?


Ich hätte mir jetz gedacht die 2. FAT und das Rootdirectory einzulesen, aber selbst das braucht noch ziemlich lang. (und den 1. sektor natürlich, wegs den parametern)

Wie habt ihr das umgesetzt?

mfg, livinskull
Titel: Re: floppy bzw dateisystemtreiber
Beitrag von: RedEagle am 10. January 2008, 21:00
Das Dateisystem vollständig einzulesen ist auf jeden fall sinnvoll.

Ansonsten kommt es drauf an, was du mit deinem System erreichen willst.
Wenn es sehr schnell sein soll würde ich auf jeden fall die 1.5MB RAM "opfern"
ps.: MenuetOS lädt auch beim booten schon im RM die ganze diskette, und greift dann nurnoch auf die Kopie im RAM zu.

Wie ich es machen würde:
Ich habe zwar noch kein floppy-treiber, und mich interessieren erstmal andere dinge ;)
Jedenfalls habe ich 2 Szenarien

1. Die ganze Diskette in den RAM kopieren und evtl sogar defragmentieren

2. Die Diskette in 2 Bereiche teilen. Also quasi eine "schnelle" partition, die in den RAM geladen wird, und dort bis zum runterfahren bleibt, und eine "sichere"  partition, von der die dateien dann einzeln geladen und ohne umwege auch gespeichert werden.
Titel: Re: floppy bzw dateisystemtreiber
Beitrag von: FreakyPenguin am 11. January 2008, 11:22
Generell die ganze Diskette in den Arbeitsspeicher zu laden ist meiner Meinung nach nicht sinnvoll. Ich würde eher einen Block-Cache einrichten, bei dem die Grösse konfigurierbar ist. Damit hast du auch keine Probleme auf Rechnern mit wenig Arbeitsspeicher.
Titel: Re: floppy bzw dateisystemtreiber
Beitrag von: kevin am 11. January 2008, 11:47
Zwar eigentlich im IRC angesprochen, aber hier nochmal für das Archiv: Sektorweise einlesen ist 0xd00f und macht den Treiber lahm. Man sollte komplette Spuren auf einmal einlesen.