Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: zacK am 25. June 2004, 15:56

Titel: Kernel von Diskette in RAM laden und ausführen
Beitrag von: zacK am 25. June 2004, 15:56
ahoi!!

ich will ein os programmieren das ausschlisslich (vorerst) auf einer diskette läuft.

Damit ich die Diskette danach rausnehmen kann und dass das OS schneller läuft, möchte ich die ganze Diskette (alle Dateien und Ordner) ins RAM laden.

nun meine Frage: is das gescheit?? (wenn ja wie mache ich das?)

oder soll ich (vorbereitung auf hd-kompatibilität) nur die dateien laden die gerade benötigt werden.

doch dann muss das os immer wieder auf die diskette zugreifen, und das dauert...


thx 4 help & sry cause i am noob
Titel: Kernel von Diskette in RAM laden und ausführen
Beitrag von: lobmann am 25. June 2004, 16:00
du meinst quasi sowas wie ne ramdisk
Titel: Kernel von Diskette in RAM laden und ausführen
Beitrag von: The-Programmerfish am 25. June 2004, 16:28
Falls dein OS im Protected Mode läuft würde ich das mit einer Ramdisk machen. Sonst musst du erst einen Treiber fürs Diskettenlaufwerk schreiben. Du könntest zu Real-Mode Zeiten alle Programme usw. in den Ram schaufeln und dann in den PMode schalten und zum Kernel springen (MenuetOS machts glaub ich auch so)
Titel: Kernel von Diskette in RAM laden und ausführen
Beitrag von: GhostCoder am 25. June 2004, 16:53
Hi,

also ich würd von der Ramdisk abraten, vorerst mal wegen der hd kompatitblität. Außerdem lädst zu beim booten ja auch nur einige treiber und configs. Und die kommen ja auch komplett in den Speicher. Und Zugriff auf die Disk findet danach ja auch nur statt, wenn z.B. ein Editor ne Datei speichert, oder du den Inhalt eines Ordners anzeigst...

MfG GhostCoder
Titel: Kernel von Diskette in RAM laden und ausführen
Beitrag von: GhostCoder am 25. June 2004, 16:57
Nochmal ich :)

Auch wenn es nicht gescheit ist:
Wenn du im rmode bist, kannst du ja sowieso nicht die ganze Diskette in den Speicher packen, da du nur 1mb adressieren kannst. Vorausgesetzt du bist im pmode oder hast irgendwelche Speicherextender, kopierst du einfach jeden Sektor hintereinander in den Speicher, also "Sektor 1 lesen, Zeiger+=512","Sektor 2 lesen, Zeiger+=512","Sektor 3 lesen, Zeiger+=512" bis Sektor 2879.

MfG GhostCoder
Titel: Kernel von Diskette in RAM laden und ausführen
Beitrag von: TeeJay am 25. June 2004, 19:05
Naja um gescheit mit den Daten auf der Diskette arbeiten zu können, müsstest du eh einen Floppytreiber und einen FAT12-Treiber schreiben. Und dann musst du nicht extra alles in den Speicher kopieren, was auch irgendwo ein falscher Ansatz ist.

Im Speicher sollte nur das gehalten werden, was auch benötigt wird.
Titel: Kernel von Diskette in RAM laden und ausführen
Beitrag von: joachim_neu am 25. June 2004, 20:37
außerdem: sollte das sys abstürzen, sind alle daten weg!
Titel: Kernel von Diskette in RAM laden und ausführen
Beitrag von: zacK am 26. June 2004, 10:34
hi leuts,

vielen dank für die vielen antworten! DANKE-ANKE!
ehm, jetzt bin ich ziemlich hin und hergerissen..
RAM-Disk tönt gut. Ich dachte dann kann man eine andere Diskette einlegen und dort weiterschaffen, einlegen & weiterschaffen,...

Anderer seits finde ich haben GhostCoder & TeeJay & joachim_neu sehr gute gegen Argumente gebracht.

Wie habts ihr den gemacht?

thx4help
cya
Titel: Kernel von Diskette in RAM laden und ausführen
Beitrag von: mastermesh am 26. June 2004, 10:58
Ich fand den Ansatz einer Initial Ramdisk immer recht vernünftig (ähnlich wie bei Linux), d.h. dass alle systemwichtigen Teile erstmal in den RAM geschaufelt werden.

Bei allen anderen Sachen lohnt sich eine Ramdisk IMHO nicht.
Titel: Kernel von Diskette in RAM laden und ausführen
Beitrag von: joachim_neu am 26. June 2004, 18:39
mein sys holt alle wichtigen daten in den ram und die benutzerdaten werden direkt auf den datenträger gebracht, bei veränderungen wird das andere auch geschrieben...
Titel: Kernel von Diskette in RAM laden und ausführen
Beitrag von: zacK am 28. June 2004, 11:07
könnt ihr mir vielleicht ein par links posten zum them kernel von hd laden post.

ausser google.de (kenn ich schon ;-))

ich habe mich nun entschlossen nur die wichtigsten dateien in den kernel zu laden. :D

mfg zacK (thx4help)