Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Themen - ika

Seiten: [1]
1
Lowlevel-Coding / [solved] GDT nach 0x0000
« am: 11. October 2009, 01:36 »
hallo leute,

hier ist ein ausschnitt aus dem bootloader den ich verwende (funktioniert alles wunderbar):
(Quelle: http://www.cheebi.de/c-kernel-tutorial.pdf)
cli
mov ax, cs       ; Code-Segment holen
mov ds, ax       ; Daten-Segment gleichsetzen
xor eax, eax     ; ax = 0
mov es, ax       ; Extra-Segment auf Null setzen
mov si, GDT      ; Quelle : GDT
xor di, di       ; Ziel : 0x0000
mov cx, 6        ; 6 DoubleWords kopieren (ganze GDT)
rep movsd
Ich frage mich schon die ganze Zeit warum die GDT an die Adresse 0x0000 im Arbeitsspeicher verschoben wird. Vor allem weil immer dachte der Bereich ist für mich tabu. Kann mich jemand aufklären?

[edit]
Reine Spekulation: wenn man die GDT nach 0x0000 lädt, dann muss man base nicht setzen [ base dd (0) ] dabei ist base doch das offset der GDT ? (bitte kurz abnicken).
[/edit]
2
Offtopic / Intel Manuals
« am: 07. October 2009, 00:21 »
ja die alten guten manuals ^^ jeder kennt sie, jeder liebt sie (oder auch nicht).
Auf dieser Seite kann man eine CD mit allen Manuals anfordern:
http://www.intel.com/products/processor/manuals/order.htm
mir scheint es wäre kostenlos, habe das noch nicht versucht. Nicht das die wirklich dem Max Mustermann in die Musterstrasse die CD schicken und der nix mit anfangen kann. Habt ihr zufällig mal probiert sich so ne CD zu bestellen?
Und hat jemand von euch alle relewanten Manuals zusammen, bzw welche sind ein muss und welche sind auch nur am rande empfehlenswert? Ich blicke da noch nicht ganz durch mit den Versionen und dann Volume1 und dann ist es die Version 2 oder die 3A, da komm ich schon mal durcheinander, welcher intel kenner kann mir mal den weg weisen?
3
OS-Design / [solved] Deskriptor Confirm-Bit
« am: 06. October 2009, 16:32 »
Hallo leute,

ich bin grade dabei mir die Theorie anzueignen, und lese deswegen alles mögliche welches mit dem Thema os zutun hat (glaube manches sogar zu verstehen).
Meine Frage bezieht sich auf das Confirm-Bit welches im Code Deskriptor zu finden ist: http://www.fh-zwickau.de/doc/prmo/pmtutor/text/p_all3.htm

Laut: http://www.jay-code.de/
Zitat:
" Conforming Codesegment
Normalerweise ist es so, das ein Programm das eine Privilegstufe 3 (niedrigste) über ein sog. Call-Gate in ein Codesegment springen kann, das eigentlich nur für ein Programm der Privilegstufe 0 (höchste) gedacht ist. Sollte nun dieser Sprung erfolgen, so erhält das Programm für die Dauer, in der es sich in diesem Codesegment befindet um dort Code auszuführen, die Privilegstufe 0. In einem Conforming Codesegment ist das nicht so. Es ist zwar auch hier möglich durch ein Call-Gate in dieses Codesegment zu springen, jedoch wird das Program weiterhin mit der Privilegstufe 3 ausgeführt. Wozu das im einzelnen dienlich sein kann, kann ich im Moment noch nicht sagen ,weshalb ich dazu rate sich erst einmal mit den normalen Codesegmenten zu begnügen. " Zitat Ende.
Somit weiss ich ja schon mal wofür es da ist.

1. Weis jemand vielleicht wozu das dienlich sein kann bzw. wo man das nachlesen könnte?

2. Wenn das Programm zu einem Codesegment springt welches die Privilegstufe 0 hat, wer/was ist dann dafür zuständig dass das Programm vorübergehend eine andere Privilegstufe bekommt: Prozessor oder explizit der Kernel?

mfg ika
4
Lowlevel-Coding / [solved] C Kernel laden, in pmode springen
« am: 04. October 2009, 14:31 »
hallo,

ich bin schon seit längerem auf der suche nach einem asm code der:
1. bootloader: der einen kernel lädt und in pmode wechselt
2. kernel: der von diesem bootloader geladen wird
dies beides enthält und auch funktioniert.

Daher meine Fragen:

1. funktioniert das hier bei jemanden:
http://lowlevel.brainsware.org/forum/index.php?topic=2050.0
(bei mir nicht, weder mit bochs, noch mit einer diskette von der gebootet wird)
[edit]genauer: es gibt einfach immer wieder einen reeboot[edit]

2.funktioniert das wiki-tut c kern laden bei jemanden (nach gewissen veränderungen evtl.)?


3. hat vielleicht jemand ein funktionierendes beispiel?
(ich wäre sehr sehr dankbar :)

Was mir bisher gelungen ist:
1. hallo welt "bootloader"
2. "bootloader" der eine 16bit kern lädt

mfg ika
Seiten: [1]

Einloggen