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

Seiten: 1 2 3 [4] 5 6
61
OS-Design / Re: Interprozesskommunikation (mit CDI) aufbauen
« am: 28. October 2009, 18:08 »
Danke an euch, jetzt hab ich schonmal eine Ahnung wo ich anfangen kann/soll, und wie ich es mache  :-)

Also, wenn mein OS  mehr als 50% Marktanteil hat melde ich mich wieder  ;)
62
OS-Design / Re: Interprozesskommunikation (mit CDI) aufbauen
« am: 27. October 2009, 18:22 »
Danke für die schnelle Antwort.

Ich muss also "einfach" darauf achten, das ich die Nachrichten in einen Speicherbereich des Prozesses reinschreibe?

tyndur nutzt das falsche? Ich denke es gäbe kein "falsch" :P

Jetzt weiß ich wenigstens mal wie ich rangehen muss :)
63
OS-Design / Re: Interprozesskommunikation (mit CDI) aufbauen
« am: 27. October 2009, 17:45 »
Hm, ok, mal angenommen ich hab eine Nachrichtenwarteschlange. Wie genau kann denn dann der Kernel dem Prozess Daten geben?
Welches Prinzip nutzt denn tyndur?

Der Link ist schon mal hilfreich. Mir wird aber nicht ganz klar, was genau denn den Task dazu bringt in Ring 3 zu laufen.

btw: Im Wiki (beim Teil 7) wird ein Stückchen C-Code verwendet, dass ich nicht verstehe: "x &= ~FLAG". Was genau macht das denn? Bedeutet das "&" soviel wie "AND" in BASIC und "~" soviel wie "NOT" ?
64
OS-Design / Interprozesskommunikation (mit CDI) aufbauen
« am: 24. October 2009, 21:18 »
Hi,
nach langer Zeit hab ich mich mal wieder um meinen Kernel gekümmert. Dem fehlt jetzt noch ein wichtiger Bestandteil: Interprozesskommunikation. Ist ja wichtig für einen Mikrokernel  :-)

Mein Problem ist, das ich noch keine Ahnung hab wie ich so etwas sinnvoll realisiere. Ich hab mich mal ein wenig umgesehen und bin dabei im Wiki über CDI gestolpert, da es unabhängig vom Betriebssystem ist, dachte ich, das ich das verwende.

Könnt ihr mir erklären, wie ich eine Interprozesskommunikation (speziell mit CDI) aufbaue bzw. wie sie funktioniert?

Und ganz nebenbei: Wie krieg ich das hin das meine Tasks im Usermode laufen?

Grüße, TheThing
65
Offtopic / Re: DAS GEHEIMNIS EURES NICKNAMENS!!!
« am: 03. October 2009, 14:30 »
naja, normalerweise ist mein Nick entweder "darkinsanity" oder "venom". Hier ist es "TheThing", das kommt von dem Song "The thing that should not be" von Metallica.
66
Offtopic / Re: GRUB 2
« am: 03. October 2009, 14:07 »
danke, ich les mir das mal durch :)
67
Offtopic / Re: GRUB 2
« am: 03. October 2009, 13:13 »
momentan nutze ich ja noch GRUB Legacy - aber ich hab mir auch die Neuerungen in GRUB 2 angesehen und will die mal ausprobieren. Bei Kubuntu 9.10 Alpha 6 bootet ja GRUB 1.97~beta3, und das läuft eigentlich ganz gut. Im gegensatz zu GRUB Legacy läuft damit Kubuntu sogar von meinem USB-Stick  :-)

Ich habe schon gelesen, das eine "Vorabversion" des Multiboot2-Standards unterstützt wird, der Wert auf Portabilität legt. Außerdem werden die Partitionen jetzt von 1 statt von 0 gezählt. Informationen zu meinem Problem hab ich aber bisher nicht gefunden...

Trotzdem danke für die Anwort :)
68
Offtopic / GRUB 2
« am: 02. October 2009, 12:40 »
Hi,
hab ne kurze Frage: Wie krieg ich GRUB 2 auf ne floppy, und was muss ich beachten damit ich GRUB 2 anstatt GRUB nutzen kann?

mfg
69
OS-Design / Re: FreeBasic: Software Multitasking
« am: 06. June 2009, 16:17 »
Da ich das mit den ELF-Dateien hingekriegt hab, hab ich auch ein Tutorial geschrieben: http://lowlevel.brainsware.org/wiki/index.php/ELF_Tutorial
Ich werde es vielleicht noch mal überarbeiten, aber ich denke es ist hilfreich für Leute die noch keine Ahnung davon haben.
70
OS-Design / Re: FreeBasic: Software Multitasking
« am: 04. June 2009, 11:53 »
Achso.
Ich hab den Fehler durch Zufall gefunden. Ich hab an der Stelle, an der ich die Adresse der PH-Entries berechnet habe, mit Pointern anstatt mit Zahlen gerechnet, und das geht ganz übel aus. Ein paar "cast"s eingebaut und schon funktionierts.  :mrgreen:
71
OS-Design / Re: FreeBasic: Software Multitasking
« am: 03. June 2009, 12:55 »
Sorry, Link sollte jetzt gehen.

Ich verstehe nicht was du meinst.
Ich denke, ich muss nur die PT_load Segmente in den Speicher laden? Dort sind doch dann die wichtigen Sachen drin?
72
OS-Design / Re: FreeBasic: Software Multitasking
« am: 03. June 2009, 12:29 »
Ok danke.
Also, ich erstelle meine ELF-Datei so:

Zitat
as -o test.o test.asm
ld test.o -melf_i386 -o test.elf

Die test.asm hat folgenden Inhalt:
.intel_syntax noprefix
.global _start
_start:
x:
int 0x30
jmp x

Laut meinem Kernel hat das Programm dann 1 Program-Header-Entry und 5 Section-Header-Entries, aber das PH-Segment ist angeblich kein PT_Load-Segment. Als e_entry hab ich dann 0x8048054.

Ich glaube irgendwie, dass ich noch irgendeinen kleinen dummen Fehler in meinem ELF-Code habe. Mein ELF-Code liegt hier: http://darkinsanity.netne.net/nerdpole/source/ELF.bi
Der Code ist noch nicht ganz fertig, z.B. mappt er im Moment einfach die Segmente in den Speicher, anstatt sie zu kopieren.
Ich hab schon probiert an die "type"s ein "FIELD=1" anzuhängen (was gleichbedeutend mit einem "__attribute__ ((packed))" ist), und ich hab das schon weggelassen, aber es hilft alles nichts.

"objdump -x test.elf" gibt aus:
Zitat
test.elf:     file format elf32-i386
test.elf
architecture: i386, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x08048054

Program Header:
    LOAD off    0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12
         filesz 0x00000058 memsz 0x00000058 flags r-x

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000004  08048054  08048054  00000054  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
SYMBOL TABLE:
08048054 l    d  .text   00000000 .text
08048054 l       .text   00000000 x
08048054 g       .text   00000000 _start
08049058 g       *ABS*   00000000 __bss_start
08049058 g       *ABS*   00000000 _edata
08049058 g       *ABS*   00000000 _end

Anscheinend hat das Program doch ein PT_Load-Segment. Aber wieso behauptet mein Code das Gegenteil?
Mein Code sagt ja auch das vaddr 0 wäre. Das stimmt ja auch nicht. Ich bin echt ratlos...
73
OS-Design / Re: FreeBasic: Software Multitasking
« am: 02. June 2009, 15:23 »
So, ich hätte da noch ein paar Fragen zu ELF-Dateien.
Ich hab ein kleines testprogramm in ASM geschrieben (ruft in einer Endlosschleife int 0x30 auf), assembliert und gelinkt. Rausgekommen ist eine ELF-Datei, die ich nun mit meinem Kernel ausführen möchte.
Daher unternimmt mein Kernel jetzt folgende Schritte:
ELF-Header prüfen
Program-Header-Einträge durchlaufen und alle PT_LOAD-Segmente in den virtuellen Speicher kopieren (der Bereich von p_offset bis p_offset+p_filesz wird kopiert)
Task erstellen, der e_entry als eip hat

Das ganze funktioniert aber noch nicht (eine ganze Weile tut sich einfach nix, irgendwann fliegt dann ein Page-Fault). Also hab ich ein bisschen herumprobiert und herausgefunden, das mein Programm gar keine PT_Load-Segmente hat. Alle anderen Segmente, die in der ELF-Datei existieren, haben als virtuelle Zieladresse 0. Wie soll jetzt aber der ausführbare Code im Speicher landen, wenn gar keine Segmente zum kopieren da sind?

Und für was ist eigentlich der Sektionsheader gut? Brauch ich den?

Btw Ich glaub ich schreib am besten gleich ein ganzes Buch über OS-dev. Ich werd nämlich auch zum Thema ELF-Dateien ein Tutorial schreiben, und wenn ich über jedes Thema ein Tutorial schreib, werden das ganz schön viele. Aber vorerst sind es nur ein paar, und da benutze ich erstmal das Lowlevel-Wiki um meine Tutorials anderen zugänglich zu machen.

An dieser Stelle muss ich jetzt einfach mal ein großes Lob an alle Leute von Lowlevel aussprechen. Ich bin erst seit August 2008 am OS-coden, und ohne eure Hilfe hätte ich schon längst aufgegeben. :) Weiter so.
74
OS-Design / Re: FreeBasic: Software Multitasking
« am: 01. June 2009, 13:02 »
So, ich hab mal meinen Kernel und das Tutorial überarbeitet. Jetzt brauch ich keinen Stack-Wechsel mehr :)

btw könnte mal jemand über meinen floppy-treiber-source drüberlesen und mir sagen ob da alles so in Ordnung ist? Hier der Link zum source: http://darkinsanity.netne.net/nerdpole/source/floppy.bas
75
OS-Design / Re: FreeBasic: Software Multitasking
« am: 27. May 2009, 12:11 »
hm, ja könnte man machen :)
76
OS-Design / Re: FreeBasic: Software Multitasking
« am: 25. May 2009, 21:38 »
danke für die Links :)

in dem Tutorial, das ich mir über Multitasking durchgelesen habe, ist das irgendwie mit "*--stack = 0;" gemacht worden. Unter FreeBASIC geht das leider (so weit ich weiß) noch nicht. Ich könnte die Werte in den Speicher schreiben und dann mit "stackpointer -= 1" den stackpointer niedriger machen, aber das wäre sehr lästig :)

Aber ich glaub ich setz mal einen Feature-Request dafür ab, wenns das noch nicht gibt.
77
OS-Design / Re: FreeBasic: Software Multitasking
« am: 25. May 2009, 12:34 »
ok, ähm, kann mir jemand erklären, welche Schritte ich tun muss damit ich eine ELF-Datei ausführen kann? Ich meine ich hätte sowas hier im Forum schon mal gesehen, aber ich finds nicht mehr...

Und wie oft pro Sekunde sollte ich denn den Task wechseln?

/edit: Hab meine Tutorials mal ins Wiki eingetragen:
http://lowlevel.brainsware.org/wiki/index.php/Software_Multitasking_Tutorial
http://lowlevel.brainsware.org/wiki/index.php/Paging_Tutorial

Bitte testlesen :)
78
Offtopic / Re: Hosen runter! Zeigt eure OS ;)
« am: 24. May 2009, 21:09 »
Ok, von meinem OS gibts mittlerweile eine neue Version: 0.3.0a
Kann jetzt Multitasking und Paging *stolz sei*


/edit: Bootmanager? Also Bootloader? Mach ihn am besten Multiboot-kompatibel :)
79
OS-Design / Re: FreeBasic: Software Multitasking
« am: 19. May 2009, 12:49 »
danke :)

Ich habe noch ein paar Fragen, weil ich ELF-Dateien nutzen möchte:
Brauch ich Paging, um ELF-Dateien zu nutzen?
Auf was muss ich beim Multitasking achten, wenn ich Paging benutze?

Bisher funktioniert das nämlich nicht :)
Ist mein ELF-header denn richtig?

Der header liegt hier: http://rapidshare.com/files/234717136/ELF.bi.html
80
OS-Design / Re: FreeBasic: Software Multitasking
« am: 17. May 2009, 22:39 »
vielen Dank, jetzt funktioniert alles!  :-) :-)
/edit: versprochenes Tutorial ist in Arbeit
Seiten: 1 2 3 [4] 5 6

Einloggen