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.


Nachrichten - ika

Seiten: 1 [2]
21
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
22
Lowlevel-Coding / Re: [solved] C Kernel laden, in pmode springen
« am: 04. October 2009, 18:43 »
omg, ja war ne %&*$ frage. "bootsec.asm" <- das ist doch der loader -.-
ich sollte mal ne pause machen, bringe schon alles durcheinander, bin dann mal frische luft schnappen. Und nochmal danke, freue mich schon weiterzumachen...
23
Lowlevel-Coding / Re: C Kernel laden, in pmode springen
« am: 04. October 2009, 18:26 »
Schreib' dir nen Bootloader selbst oder nimm GRUB. </troll> </flamewar>
es ist nicht nötig den thead ohne grund zu verlängern, wenn man nicht vorhat auf die frage zu antworten. Doch danke für den versuch der Hilfe.

Funktioniert bei mir.
Ich habs es mit einem Crosscompiler (target: i586-elf) kompiliert, und musste nur die Warnung beseitigen, dass _main dann main heißt.

das problem war der DJGPP (ja mir ist klar, dass es dich nicht wundert^^), mit dem crosscompiler hat alles wunderbar geklappt.
Danke nochmal für die Zeit, die du dir genommen hast.

PS: http://lowlevel.brainsware.org/wiki/index.php/C-Kernel_starten
kann es sein das der loader "kernel16.asm" der sich in der zip befindet, fehlerhaft ist?
...
PMODE2:
jmp END   ;Zum Ende Springen

times 512-($-$$) db 0;Da der Linker sich nicht mit ungeraden
;DateigrцЯen vertrдgt, wird diese Datei auf 512
;gepaddet.

END:
so fehlt meiner meinug nach die Bootsignatur, oder kann man auf diese verzichten?
(Das nur als eine Bemerkung am Rande)
[edit] wo ist der problem-gelöst button bitte?^^
24
Lowlevel-Coding / Re: C Kernel laden, in pmode springen
« am: 04. October 2009, 17:57 »
Funktioniert bei mir.
Ich habs es mit einem Crosscompiler (target: i586-elf) kompiliert, und musste nur die Warnung beseitigen, dass _main dann main heißt.
ok, vielen dank, jetzt weiss ich zumindestens, dass es nicht am code liegt
ich verwende Bochs-2.4.1
# GrцЯe des Hauptspeichers.
megs:32

# Wo stecken BIOS und VGA-ROM?
romimage: file=BIOS-bochs-legacy
vgaromimage: file=VGABIOS-elpin-2.40

# Ein Diskettenlaufwerk, in dem eine Diskette steckt.
floppya: image=disc.iso, status=inserted

# Bootlaufwerk festlegen.
boot: floppy

# Datei fьr Protokoll und Fehlermeldungen.
log: protokoll.log

# Die Maus sollte man solange nicht verwenden, wie es auch
# das emulierte Betriebssystem nicht tut.
mouse: enabled=0

# Ausgabe des Debuggers.
debugger_log: debug.log
#debugger_log: -

# Was tun bei welchem Fehler?
panic: action=ask
error: action=report
info: action=report
debug: action=ignore
an dem kanns dann wohl auch nicht liegen,

zum kompilieren benutze ich: DJGPP
set DJGPP=c:\djgpp\djgpp.env
gcc -ffreestanding -c -o kernel.o kernel32.c

nun ja, ich werde mal weiter rumprobieren
[edit] bin dabei den von dir verlinkten crosscompiler auszuprobieren
25
Lowlevel-Coding / Re: C Kernel laden, in pmode springen
« am: 04. October 2009, 17:21 »
ich danke dir für die antwort, ich weiss doch was grub ist :/

funktioniert das hier bei dir?

Zitat:
"1. funktioniert das hier bei jemanden:
http://lowlevel.brainsware.org/forum/index.php?topic=2050.0
"
in der pdf ist der komplette source (loader+kern).
26
Lowlevel-Coding / Re: C Kernel laden, in pmode springen
« am: 04. October 2009, 16:55 »
es wäre nett auf eine meiner fragen zu entworten.
was ich will ist ein funktionierender loader, der ... siehe überschrift >.<
27
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 [2]

Einloggen