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

Seiten: 1 ... 13 14 [15]
281
OS-Design / Re: HAL
« am: 26. May 2008, 16:34 »
Mmmhhhh....
Es sieht so aus, als ob ich die start.asm für GRUB auch mit in die HAL nehmen muss, da der Kernel an die virtuelle Adresse 0xC0000000 geladen wird.
Denn soweit ich informiert bin, ist das Paging beim 386er anders als z.B. bei einem PowerPC-Prozessor.
Oder irre ich mich da?  :?
 
Nur ist dann so eigentlich fast der ganze Kernel im HAL außer folgenden Punkten (nicht vollständig):
  • Modulinterface
(Mehr fällt mir Momentan nicht ein)
 
Gruß Christian
282
OS-Design / Re: HAL
« am: 15. May 2008, 15:47 »
Mein Ziel ist es ein Microkernel.
Wo ja alles als Treiber geladen wird.

@Termite
ich meine nicht Intel basierte Macs, also die mit einem PowerPC Prozessor.

@Korona
Da ich ja versuche einen Microkernel zu entwickeln, werde ich in den Kernel nur Grundlegendes einbauen und so Sachen wie ACPI oder z.B. Disketten-/Festplattenzugriff in Treiber auslagern.

Ich habe nun die Liste um den Paging Code wie folgt erweitert:
HAL - Hardware Abstraction Layer
* Portzugriffe
* typedef Variablen und Definitionen
# Größe einer Page
# Größe word, dword, qword
* Global Descriptor Table (GDT)
* Interrupt Description Table (IDT)
* Interrupt Service Routines (ISRs)
* Interrupt Requests (IRQs)
* Programmable Interval Timer (PIT) /*wurde allerdings vorerst aus dem Kernel entfernt*/
* Paging Code

Multitasking denke ich gehört da nicht rein, da ich Softwarebasiertes Multitasking einsetzen möchte.
Was die Interprozesskommunikation (IPC) angeht, kann ich noch nichts dazu sagen, da ich mich damit bis jetzt noch nicht beschäftigt habe.
 
Gruß Christian
283
OS-Design / HAL
« am: 14. May 2008, 18:39 »
Hi
Ich bin gerade am restrukturieren meines Quellcodes.
Da drängt sich mir nun die Frage auf, was wenn der Kernel auch auf einem Mac laufen soll (ist nicht geplant, kann aber durchaus sein).

Daher habe ich mir das Tutorial über die HAL durchgelesen und bin zu folgendem Ergebnis gekommen:
HAL - Hardware Abstraction Layer
* Portzugriffe
* typedef Variablen und Definitionen
# Größe einer Page
# Größe word, dword, qword, ...
* Global Descriptor Table (GDT)
* Interrupt Description Table (IDT)
* Interrupt Service Routines (ISRs)
* Interrupt Requests (IRQs)
* Programmable Interval Timer (PIT) /*wurde allerdings vorerst aus dem Kernel entfernt*/

GDT, IDT, ISRs, IRQs und die PIT habe ich deswegen bei der HAL dazugeschrieben, weil die sich ja je nach CPU unterscheiden (vllt. habe ich auch was falsch verstanden)
Ist das so komplett? Muss noch was dazu, oder ist da was überflüssig?

Gruß Christian
284
Das Wiki / Re: Sinkende Aktivität
« am: 01. May 2008, 17:14 »
Wie sieht es eigentlich mit den News aus?
Wer schreibt die, weil der letzte Eintrag vom 7. Januar ist  :-o
Hat einer die Berechtigungen, dort News Einträge zu verfassen?
 
Gruß Christian
 
PS: Wenn das mit jedem Wiki-User geht, dann könnte ich das ja auch machen  :roll:
285
Lowlevel-Coding / Cottontail Memory Management
« am: 29. April 2008, 13:55 »
Moin
Ich habe heute folgendes Tutorial von osdever.net durchgelesen: http://www.osdever.net/tutorials/cottontailmm.php.

Nun habe ich das so verstanden, dass es eine superbitmap mit 1024 Einträgen gibt.
Des Weiteren gibt es dann pro superbitmap eintrag eine weitere bitmap mit 128 Byte.

Also sollten die Arrays dann so aussehen:
unsigned long superbitmap[1024];
unsigned char bitmap[128 * 1024];

Ist das so richtig?

Gruß
Christian
 
*EDIT 1*
Die Arrays sehen jetzt so aus:
unsigned long superbitmap[1024];
unsigned char bitmap[128];
Dies aus dem Grund, weil 128 Einträge der Bitmap 1024 Pages verwalten.
Nun muss ich jedes mal beim suchen den Inhalt von superbitmap an der stelle i Bitweise nach bitmap kopieren.
Allerdings stehe ich da grad auf dem Schlauch, und weiß nicht, wie ich das machen soll. Könnt ihr mir das erklären?
286
Lowlevel-Coding / Re: Virtual Mode 8086
« am: 22. April 2008, 14:55 »
Hi
Das würde dann heißen, ich mappe meinen Kernel an die Virtuelle Adresse 0xC0100000 o.ä. und mappe dann den entsprechenden Speicher
vom vm86-Task an irgendeine Stelle unter dem ersten MB (virtuell).
 
Die Frage kommt deswegen, weil ich grad eine virtuelle Adresse für den Heap suche, die im Moment 0xC0000000 ist.
Wenn das so ist, wie ich das oben geschrieben habe, würde ich das halt auf 0xD0000000 ändern, usw.
 
Gruß Christian
 
*EDIT*
Mein Kernel wird nun nach 0xC0000000 gemappt. Der Kernel Heap kommt dann nach 0xD0000000.
Ich kann dann einfach Speicher unterhalb 1MB reservieren und muss keine Rücksicht nehmen, wegen den VM8086 Threads
287
Lowlevel-Coding / Re: Virtual Mode 8086
« am: 22. April 2008, 09:58 »
Guten Morgen,
meine eigentliche Frage war nur, ob ich, falls ich solche vm8086 Tasks jemals einbauen werde,
ob ich da erst meinen Kernel nach oben verschoben werden, bzw. eine Überprüfung auf eine
Kollision einbauen muss, weil der Stack ja nach unten wächst.
(Oder verwechsle ich da mal wieder was  :roll:)
 
Gruß
Christian
288
Lowlevel-Coding / Virtual Mode 8086
« am: 21. April 2008, 13:28 »
Hi
Ich habe eben mal aus interesse den Artikel über den vm86 aus der Wiki gelesen.
Dort steht, dass dieser das erste Megabyte benutzt.
Nun habe ich den Kernel von "Bran's Kernel Development" und da wird der Kernel an die Stelle 0x00100000 geladen (das erste MB).
Kann ich die Adresse aus dem Linkerscript einfach ändern, also z.B.: von 0x00100000 nach 0x00200000?
Oder wird da nur der Speicher von 0x00000000 bis 0x00100000 benutzt? (Mir ist klar, dass das dann 16Bit Adressen sind)
 
Gruß
Christian
289
tyndur / Re: Wir suchen...
« am: 26. March 2008, 07:33 »
Ich bin noch am "verstehen" des Codes, da das ganze doch recht komplex ist und ich nicht unbedingt so viel Zeit habe.
Die VI portierung danach ist wie ich das bis jetzt überblickt habe dann recht einfach, da nur die Datei mit der Abfrage eines Tastendrucks geändert werden muss.
Den Rest macht ja dann ncurses.
Aus meiner Sicht kannst du ncurses aus der Liste raus nehmen oder du schreibst meinen Name dahinter.
290
tyndur / Re: Wir suchen...
« am: 25. March 2008, 08:22 »
Also
da ich ja versuche den VI zu portieren, ist ncurses für das Syntax Higlighting zwingend notwendig.
Deshalb arbeite ich gerade an einer Portierung von ncurses, habe aber wegen meiner Ausbildung nicht sehr viel Zeit und komme deshalb auch nicht so schnell voran, wie ich es gerne hätte.  :oops:
 
Gruß
ChristianF
291
tyndur / Re: Wir suchen...
« am: 21. February 2008, 10:32 »
Ich kann es versuchen, kann aber für nichts garantieren.
Sollte ich das nicht hinbekommen, werde ich den Versuch starten, was eigenes zu entwickeln.
Bis dann: stay tuned  :-D

Gruß
Christian
292
tyndur / Re: Wir suchen...
« am: 20. February 2008, 15:12 »
Ich arbeite mich grad in den vim source ein, um zu schauen, was ich übernehmen kann oder ob ich ihn portieren kann.
293
tyndur / Re: Wir suchen...
« am: 13. February 2008, 12:38 »
Ich würde mich für den Texteditor melden.
Gibt es da ein bestimmtes Interface?
294
Das Wiki / Re: Ausgabe 10
« am: 31. January 2008, 19:57 »
Das hatte ich auch demnächst vor.
Da im Moment das ganze allerdings noch recht verwirrend ist, wird das wahrscheinlich noch ein bissel dauern.
 
Des Weiteren denke ich mir, dass Tutorials Code-Beispiele enthalten sollten, allerdings in Form von Pseudo Code.  :-D
 
MfG:
ChristianF
295
Das Wiki / Re: Ausgabe 10
« am: 31. January 2008, 07:52 »
So
Ich weiss, dass das jetzt schon ne weile zurückliegt, will aber trotzdem meinen Senf dazu geben.  :-D
Also ich finde, die Idee mit dem Magazin nicht schlecht. Da auf der Wiki aber auch die Tutorials reingestellt werden,
kann man das ja so lassen. Ich würde mich auch bereit erklären, einige Tutorials zu schreiben.
Nur kommt es darauf an, welche Themen in das Magazin sollen, denn danach würde ich dann das Tut/die Tuts schreiben.
 :mrgreen:
Momentan beschäftige ich mich mit dem Buddy Allocation Algorythmus, da mein Memory Manager recht lahm war. Danach kommt Preemptives Softwarebasiertes Multitasking dran. Hier habe ich schon eine Routine geschrieben (zumindest für Ring0 und Ring3 Tasks, Virtual Mode will net so ganz  :roll:).
 
MfG:
Christian
Seiten: 1 ... 13 14 [15]

Einloggen