[hydrixOS] : HydrixOS ... der Stand der Dinge

  • From: Friedrich Gräter <webmaster@xxxxxxxxxxx>
  • To: Mailingliste <hydrixos@xxxxxxxxxxxxx>
  • Date: Thu, 02 May 2002 18:05:06 +0200

Hallo,
Zwar schien seit Kernel 0.2.0 HydrixOS zum Erliegen gekommen zu sein, 
aber das täuscht: Im Hintergrund habe ich fleißig am ersten 80386-VPC 
gebastelt. :-)

Der 80386-VPC ist ein ungefähr-Emulator zum i386 und trägt den Namen 
v386 (virtual 80386). Einige Instruktionen, die am i386 dem 
Betriebssystem vorbehalten bleiben, kennt er nicht, da er ja nur 
Anwendungsprogramme emulieren soll. Dafür habe ich eine neue Instruktion 
"erfunden", die schnellere HydrixOS-Systemaufrufe ermöglicht (Für alle 
Maschinensprachenkenner: Sie belegt den OP-Code 0x0F-B9-20 - der sonst 
einem nutzlosen Alias der nutzlosen Instruktion UD2 gehört).

Mittlerweile ist der Intel 80386-VPC soweit gediehen, dass nur noch 
wenige Instruktionen bis zum Ziel fehlen. Ich kann bereits kleinere 
i386-Programme mit relativ (es ist ja ein Emulator) beeindruckender 
Geschwindigkeit starten. Der Emulator erreichte bei mir scheinbar fast 
80% der Originalgeschwindigkeit - und ich habe noch einige 
Beschleunigungsmaßnahmen nicht ausgenutzt.
Jedoch hat der Emulator den Kernel von einst 51 KB auf 149 KB 
"aufgebläht", u.a. durch bestimmte Speicherfressende 
Beschleunigungsmaßnahmen. (Die Kern-internen Funktionen "oread", 
"owrite", "kread", "kwrite" habe ich zu inlines gemacht, um zu 
beschleunigen - das macht fast 60 KB aus) Andererseits: 149 KB sind für 
einen Betriebssystemkern, der zudem noch einen Emulator enthält nicht 
sonderlich groß. Erst ab 256 KB wird es kritisch, da ich dann den 
MBR-Bootloader neu programmieren muss.

Von 186 geplanten Instruktionen, sind derzeit etwa 51 noch nicht 
implementiert. Das sind vor allem die Stringverarbeitungsinstruktionen 
(z.B. MOVS), die I/O-Zugriffsinstruktionen (IN, OUT), die 
Flaginstruktionen (z.B. CLC, STC) und die i386-Systeminstruktionen (die 
ich allerdings nur teilweise implementieren muss).

Allerdings hat sich ein neues Problem aufgetan: Der Zugriff auf sog. 
Memory-Mapped I/O-Bereiche (z.B. der Videospeicher) ist zu langsam. 
Derzeit wird dieser Zugriff über den Systemaufruf "write" bzw. "read" 
getätigt. Daher sehe ich mich gezwungen zwei oder drei weitere 
Systemaufrufe zum schnellen Zugriff auf diese Memory-Mapped-I/O Bereiche 
zu kreieren. Derzeit scheint mir der Aufwand für diese Aktion nicht 
allzugroß, mal sehen :-)...

Am Wochenende will ich eine Version 0.2.2 des Kernels veröffentlichen, 
die bereits einen halbwegs funktionstüchtigen Emulator enthält. Ich 
hoffe bis Pfingsten werde ich dann eine Version 0.2.3 mit dem fertigen 
v386 Emulator und den drei neuen Systemaufrufen fertig haben.

Und wenn der Emulator endlich läuft, kann man _endlich_ mit HydrixOS 
etwas sinnvolles Anfangen :-)!

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:

  • » [hydrixOS] : HydrixOS ... der Stand der Dinge