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

Seiten: [1]
1
Lowlevel-Coding / dynamisches linken
« am: 20. May 2006, 13:02 »
also ich befasse mich zurzeit mit dem dynamischen linken von programmen. ich hab mir mal die einzelnen arbeitsschsritte aufgeschrieben:

1. zuerst das hauptmodul laden.
2 .die globalen symbole in eine liste eintragen
3. die externen symbole in eine andere eintragen.
4. falls externe symbole in der liste:
a. eine benötigte bibliothek laden.
b. die globale symbole der bibliothek in eine liste eintragen,
und falls solch ein symbol in der externen liste ist, dass jeweilige modul das
symbole relocaten lassen.
c. dann die externen symbole der bibliothek in die liste eintragen
d. zu punkt 4 springen

d.h. in der global-liste muss typ und name des symbols stehen
und in der extern-liste muss modul, dass dieses symbol benötigt,
name und typ stehen.

macht ihr das auch in etwa so, oder kennt ihr ne andere (möglicherweise) einfachere methode?

maumo
2
Lowlevel-Coding / farben und vesa
« am: 13. April 2006, 22:57 »
wie ist eigentllich die ordnung der farb bytes bei vesa? ist die in jedem modus gleich? RGB oder BGR? bin grad ziemlich verwirrt, bei mir funkelt der ganze bildschirm, weil ich die farben anscheinend falsch auslese -.-

maumo
3
Lowlevel-Coding / ps2 mouse
« am: 29. January 2006, 11:33 »
hi

hab n problem mit nem ps2-maustreiber.
ich bekomm einfach keinen irq.

zur initialisierung mach ich folgendes:

1. maus interface aktivieren
2. streammodus aktivieren
3. irq12 einschalten
4. daten stream aktivieren
5. interface ausschalten

laut bochs ist auch alles richtig passiert:
00065989339d[KBD  ] keyboard: 8-bit write to 0064 = a7
00065989339d[KBD  ] set_aux_clock_enable(0)
00065989339d[KBD  ] aux device disabled
00065989409d[KBD  ] keyboard: 8-bit write to 0064 = a8
00065989409d[KBD  ] set_aux_clock_enable(1)
00065989409d[KBD  ] aux device enabled
00065989486d[KBD  ] keyboard: 8-bit write to 0064 = d4
00065989486d[KBD  ] io write 0x64: command = 0xD4 (write to mouse)
00065989569d[KBD  ] keyboard: 8-bit write to 0060 = ea
00065989569d[KBD  ] MOUSE: kbd_ctrl_to_mouse(eah)
00065989569d[KBD  ]   enable = 0
00065989569d[KBD  ]   allow_irq12 = 0
00065989569d[KBD  ]   aux_clock_enabled = 1
00065989569d[KBD  ] controller_enQ(fa) source=01
00065989624d[KBD  ] [mouse] read from 0x60 returns 0xfa
00065989720d[KBD  ] keyboard: 8-bit write to 0064 = 20
00065989720d[KBD  ] get keyboard command byte
00065989720d[KBD  ] controller_enQ(41) source=00
00065989775d[KBD  ] READ(60) = 41
00065989800d[KBD  ] service_keyboard(): no keys waiting
00065989860d[KBD  ] keyboard: 8-bit write to 0064 = 60
00065989860d[KBD  ] write command byte
00065989961d[KBD  ] keyboard: 8-bit write to 0060 = 43
00065989961d[KBD  ] set_aux_clock_enable(1)
00065989961d[KBD  ]  allow_irq12 set to 1
00065990038d[KBD  ] keyboard: 8-bit write to 0064 = d4
00065990038d[KBD  ] io write 0x64: command = 0xD4 (write to mouse)
00065990121d[KBD  ] keyboard: 8-bit write to 0060 = f4
00065990121d[KBD  ] MOUSE: kbd_ctrl_to_mouse(f4h)
00065990121d[KBD  ]   enable = 0
00065990121d[KBD  ]   allow_irq12 = 1
00065990121d[KBD  ]   aux_clock_enabled = 1
00065990121d[KBD  ] controller_enQ(fa) source=01
00065990121d[KBD  ] [mouse] Mouse enabled (stream mode)
00065990176d[KBD  ] [mouse] read from 0x60 returns 0xfa
00065990200d[KBD  ] service_keyboard(): no keys waiting
00065990272d[KBD  ] keyboard: 8-bit write to 0064 = ae
00065990272d[KBD  ] keyboard enabled
00080200000d[KBD  ] PS/2 mouse enabled                            


wenn ich dann die maus bewege (in bochs)
kommt sowas:
00084995000d[KBD  ] [mouse] Dx=2 Dy=2 Dz=0
00084995000d[KBD  ] mouse_enQ(08)
00084995000d[KBD  ] mouse_enQ(02)
00084995000d[KBD  ] mouse_enQ(02)
00084995000d[KBD  ] service_keyboard: key(from mouse) in internal buffer waiting
00085188000d[KBD  ] [mouse] Dx=11 Dy=2 Dz=0
00105367000d[KBD  ] [mouse] Dx=-1 Dy=1 Dz=0
00105505000d[KBD  ] [mouse] Dx=-1 Dy=1 Dz=0
00105737000d[KBD  ] [mouse] Dx=-1 Dy=1 Dz=0
00105877000d[KBD  ] [mouse] Dx=0 Dy=1 Dz=0
00106102000d[KBD  ] [mouse] Dx=-1 Dy=1 Dz=0
00106269000d[KBD  ] [mouse] Dx=-1 Dy=1 Dz=0
[...]
00106284000d[KBD  ] gen_scancode(): BX_KEY_CTRL_L pressed
00106284000d[KBD  ] gen_scancode(): writing translated 1d
00106284000d[KBD  ] kbd_enQ(0x1d)
00106284000d[KBD  ] kbd_enQ: putting scancode 0x1d in internal buffer
00107499000d[KBD  ] [mouse] Dx=-1 Dy=0 Dz=0
00107882000d[KBD  ] mouse_enQ(09)
00107882000d[KBD  ] mouse_enQ(a4)
00107882000d[KBD  ] mouse_enQ(3f)
00108386000d[KBD  ] [mouse] Dx=1 Dy=0 Dz=0
00108585295d[KBD  ] mouse_enQ(09)
00108585295d[KBD  ] mouse_enQ(01)
00108585295d[KBD  ] mouse_enQ(00)
00108585295d[KBD  ] PS/2 mouse disabled
00109345532i[WGUI ] &&&missing mouse state change                        


gibts irgendwas was ich nicht beachtet hab?
muss ich noch irgendwelche dinge aktivieren/deaktivieren

thx maumo
4
Offtopic / hacker, cracker und co.
« am: 04. August 2005, 13:49 »
ich bin durch einige klassenkameraden mal wieder auf script kiddies aufmerksam geworden. einer hat angegeben er habe schon so viele server gehackt und ist ganz doll bekannt in der szene, er meinte er war ein mitglied der LEGEND OF THE DOOM ( :!:  ), aber war dass nicht so dass die schon lange nicht mehr existieren??? es ist klar dass die nur n paar script kiddies sind aber
und wollt nun eure meinung zur ganzen szene wissen:

was denkt ihr über hacker? sollen sie euch in ruhe lassen oder toleriert ihr sie?
hasst ihr cracker?
und vor allem was sagt ihr zu script kiddies?
5
Lowlevel-Coding / paging oder segmentation?
« am: 03. August 2005, 21:35 »
ich wollte mal fragen wer von euch welches benutzt und vor allem weshalb?

damit dieser thread nicht verschoben wird noch ne frage dazu:
wenn ich segmentierung nehmen möchte und nun in einer datei 2 data segmente habe, wie wird dass ganze gemanaged? sollte ich ein eintrag in der ldt für beide zusammen machen, oder sie trennen? wenn ich sie trenne, wie kann gcc wissen, was er inst ds laden muss? mit 2 data segmenten meine ich data und bss, oder auch rodata
6
Offtopic / ausbildung
« am: 02. August 2005, 21:17 »
da es langsam zeit wird mich um meine zukunft zu kümmern (immerhin bin ich schon 15 :wink: ) wollte ich ma so fragen was ihr denkt: ist es sinvoll sich irgendwo als systementwickler zu bewerben? oder ist dieser beruf einfach schon zu voll (man siehe M$) und hat keine zukunft mehr? welchen weg würdet ihr einschlagen? wie/wieso habt ihr euch für eure uni beworben?
7
Lowlevel-Coding / mal wieder GCC...
« am: 31. July 2005, 16:27 »
also ich weis net aber ich glaub das ding mag mich nich...

ich hab versucht den fehler in meinem MT zu finden und nach stundenlangem hin und her hab ich den fehler gefunden:


    KernelHeapSegment* Segment = NULL;
    KernelHeap.Bottom = (Address)0x220000;
    KernelHeap.Top    = (Address)0x400000;
    KernelHeap.Inited = 1;
   
    Segment = (KernelHeapSegment*)(KernelHeap.Bottom);
    Debug("S=%h", Segment);
    if(Segment = NULL)
      return;

    Segment->Next  = NULL;
    Segment->Size  = (UInt32)(KernelHeap.Top - KernelHeap.Bottom);
    Segment->State = HeapSegmentFree;
    Segment->Magic = KHeapMagic;


die ausgabe ist merkwürdigerweise
S=0x0.
Debug funtzt richtig...
also ich überlege wirklich nur noch pur asm zu coden... aber vielleicht hat ja noch jemand so ne probleme?
8
Offtopic / gcc 4.0 und seine maken:
« am: 28. July 2005, 18:38 »
ich nutze zum compilieren gcc 4.0 und mir passieren so merkwürdige sachen

1. paging initialisiere ich durch lesen von CR0 und schreiben des inhaltes OR 0x800000000. hat immer gefuntzt, bis gestern. das einzige was ich gemacht hab, ist im linkerscript eine section hinzugefügt (ans ende) und jetzt macht bochs diesen befehlt zwar, jedoch zeigt er das nicht mehr an. ich hab dann mal die section gelöscht und was ist ? der fehler bleibt...

2. Ich hab eine structur zum senden von nachrichten angelegt. in dieser wollte ich dann ein paar unterstructuren anlegen. alles klappt wunderschön bis ich dan eine structure TMKillMsg nenne. die structure ist genauso wie alle anderen nach standard angelegt aber gcc meckert ich habe eine semikolon vergessen... dann hab ich die unterstructure mal aus der oberen rausgenommen und was ist? fehler weg. dan hab ich sie wieder eingefügt und der fehler blieb verschunden

langsam überlege ich einen anderen compiler zu nutzen... welchen würdet ihr empfehlen?
9
Offtopic / BYE
« am: 30. June 2005, 22:03 »
hi ersma!

ich weiss nich ob euch aufgefallen ist, dass ich da bin. jedenfalls werd ich mich jetzt erstmal verabschieden müssen, da ich weg ziehe und keinen netz anschluss haben werd... an der stelle mal ein fettes danke schön an alle, vor allem J!N für seine konstruktive kritik an allem, und auch an Roshl, dafür, dass er alles weiß ;P, aber auch an alle anderen, die mir immer bei meinen problemen geholfen haben. werd euch vermissen

Ab morgen hab ich offiziel nicht mal mehr einen Computer... Aber in 3 Wochen hab ich die Stromleitungen verlegt (ich weiss, dass macht mann eigentlich vorher, aber wir haben halt ALLES selbst gebaut und dass bis jetzt aufgeschoben), dann hab ich wieder einen Computer. In genau 7 monaten werden dann die DSL Leitungen verlegt (laut telekom...) und bis dahin BYE.

maumo
10
Lowlevel-Coding / java in osdev
« am: 09. May 2005, 18:18 »
hat einer von euch ahnung wie (und warum) man java in
osdeving einbringen kann? ist es denn sinnvoll?
11
Lowlevel-Coding / Bios
« am: 09. May 2005, 07:28 »
ist es eigentlich möglich einen Bios int aufzurufen, indem man einfach
einen aufruf (far call) simuliert und dann an die routine springt?

also:
cs und eip pushen
ivt auslesen
an die routine aus der ivt springen
?
12
Lowlevel-Coding / multitasking verständnis
« am: 08. May 2005, 17:36 »
ich denke ich hab jetzt multitasking verstanden, aber da es bei mir
nicht so funtzt wie es sollte, korregiert mich bitte:

ich hab den TimerIRQ als TaskGate definiert und in der GDT ein TSS für den Timer und eins für ALLE Prozesse ZUSAMMEN gesetzt.

Wenn jetzt der Timer Int ausgelöst wird speichert die CPU ihren zustand im TSS welches im TR steht, das TSS für die Prozesse und lädt das TSS welches im TaskGate definiert ist, das vom Timer. Im TimerHandler speichere ich den inhalt des TSS in einer eigenen struktur des jetzigen Prozesses, wähle dann einen neuen und lade dann die werte aus dem Prozess in das TSS der Prozesse. Dann wird ein IRET ausgelöst und die CPU läd ihren Zustand aus dem TSS der Prozesse.

hoffe das hab ich richtig verstanden. Mein problem ist jetzt: wie starte ich das ganze? ich hab versucht einfach ein IRET mit gesetztem NT bit zu machen, funtzt aber nicht... Langsam verzweifle ich... :cry:
13
Lowlevel-Coding / PUSHA
« am: 21. April 2005, 17:51 »
Ich hab ne Frage zu Pusha:

was genau Pushed es?
und in welcher reihenfolge?

maumo
Seiten: [1]

Einloggen