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

Seiten: [1]
1
Lowlevel-Coding / IRQ 11 auf Hardware
« am: 23. July 2013, 12:14 »
Hallo Zusammen

Neulich hat mir ein altes Problem von mir wieder einmal viel Ärger und Kopfschmerzen bereitet.
Mein Betriebssystem, das fehlerfrei unter Qemu läuft, funktioniert auf meinem Laptop nicht richtig.

Der Laptop wirft andauernd den IRQ 11. Mit andauernd meine ich, dass sobald ich die Interrupts aktiviere(sti), ich keinen weitern Code ausser Interrupthandler ausführen kann. Dazu foldender Ausschnitt:

    init_idt();
    while(1)
    {
        debug_kprintf( (str)"Hallo");
    }
Direkt am Ende von init_idt setze ich das Interruptflag.
Ab dort wird auf meinem Laptop kein Code aus meiner Main funktion mehr ausgeführt. Der Keyboardhandler(und alle meine anderen Handler) funktionieren jedoch einwandfrei.
Unter Qemu werde ich mit Hallos zugespamt was eigentlich auch zu erwarten war.

Nun probierte ich einen dummen Workaround (nämlich den IRQ11 zu maskieren). Nur kommt der IRQ trozdem weiterhin.

Ich bin mir ziemlich sicher, dass mein Code stimmt, ich habe ihn mehrere Male mit dem Wiki überprüft und auch gegoogelt wegen dem IRQ 11.

Auf einem anderen Computer habe ich mein OS noch nicht getestet(aus Faulheit) und momentan kann ich ihn nicht auf einem anderen Computer testen, weil ich in den Ferien bin und nur meinen Laptop dabei habe.

Ich hoffe ihr könnt mir mit diesem Problem helfen
2
OS-Design / Wo soll der Kernel hin im Ram
« am: 07. July 2013, 12:43 »
Hallo Zusammen

Ich schreibe gerade an meinem eigenen OS.
Ich habe schon viele Probleme gelöst, nur bei einem komme ich nicht weiter:

Wo soll ich den Kernel und alle seine Datenstrukturen im Ram platzieren?
Bisher habe ich den Kernel einfach an der Stelle gelassen, wo Grub ihn mir standartmässig hinlädt, bei 0x100000.
Nun suche ich einen besseren Ort für ihn.
Das wichtigste ist, dass

Er nicht an einem Ort ist, wo ein Gerät seine Register eingeblendet hat. Das heisst alle Orte an denen Geräte irgendwas in den Ram einblenden, kommen nicht in Frage(ausser die Adresse lässt sich ändern)

Ich möchte den Kernel, sowie alle seine Datenstrukturen in zusammenhängenden Pages haben, so dass ich sie einfach mappen kann. Am besten sie sind in den selben 4MB(solange mein Kernel und seine Datenstrukturen noch klein genug sind sind, später in den selben 8MB usw) so dass ich ganze Pagedirectories mappen kann.

Der Kernel soll physikalisch und virtuell am selben Ort sein, denn das macht mir die Sache viel einfacher.

Gewisse Programme/Bibliotheken möchten vllt dort sein wo mein Kernel ist. Mein OS sollte irgenwann(In sehr ferner Zukunft) auch Windows und Linux Programme ausführen können. Diese haben vermutlich Lieblingsadressen/Reservierte Adressen.

Könnt ihr mir sagen wo ich den Kernel unter den oben genannten Kriterien eher ansiedeln soll und wo auf keinen Fall?
Wo sind eure Kernel?

Lg Timon

3
Softwareentwicklung / Welche Compiler
« am: 10. December 2011, 09:02 »
Hallo Zusammen
Ich arbeite auf einem Windows System und möchte wissen welche Compiler /Linker/Assembler
ihr mir empfehlen würdet.
Ich kann C und Assembler programmieren und möchte mit diesen beiden Sprachen ein kleines OS schreiben.
Ich habe es bereits einmal versucht und gab das Projekt auf wegen Compiler Errors .

Danke für eure Hilfe
Seiten: [1]

Einloggen