| Zeile 40: | Zeile 40: | ||
=== Screenshot === | === Screenshot === | ||
Hier passend zum Namen ein Bild von einem Pink Screen Of Death (Dank an [[Benutzer:Hartmut|Hartmut]] für die Inspiration): | Hier passend zum Namen ein Bild von einem Pink Screen Of Death (Dank an [[Benutzer:Hartmut|Hartmut]] für die Inspiration): | ||
| + | |||
[[Bild:Paloxena-PSOD.png]] | [[Bild:Paloxena-PSOD.png]] | ||
| Zeile 55: | Zeile 56: | ||
* ''maumau'' 0.5 (Was sonst) | * ''maumau'' 0.5 (Was sonst) | ||
* ''pdksh'' 5.2.14 (Public-Domain-Version der Korn Shell) | * ''pdksh'' 5.2.14 (Public-Domain-Version der Korn Shell) | ||
| + | |||
| + | == paloxena3 == | ||
| + | |||
| + | === Oh, mein Gott. === | ||
| + | Ja. Es ist schon wieder passiert. Auch paloxena2 war zu kaputt, also gibt es nun paloxena3. Im Großen und Ganzen verfolgt es die gleichen Ziele wie paloxena2 (SMP, Threads, einfacheres Treiberinterface). Bei paloxena2 gab es aber erstens das Problem, dass ich anfangs noch keine Ahnung von SMP hatte und ich das OS zweitens zu Beginn nur als Testplattform für meinen CDI-USB-Treiber verwendet habe – das soll bei paloxena3 von Anfang an besser laufen. | ||
| + | |||
| + | === Syscalls === | ||
| + | Im Gegensatz zu paloxena2 sind die Linuxsyscalls nicht die nativen Syscalls von paloxena3. Native Calls finden (vorerst) über den Interrupt 0xA2 (in Anlehnung an 0x2A, der aber für IRQs reserviert ist) statt. Wird allerdings der Interrupt 0x80 aufgerufen, so wird der entsprechende Linux-Syscall ausgeführt. Per Interrupt 0x7F sind [[PrettyOS]]-Syscalls zu erreichen. Auf diese Art und Weise soll es möglich sein, verschiedene Betriebssysteme zu „emulieren“, sollten zwei Betriebssysteme z. B. den gleichen Interrupt verwenden, dann wird beim Programmstart festgestellt, welche Emulationsart verwendet werden soll, dies ist auch z. B. für den Zustand des Stacks bei Programmaufruf wichtig. Bis jetzt geschieht dies folgendermaßen: | ||
| + | * Wenn an der Stelle 0x7FFFFFFC ein DWord mit dem Wert 42 steht, dann handelt es sich um eine native paloxena3-Anwendung (sollte nur per 0xA2 Syscalls ausführen, darf vorraussichtlich aber auch per 0x80). | ||
| + | * Ist der Entry-Point zwischen 0x14000000 und 0x2000000, dann wird PrettyOS emuliert. | ||
| + | * Sonst handelt es sich um eine Linuxanwendung. | ||
| + | |||
| + | PrettyOS wird bereits ziemlich gut emuliert (allerdings fehlen in Ermangelung eines entsprechenden Treibers die Disketten- bzw. FAT-Funktionen, ebenso gibt es nur eine rudimentäre Tastaturunterstützung), hier ein Screenshot der Shell: | ||
| + | |||
| + | [[Datei:Prettypaloxena.png]] | ||
| + | |||
| + | === OSOD === | ||
| + | Neu bei paloxena3 ist der OSOD, der Orange Screen Of Death. Die einen schwerwiegenden Fehler anzeigende Farbe ist also nicht mehr pink oder violett, sondern orange, meine Lieblingsfarbe (<span style="color: rgb(255, 64, 0);">#FF4000</span>, um genau zu sein). Hier ein entsprechender Screenshot: | ||
| + | |||
| + | [[Datei:Paloxenaosod.png]] | ||