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 - Homix

Seiten: 1 ... 5 6 [7]
121
Offtopic / Escape to Andromeda
« am: 06. April 2005, 21:23 »
hi,
ja genau mit dieser lateinischen Begründung hat es mir joachim_neu auch erklärt  :D
und das obwohl ich selber Latein hab  :D

cu,
stefan2005
122
Offtopic / Escape to Andromeda
« am: 06. April 2005, 21:17 »
hi,
ja  :D
ich hab grad gelernt dass die Terraner die Menschen sind  :)

cu,
stefan2005
123
Lowlevel-Coding / warum funzt der code nicht?
« am: 06. April 2005, 20:57 »
hi,
was funzt nicht ?
macht er einen restart oder zeigt er einfach keinen Text an ?
wenns ein restart ist, kann es daran liegen, dass bei code_end dahinter nur 0en und andere Sachen sind, die die CPU ausführt und dabei sicherlich ein ungültiger Befehl ist.
am besten ein "jmp $" nach code_end: machen !

cu,
stefan2005
124
Lowlevel-Coding / Von Ring 0 in Ring 3 wechseln !?
« am: 24. March 2005, 18:59 »
hi,
ich dachte eigentlich, dass man von Ring 0 in Ring 3 normalerweise leicht wechseln könnte.
jetzt hab ich neben cs_kernel ds_kernel (beide Ring 0) noch ein cs_user und ds_user mit DPL Ring 3 erstellt und in deren Selektoren auch ein PL von 3 eingestellt.
wenn ich nun einen FarJump (jmp cs_user:UserCode) machen will, kommt die Bochs-Meldung "RPL > CPL" !
ich dachte, dass man vielleicht noch vorher den Stack in den Ring 3 schalten muss, aber dann kommt ein INT13 und wenn ich es nach dem Jump machen will ist es dann schon zu spät !

was mache ich da falsch und wie könnte ich das beheben ?

cu,
stefan2005
125
Lowlevel-Coding / Booten von Festplatte
« am: 15. March 2005, 16:31 »
hi,
ja es gibt ein Flag, das beschreibt ob eine Partition aktiv ist oder nicht !
ABER:
man kann ja auf 2 verschiedenen Partitionen auch 2 verschiedene Betriebssysteme installieren und bei entsprechenden Bootloadern dann das OS auswählen, welches gestartet werden soll (also es wird dann warscheinlich nicht NUR von einer aktiven partition gebootet)

cu,
stefan2005
126
Lowlevel-Coding / Booten von Festplatte
« am: 15. March 2005, 15:07 »
hi,
hmm so weit ich weiss, läd der Bootloader im MBR die einzelnen Bootsektoren der Partitionen !
er sieht zum Beispiel dass auf der ersten Partition (A) Betriebssystem A drauf ist und auf der zweiten das OS B !
wenn ich dann auswähle dass er Betriebssystem B laden soll, läd der Bootloader im MBR den Bootsektor der zweiten partition (und somit auch den des 2ten OSes) !
aber woher weiss der Bootloader des 2ten OSes dann dass ER auf der zweiten Partition liegt ?
weil wenn er z.B. dann den Kernel laden will, der 1 Sektor hinter dem Bootsektor liegt, dann muss er ja wissen wo der Bootsektor selber liegt !

versteht ihr jetzt meine Frage und mein Problem ?

cu,
stefan2005
127
Lowlevel-Coding / Booten von Festplatte
« am: 14. March 2005, 21:06 »
hi,
nein
ich mein die Bootsektoren auf den verschiedenen Partitionen für die Betriebssysteme, nicht den MBR !

cu,
stefam2005
128
OS-Design / Wie Windows arbeitet ...
« am: 14. March 2005, 19:57 »
hi,
ich wollt mal fragen, ob ihr wisst wie Windows so arbeitet oder dazu Dokus, Tutorials, Texte, usw.. habt ?
ich würd gerne mir mal so nen groben Überblick schaffen, wie Windows es realisiert (gewisse probleme ect ...).
auch wäre das .EXE PE Format oder Treiber interesant !

cu,
stefan2005
129
Lowlevel-Coding / Booten von Festplatte
« am: 14. March 2005, 19:22 »
hi,
mal so ne kleine Frage zum Booten von Festplatte:
im MBR gibt es ja mehrere Partitionen !
wenn man 2 Betriebssysteme auf Partition A und Partition B hat:
wie kriegt dann der Bootloader vom 2ten Betriebssystem auf Partition B heraus, DASS sein OS auf Partition B liegt und nicht auf A oder gar auf erweiternden Partitionen liegt und von welcher Partition es Dateien ect laden muss ?

cu,
stefan2005
130
Lowlevel-Coding / VESA-Mode - Initialisiert und jetzt?
« am: 06. March 2005, 19:10 »
hi,
um einzelne Pixel "anzumalen" musst du den LFB (Linear Frame Buffer) benutzen !
die Startadresse vom LFB steht in VbeModePhysBasePtr !
Bei 8-Bit Frabtiefe ist jeder Pixel 1 Byte lang (bei 16-Bit ist er 2 Byte,...)
Adresse:                              Pixelposition (von rechts oben aus gesehen)
[VbeModePhysBasePtr]      = X: 0  Y: 0
[VbeModePhysBasePtr]+1  = X: 1  Y: 0
... usw ...
[VbeModePhysBasePtr]+640 = X: 0 Y: 1
...

Text kannst du nicht direkt draufzeichnen ! du musst die Pixel halt so zeichnen! normalerweise wird das über Fonts gemacht !

cu,
stefan2005
131
Lowlevel-Coding / Probleme mit Bootloader
« am: 05. March 2005, 11:20 »
hi,

jmp 0c70h:start


müsste das dann nicht so heißen:

jmp 7c00h:start

??

cu,
stefan2005
132
Lowlevel-Coding / Festplattenpartionierung und -bootsektoren
« am: 18. February 2005, 17:24 »
hi,
ich lese öfters was von aktiven und primären Partitionen.
was genau sind aktive und primäre und welche Eigenschaften haben sie ?

bedeutet aktiv nur dass die Partitionen vorhanden sind oder auch, dass da ein Betriebssystem drauf ist ?

cu,
stefan2005
133
Lowlevel-Coding / Festplattenpartionierung und -bootsektoren
« am: 18. February 2005, 16:04 »
hi,
danke hat mir sehr weitergeholfen !

Kennst du irgendeinen Link oder irgendein Tutorial über Partitionstabellen und erweiterten Partitionen ?

cu,
stefan2005
134
Lowlevel-Coding / Festplattenpartionierung und -bootsektoren
« am: 18. February 2005, 15:07 »
hi,
ich will auch mal versuchen mein OS bootfähig auf eine alte Festplatte zu kopieren.
Soweit ich weiss steht im ersten Sektor von einer Festplatte der Bootsektor (wie bei Disketten halt auch) und eine Partionstabelle von 4 Einträgen (4 oder ? sind dann max. 4 Partionen auf einer Festplatte mglich ?).
Aber die verschiedenen Partionen haben ja auch alle nochmal einen ersten Sektor.
Steht da nochmal ein anderer Bootsektor drin ? z.B. auch noch Dateisysteminformationen ?
oder wie ist da der genaue Aufbau ?
und wie funktioniert das, wenn man mehrere Betriebssysteme pararell auf seinem System laufen lassen will ?

ich hoffe ihr könnt mir bisschen was zu diesen Fragen erklären oder mir auch gute Links geben !
bin für jede Hilfe dankbar !

cu,
stefan2005
135
Lowlevel-Coding / Frage zu Dataselektor DS
« am: 15. February 2005, 20:21 »
hi,
oh ja sry
hatte ich irgendwie übersehen und werd das nächste mal darauf achten !

zurück zum thema:
weiss jemand was ich falsch mache oder ich richtig tun muss ?

cu,
stefan2005
136
Lowlevel-Coding / Frage zu Dataselektor DS
« am: 15. February 2005, 13:41 »
hi,
sry für den Doppelpost aber ich hatte ien kleinen Rechtsschreibfehler drin.

der Dataselektor ist so (soll bei 1 MB starten):

   dw 0xFFFF   ; Segmentgröße 0..15
   dw 0x0000   ; Segmentadresse 0..15
   db 0x10      ; Segmentadresse 16..23
   db 0x92      ; Zugriffsberechtigung und Typ
   db 0xCF      ; Zusatzinformationen und Segmentgröße 16...19
   db 0x00      ; Segmentadresse 24..31


es scheint mit aber eher so, dass dann wenn ich folgenden Code ausführe

  mov ax,datasel_kernel
  mov ds,ax

dass dann der PC den nachfolgenden Code NICHT mehr ausführt !

ist ein Fehler im GDT Eintrag für datasel_kernel ?
wenn ich aber die STartadresse bei 0 lasse macht er keinen Fehler und fährt mit der Codeausführung fort !?

cu,
stefan2005
137
Lowlevel-Coding / Frage zu Dataselektor DS
« am: 15. February 2005, 13:02 »
hi,
ich beschäftige mich noch nicht so lange mit OS Development und hab nun folgende Frage:

Bei einem Sprung zu meinem Kernel (bei 1 MB (0x100000) geladen) führe ich einen Far-Jump aus:

jmp codesel_kernel:0x0          ; springt zum Kernel

Im Kernel kann ich dann ganz normal Funktionen, ect. aufrufen.

aber wie ist das bei Daten/Variablen ?

wenn ich das Dataregister mit datasel_kernel fülle kann ich nicht mit im Kernel definierte Variablen zugreifen !

mov ax,datasel_kernel
mov ds,ax


und im Kernel:

mov ah,[MYBYTE]
jmp $
MYBYTE db 0

Hier wird in das Register ah nicht der Wert von MYBYTE reingeschrieben sondern irgendein anderer Wert !

Übrigens mein datasel_kernel ist wie folgt definiert:

   dw 0xFFF0 ; Segmentgröße 0..15
   dw 0x0000 ; Segmentadresse 0..15
   db 0x00 ; Segmentadresse 16..23
   db 0x92 ; Zugriffsberechtigung und Typ
   db 0xCF ; Zusatzinformationen und Segmentgröße 16...19
   db 0x00 ; Segmentadresse 24..31


Wo liegt der Fehler ?
Seiten: 1 ... 5 6 [7]

Einloggen