[hydrixOS] : Re: Verbesserungsvorschlaege

  • From: Friedrich Gräter <webmaster@xxxxxxxxxxx>
  • To: hydrixos@xxxxxxxxxxxxx
  • Date: Sun, 26 May 2002 15:41:28 +0200

kempf_stefan@xxxxxxxx wrote:
 >
> ich war erstaunt als ich sah, dass die Groesse des
> RAMs ueber Schreiben und Auslesen des Speichers ermittelt
> wird. Das ist nicht ganz ungefaehrlich. Wird ein Geraet in
> diesen Speicherbereich gemappt und du schreibst in diesen
> Bereich kann das zu undefiniertem Verhalten fuehren.
> IIRc wurde dieses Verfahren deswegen aus dem Linux Kernel genommen.
> Ich habe angefangen, die RAM Groesse ueber das BIOS zu ermitteln.
> Den Code wuerde ich dir dann zuschicken.

Es ist allerdings gefährlich, da muss ich dir Recht geben. Andererseits 
hat das BIOS den Nachteil, dass es nur maximal 64 MB zurückgeben kann, 
so zumindest mein Handbuch über den BIOS Interrupt 12:

<zitat>

INT 12 - Memory Size Determination


no input data


on return:
AX  = the number of contiguous 1k memory blocks found at startup

- contiguous memory does not include video memory or extended RAM

</zitat>

Die Methode aus 'setup.S' vom Linux-Kernel versteh ich noch nicht ganz. 
Irgendwie wird irgendwo eine Memory map zur Verfügung gestellt. Aber ich 
weiß noch nicht ganz wie, und wie diese Map aussieht :).

> 
> Bis ich mit dem Terminaltreiber anfagen kann muss ich mich noch
> ein wenig in den Code einarbeiten und die Spezifikationen noch
> einmal durchlesen.
> 

Ich hoffe, dass das Handbuch dann die Unklarheiten aus den 
Spezifikationen decken wird :).

> Dann wuerde ich vorschlagen, oslod.s zu aendern. Ich wuerde ab
> einem bestimmten Offset eine 'blocklist' einbauen, die aus
> bis zu 12 4 Byte Eintraegen besteht und den Speicherort des
> Kernels auf einer FAT12 Diskette beinhaltet. Der Vorteil:
> Der Kern kann sich zerstreut auf der Diskette befinden und trotzdem
> geladen werden. Ich habe so einen loader schon einmal geschrieben
> und auch ein Programm, das die Blocklist fuellt, indem es heraus-
> findet, wo auf der Diskette der Kernel ist. Aehnlich kann
> so eine blocklist in bootsec.s eingebaut werden, um oslod zu laden.
> Das wuerde theoretisch mit jedem Dateisystem gehen und man muesste
> den Kernel usw. nicht an feste Stellen auf Diskette/HD schreiben.
> Er muss halt innerhalb der ersten 1024 Zylinder sein.

Keine schlechte Idee. Würde das auch heißen, dass der Kernel dann als 
normale Datei auf die Diskette gespeichert werden könnte?

> 
> Das kann ich schreiben, wenn ich den Terminaltreiber so einigermassen
> hinbekommen oder aber noch davor.
> 

Das wäre super! Das jetzige Bootprogramm ist ja nicht die optimale 
Lösung - sondern eher die "dateisystemlose" Testvariante (okay, 
Müllvariante :)).

cu

FG

---
This is not SPAM! You can unsubscribe sending an e-mail to 
hydrixos-request@xxxxxxxxxxxxx with subject "unsubscribe". If
you've got questions contact webmaster@xxxxxxxxxxxx

hydrixOS kernel: http://www.hydrixos.de/downl.htm


Other related posts: