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 2 [3] 4 5 ... 10
41
OS-Design / Netzwerkprotokolle und alles was dazu gehört
« am: 30. May 2005, 15:30 »
Hi,

also so schwer sind die Protokolle doch nicht, das du dafür extra nen Buch brauchst, find ich jedenfalls...

Was mir extrem geholfen hat, war die Socket Programmierung mit AF_PACKET, also alles direkt "aufm Draht".
Dabei läßste Ehtereal laufen und versuchst ARP oder IP Pakete zu verschicken, das hilft schon nen ganzes Stück weiter, und richtig kompliziert wird die Programmierung erst auf der Transportschicht, also TCP und UDP.

Gruß, GhostCoder
42
Offtopic / Suche Helfer!
« am: 30. May 2005, 15:23 »
Hiho,

hab auch das "3D-Spieleprogrammierung mit ..." Buch.
Ich fand's OK, waren aber nen bisschen zu viele Basics drin und Sprünge...

Btw, natürlich habe ich schon mehr Sachen aus OS-Programmierung gemacht,
wo bliebe sonst der Spaß :)

Gruß GhostCoder
43
Offtopic / Suche Helfer!
« am: 29. May 2005, 13:12 »
Also,

ich kann dir Visual C++ 6.0 empfehlen, ist zwar ein wenig alt, aber ich kam damit immer gut klar. Das gibt auch bei vielen Büchern kostenlos dabei (von Stefan Zerbst z.b.).

Und was die Probleme angehst, kannste die ja in dem Thread hier schreiben...

Gruß GhostCoder
44
OS-Design / Zum Thema Mikrokernel
« am: 29. May 2005, 13:10 »
Hiho,

ups, überlesen :)

Also komplexer wird es wohl kaum, du musst ja nur wissen, wie groß der Code ist, dann .data+.bss ist die Größe vom Data Segment und den Stack ja variabel.
Nachdem du den ELF Header eingelesen hast, wäre das Segment Setup drei Zeilen "komplex" :)

Near und Far sind ja egal, dazu sind ja die Default Prefixes da... Eigentlich musst du überhaupt nichts ändern.

Ob ich jetzt

mov eax,[esp-4]

oder

mov eax,[ss:esp-4]

schreibe ist ja egal. Gut, EBP könnte Probleme bereiten, hab aber keine Lust nachzugucken jetzt :)

Gruß GhostCoder
45
OS-Design / Zum Thema Mikrokernel
« am: 29. May 2005, 11:43 »
Hi,

die einfachste Methode ist doch Code,Daten und Stack zu trennen!
Also 3 Deskriptoren pro App in unterschiedlichen Bereichen. So hat man
(fast) keine Möglichkeit mehr Code einzuschleusen.

*BSD macht das doch so, soweit ich weiß.

Und da soll nochmal einer sagen Segmentierung sei scheiße :)

Gruß GhostCoder
46
Offtopic / Ein wenig Win Source beim VS .Net
« am: 29. May 2005, 11:34 »
Hi,

Zitat

Was aber auch interessant ist, ist dass beim Programmende eine Datei namens crt0 aufgerufen wird.


Ja, in der Datei ist der Start und -Endcode deines Programms enthalten. Heap erstellen, Stack(denk ich mal), Commandline und Flags holen, und main bzw. WinMain aufrufen, und danach natürlich aufräumen.

Gruß GhostCoder
47
Offtopic / Suche Helfer!
« am: 29. May 2005, 11:21 »
Hi,

also ich hab ewig mit C unter Windows gearbeitet, bin jetzt aber auch 100% Linux Anhänger :)
Muss es den mit DevCpp sein? Meinst du wegen dem Einbinden der Libs oder was?

Was willst du den genau wissen?

Gruß GhostCoder
48
OS-Design / Segmentierung
« am: 24. May 2005, 14:06 »
Hiho,

ich will mein OS jetzt mehr an den x86 binden als vorher, und daher soll jetzt auch die Segmentierung ausgereitzt werden.

Nur frage ich mich, ob das wirklich einen erheblichen Geschwindigkeitsvorteil bringt, nur ein Pagedirectory(4GB) zu nutzen, den sich dann alle Prozesse teilen?

Das einzige was ich mir dann ja spare ist der Wechsel des PageDirectories beim Contextswitch.
Und der wird ja auch beim TSS geändert, ob ich will oder nicht...

Außerdem gibt es ja auch SYSENTER/SYSCALL Opcodes, die den Geschwindigkeitsvorteil wieder (fast) aufheben...

Also die Frage: Lohnt sich die ganze Abhängikeit vom x86er Modell oder läuft nen neuer Kernel mit 4GB VM pro Prozess mittlerweile genauso schnell?

Gruß, GhostCoder
49
Lowlevel-Coding / C++ Pointer auf Funktionen
« am: 15. May 2005, 13:38 »
Hi,

Ich finde den Code auch irgendwie sinnlos :)
C++ ist doch dafür ausgelegt, dynamische Memberfunktionen zu haben, da ist so ein Kontrukt doch viel zu umständlich.

Zitat

Es macht wohl Sinn das zur Laufzeit auszutauschen. Denn ich will die Funktionen ja nicht beim compilen schon drin haben, sondern später dynamisch dazulinken. Ich will ja nicht die Klassen austauschen. Denn die sind ja bis auf die letztlichen Funktionen gleich.

Das meinte n3Ro ja auch (denke ich jedenfalls :) ).

Also so:
1. Basisklasse mit den dynamischen Funktionen als rein virtuell definiert.
2. Jedes Modul hat eine eigene abgeleitete Klasse, die die virtuellen Funktionen der Basisklasse ersetzt.
3. Jedes Module hat eine Funktion GetInstance(), die Zeiger auf die abgeleitete Klasse zurückgibt, aber als Basisklasse referenziert wird.

So arbeitest du im Kernel immer nur mit Instanzen der Basisklasse, "intern" werden aber die eigenen Funktionen der abgeleiteten Klassen benutzt. Einfacher und praktischer geht es wohl kaum...

Gruß GhostCoder
50
Offtopic / Kleine Programmierspäße
« am: 13. May 2005, 14:38 »
Hi,

und auf nem 8-Bit System ist nen integer 16-Bit groß!
Also, mich nerven die C Variablentypen manchmal schon...

Gruß, GhostCoder
51
tyndur / KERNEL-Team
« am: 11. May 2005, 18:18 »
Siehst du Roshl? :)

Naja, war ja auch nur ein Vorschlag.

MfG, GhostCoder
52
Offtopic / Bin ich einfach ein Freak oder ist das normal?
« am: 10. May 2005, 09:32 »
Hiho,

nen bissle Offtopic:
Ich kann RPM's auch nicht leiden, ich sag nur Slackware mit seinem absolut(!!) genialen "installpkg" und "slapt-get". Das ist einfach, sauber und schnell.

Zum eigentlichen Thema:
Mach doch ein selbstextrahierendes RAR Archiv, mit der Option, das nach dem Entpacken (direkt ins Temp Verzeichnis, ohne Aufforderungs Dialog) automatisch die .exe gestartet wird.
Ist so, als ob du ihnen direkt deine .exe gibst...

Gruß, GhostCoder
53
Lowlevel-Coding / java in osdev
« am: 10. May 2005, 09:28 »
Hi,

also langsamer dürfte Java nicht sein, wenn die VM den Bytecode vorher in den passenden Assembler Code der Tielplattform umwandelt.


@Legend:
Paging brauchst du ja trotzdem noch, damit jeder "Java" Prozess in nem eigenen Speicherbereicht liegt. Und für Swapping auch...

Gruß, GhostCoder
54
Lowlevel-Coding / java in osdev
« am: 09. May 2005, 18:36 »
Gott bin ich langsam, und das obwohl ich als erster zu schreiben begonnen habe :)
55
Lowlevel-Coding / java in osdev
« am: 09. May 2005, 18:35 »
Hiho,

ja, man kann Java einbringen. Problem ist nur das du erst eine VM programmieren musst,
damit du Java Code ausführen kannst. Und das sollte kein einfaches Unterfangen werden. :)

Ein Vorteil wäre, das der komplette Code (außer dem Kernel und der VM natürlich) komplett unabhängig wären, d.h. auch kein "lästiges" neu-komplieren auf anderen Plattformen (Distributionen).

Habe mir auch mal den Einsatz von Java (oder einer VM in einer anderen Sprache, ist ja egal ...) überlegt, aber das ist ziemlich schwer zu programmieren.

MfG, GhostCoder
56
tyndur / KERNEL-Team
« am: 09. May 2005, 12:22 »
Hi,

wenn es klappt, würde ich gerne auch was im Kernelteam machen.
Am besten besten Paging und Memory Management. Da hab ich viel
Erfahrung und Code...

Paging scheinen ja sonst viele zu hassen :)

Gruß, GhostCoder
57
Lowlevel-Coding / Bios
« am: 09. May 2005, 12:15 »
Hi,

scheint wohl PMode zu sein, wegen eip.

Also, wenn du im PMode bist, wird das wohl kaum so funktionieren.
Um BIOS Interrupts aufzurufen kannst du aber den V86 Modus benutzen.
Wie der funktioniert, keine Ahnung... :)

Gruß, GhostCoder
58
OS-Design / Paging
« am: 02. May 2005, 15:52 »
Hej,

besser als hier kann man es garnicht erklären.

Habe auch mal versucht ein Tutorial darüber zu schreiben, aber ist mir net so gelungen, daher kann ich das o.g. Tut nur empfehlen...

Stehe bei Fragen aber gerne zur Verfügung :)

MfG GhostCoder
59
Offtopic / Linux Kernel unter Windows (cygwin) kompilieren
« am: 27. April 2005, 10:30 »
Hi,

als Basic könntest du die Zip Version von Slackware benutzen http://www.slackware.org/zipslack/.

Da brauchste nur ein Linux System, von dem aus den Stick beschreiben kannst, Lilo aufspielen, die USB Module in den Kernel kompilieren und nen paar extra libs draufpacken. Ne andere Möglichkeit seh ich das nicht.

Oder in manchen BIOS(es) gibt es doch "Support legacy SUB devices", da ist doch ne Emulation von USB Storage als HDD oder nicht? Dann könntest du direkt ne Linux Version draufspielen und booten. Ob das klappt/stimmt weiß ich aber nicht.

Gruß GhostCoder
60
Lowlevel-Coding / Festplatte löschen
« am: 27. April 2005, 10:24 »
Hiho,

du musst die LBA HDD Funktionen des BIOS benutzen. 0x47 oder so ist die Funktionsnummer, musste mal unter Ralf Browns Interrupt List gucken.
Da kannste 2^64 Sektoren lesen/schreiben.

Gruß GhostCoder
Seiten: 1 2 [3] 4 5 ... 10

Einloggen