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

Seiten: 1 ... 6 7 [8] 9 10
141
Lowlevel-Coding / Probelm mit Kernel
« am: 27. July 2004, 13:23 »
Hiho,

schau mal auf meine erste Antwort! Darauf hast du ja nicht reagiert.
Außerdem ist hier keiner verpflichtet dir antworten zu geben!!
Und das du erst hier fragen stellt, und dann googelst, find ich noch schlimmer...

P.S.: Und jetzt erklär mir mal, was ein OS-Header ist? Ich weiß es wirklich nicht!

Da kann man sich nurnoch an kopf packen...,
MfG GhostCoder
142
Lowlevel-Coding / Input bei C-Kernel
« am: 27. July 2004, 13:18 »
Hiho,

naja, du versucht einen bios interrupt aufzurufen. aber, du bist ja im protected mode, und da gibts sowas nicht mehr, du musst dir also selber einen tastatur treiber schreiben.

außerdem erzeugt djgpp flat pmode code, d.h. das dein code wie oben genannt läuft, muss dein bootloader in den pmode schalten, aber wie soll das dann turboc (das ja segmented rmode code erzeugt) laufen?

Ich denke, du bist der typische "schreiben ohne zu verstehen" os-dever, daher als guter rat:
Du solltest verstehen, was die sachen bedeuten, die du schreibst (oder einfügst, oder was auch immer).
Wenn das nicht der fall ist, wirds du nie weiterkommen...

MfG GhostCoder
143
Offtopic / Bochs und Window 98 - ein ungleiches Paar ?
« am: 27. July 2004, 13:12 »
bximage.exe glaub ich,
das erstellt allerdings nur komplett leere (nullen) images.

MfG GhostCoder
144
Offtopic / Bochs und Window 98 - ein ungleiches Paar ?
« am: 27. July 2004, 08:38 »
Hiho,

ne in das Verzeichnis von deinem "pc".

Wie gesagt, guck dir dlxlinux an, oder lad andere images von http://bochs.sourceforge.net runter. Und da kopierste deine Dateien (Kernel+Bootloader oder so) einfach in das Image rein.

So schwer kann das eingentlich nicht sein :)

MfG GhostCoder
145
Offtopic / Programming-Board
« am: 26. July 2004, 15:22 »
Hiho,

seh ich auch so, ich schrei ja auch nicht bei Berlet rum, wie toll Saturn is :)
Außerdem melde ich mich nicht einem Board an, wo erst ein Member gereggt ist, da gibts nicht viel zu sagen ;)

MfG GhostCoder
146
Offtopic / Bochs und Window 98 - ein ungleiches Paar ?
« am: 26. July 2004, 15:19 »
War ja eher an bscreator gerichtet :)

MfG GhostCoder
148
Lowlevel-Coding / Probelm mit Kernel
« am: 26. July 2004, 13:42 »
Hiho,

was ist den (d)ein "OS-Header"?
Etwa das "Es trat ein Fehler auf: Datei konnte nicht gefunden werden"?
Wenn ja, Respekt!!

Ansonsten stimme ich lobmann voll zu :)

P.S.: Deine Logik find ich echt witzig: Du willst einen C Kernel schreiben, den du auch schon geschrieben hast??? In der Schule nannte man das abschreiben, und dafür gibt's ne 6! :)

MfG GhostCoder
149
Offtopic / Bochs und Window 98 - ein ungleiches Paar ?
« am: 26. July 2004, 13:11 »
Hiho,

wer lesen kann, ist klar im vorteil:
# The path should be the name of a disk image file. On unix, you can use
# a raw device name such as /dev/fd0 on Linux. On WinNT and Win2k, use
# drive letters such as a: or b: as the path. Raw floppy access is not
# supported on Windows 95 and 98.

Du musst also zwangsläufig über nen floppy image gehen, aber im Endeffekt wirst du mir nach build nr. 2500+ dafür danken :)

MfG GhostCoder
150
Lowlevel-Coding / Probelm mit Kernel
« am: 26. July 2004, 12:19 »
> War ja nur zu Beispielzwecken .....
> Schickt mir mal bitte einen bootloader für den pmode
Klar, aber nimm doch am besten gleich meinen Kernel und nen ihn in ScorpionOS um, oder warte...ich mach das für dich, und schick ihn dir per mail, ok?

MfG GhostCoder
151
Lowlevel-Coding / Probelm mit Kernel
« am: 26. July 2004, 09:06 »
Hiho,

wenn überhaupt musst du "--oformat binary" angeben, es sei den du hast einen elf loader geschrieben...

Springt dein Bootloader in den PMode und lädt den Kernel an Adresse 0x100000 (1MB)? Bzw. springt der Bootloader dahin?

Hast du mehrere C Quelldateien? Wenn ja, kann es sein, das sie anderen Dateien vor der Kernel.c gelinkt werden, und dadurch der Einsprungspunkt (main) nicht mehr ganz vonre im Code ist, mach doch lieber ne asm datei, die zu main springt, und immer(!) ganz vorne im Code steht...

MfG GhostCoder
152
Offtopic / Bochs und Window 98 - ein ungleiches Paar ?
« am: 23. July 2004, 22:40 »
Hiho,

wenn du dein echtes Floppylaufwerk nehmen willst, musste nur "a:" angeben

MfG GhostCoder
153
Lowlevel-Coding / Systemcalls
« am: 23. July 2004, 22:36 »
Hiho,

danke, ich hab aber schonwieder was neues *gg
dabei werde ich, denke ich, aber bleiben. hier steht das:
http://groups.google.de/groups?dq=&hl=de&lr=&ie=UTF-8&threadm=4a7f52c4.0407230027.3068afc2%40posting.google.com&prev=/groups%3Fhl%3Dde%26lr%3D%26ie%3DUTF-8%26q%3Dalt.os.development%26btnG%3DSuche
( Ich weiß aber nicht, woher der Text aus 2001 (der mit dem vbe) kommt)
Der wesentliche Unterschied zur og. Methode ist eigentlich nur, das SendMessage
und GetMessage nun keine Syscalls mehr sind, da der Prozess ja sowieso
auf den Buffer zugreifen kann, den kompletten Code dafür hab ich auch schon geschrieben, falls jmd Interesse hat...

MfG GhostCoder
154
Offtopic / Bochs und Window 98 - ein ungleiches Paar ?
« am: 21. July 2004, 16:08 »
Hiho,

Die Optionen die du zur laufzeit eingibst, werden nicht gespeichert.
Guck am besten mal in das "dlxlinux verzeichnis, daraus kannste den lernen, wie man bochs benutzt :)

MfG GhostCoder
155
Lowlevel-Coding / Die Qual der Wahl
« am: 18. July 2004, 00:46 »
Hiho,

RET springt von einem near call zurück, das heißt ip (eip) wird vom stack geholt.

IRET springt von einem hard- der sofware (mittels int) interrupt zurück.  es werden also cs,ip(eip) und (e)flags vom stack geholt. ( im pmode gibt es aber noch viele andere anwendungsgebiete, in denen iret eingesetzt wird)

RETF springt von einem far call zurück, d.h. e(ip) und cs werden vom stack geholt.

RETN steht denke ich mal für return near, und daher das gleiche wie ret.

MfG GhostCoder
156
Lowlevel-Coding / Systemcalls
« am: 16. July 2004, 11:35 »
Hiho,

also den Quellcode veröffentliche ich noch nicht (der kommt mir der ersten public version), weil viel von dem Messaging Code hängt auch mit dem Multitasking-, Scheduling- und anderen Code ab.
Hier aber erstmal wie es funzt:
// Returns the buffer that is shared by the kernel and the calling process
struct MESSAGE *GetMessageBuffer();

// Send a message to a process
int SendMessage(int iPid,UINT uiMessage);

// Sends the calling process to sleep until a message arrives
void WaitMessage();

// Copies the first message into the message buffer
int GetMessage();
Also, beim erstellen eines Prozesses wird ein sog. MessageBuffer erstellt, in dem immer eine Message gespeichert werden kann. Der MessageBuffer wird dann in den Kernel und Prozess Space gemappt, sodass beide darauf zugreifen können.

WaitMessage setzt den Prozess solange auf sleep (d.h. er wird nicht in scheduling einbezogen -> keine rechenzeit) bis eine Nachricht vorhanden ist.

Mit GetMessage wird die erste Message im MessageQueue(der Warteschlange) in den MessageBuffer kopiert, die Adresse kann sich der Prozess ja über GetMessageBuffer holen.

Und schlussendlich SendMessage, die, man glaub es kaum :), eine Nachricht an eine Prozess schickt.

Ich denke bald wird eine Message noch um einen SubCode sowie ein Data UINT erweitert. Darauf lassen sich dann alle "richtigen" Systemcalls ala GetPid(), CreateThread() und sowas (also eigentlich die komplette API) später aufbauen.

So, ich glaube schneller geht eine asyncrone microkernel prozess kommunikation wohl kaum :) wenn doch lasst es mich wissen...

MfG GhostCoder
157
OS-Design / Memory Management
« am: 16. July 2004, 09:00 »
Hiho,

für die physikalischen pages benutz ich einen Stack, das brauchst zwar mehr Speicher, ist aber um einiges schneller, vorallem, da ich nie direkt aufeinander folgende Blöcke benötige (wegen Paging).

Für die virtuellen pages scanne ich einfach die pagetables des aktuellen prozesses nach freien hintereinanderliegenden blöcken, dadurch spare ich mir die bitmap und der code läuft schneller durch dwords als durch bits, da der pagetable ja sowieso vorhanden sein muss, also in jedem fall speicher brauch, ob bitmap oder nicht.

MfG GhostCoder
158
Lowlevel-Coding / Stack
« am: 15. July 2004, 11:47 »
Hiho,

natürlich wird der Wert überschrieben, die CPU ja nicht mehr wissen kann, wo das eigentliche Stackende ist, außerdem läuft der Stack von oben nach unten, also kriegst du, wenn du den sp auf null setzt nen überlauf(also, eigentlich unterlauf :) ).

Push:
sp--
sp=wert

Pop:
sp=wert
sp++

MFG GhostCoder
159
Offtopic / Prüfsumme
« am: 15. July 2004, 11:03 »
Hiho,

so ungefähr funktioniert das...
Bei einer Prüfsumme werden alle alle Bytes der Datei gelesen und mit einem Algorithmus in einer Prüfsumme verschlüsselt.
Der einfachste Algorithmus wäre wohl, einfach alle Bytes zu einem DWORD zu addieren, nur hier ist die wahrscheinlichkeit hoch, das zwei vollkommen unterschiedliche Dateien die gleiche Prüfsumme haben z.b. änderungen in der Datei nicht bemerkt werden, wenn du z.b. ein byte um 3 erhöhst, und von einem anderen 3 abziehst.

MfG GhostCoder
160
Lowlevel-Coding / Systemcalls
« am: 14. July 2004, 13:19 »
Hiho,

sobalt der neue Code fertig ist, kann ich ihn posten, ja.

MfG GhostCoder
Seiten: 1 ... 6 7 [8] 9 10

Einloggen