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

Seiten: [1]
1
OS-Design / Kooperatives Multitasking
« am: 13. September 2013, 16:55 »
Hey!

Ich plane gerade, mir einen kleinen Kernel zu schreiben. Da meine Planung eigentlich nur einen Task vorsieht, dachte ich daran, kooperatives Multitasking einzubauen. Ich weiß, dass es nicht immer die beste Wahl ist, aber für den Anfang reicht mir das voll und ganz aus.

Mein Vorgehen wäre nun folgendes:
struct task
    void *
    void *stack
    uint32_t stackpointer
task_wechseln
    task-stackpointer sichern
    nächsten task auswählen
    task-stackpointer wiederherstellen
Die Funktion darf halt keine lokalen variablen (außer static) enthalten, da ich so keine sonstigen änderungen am stackpointer vornehmen.

Das sollet doch eigentlich keine Probleme machen oder habe ich irgendetwas grundlegendes vergessen?

Gruß
Felix
2
Offtopic / Hotswap OS
« am: 01. June 2013, 22:29 »
Hey,
ich hab letztens mal einen interessanten Artikel über ein Rootkit gefunden, was angeblich undetectable ist.
Name dieses Kit ist Blue-Pill (Sourcecode und Präsentation hier)

Dabei kam mir die Idee, das ganze nicht als Schadsoftware, sondern als eine Art Miniatur-OS zu machen.
Mein Gedanke war: Nimm einen Thin Hypervisor  und schalte ihn unter dein Betriebssystem.
Theoretisch müsste man doch jetzt das OS(Windows, Linux) "einfach" anhalten können und in ein anderes wechseln, oder?
Wenn mein Gedanke stimmt, könnte man quasi Windows und Linux gleichzeitig nutzen und so auf das beste aus beiden zugreifen können.

Gruß
Felix
3
Lowlevel-Coding / Assembler Frage
« am: 01. June 2013, 15:10 »
Hey,

ich bastel grade fleißig an meinem Kernel. Hab mittlerweile Interrupts am laufen, meinen eigenen "Bluescreen" (Bei exception dumped er einfach die CPU-Status auf den Bildschirm) und eine einfachste Tastatureingabe (erkenne, ob taste gedrückt wurde oder wieder losgelassen).
Ich würde jetzt gerne meine Tastatureingabe verbessern, bevor ich mich an Speichermanagement und Multi-Tasking hänge.

Dabei stellen sich mir zwei Fragen:
Nummer 1:
Gibt es im GCC-Assembler (ich weiß er heißt net so, hab aber grade kein Lnx zur Verfügung) eine Direktive, dass ich eine Datei einbinden kann? Also quasi wie .db oder .space, bloß dass er mir da den Inhalt einer Datei hinpackt.

Nummer 2:
Ich habe mir ein Key-Mapping angelegt, welches jede Taste einem Virtual Key zuordnet. Was ist besser?
Texteingabe (unter Windows wäre das WM_CHAR) via Virtual Keys übersetzen, oder aber
Texteingabe im Interrupt Handler durch die Scancodes direkt übersetzen?

Gruß
Felix
Seiten: [1]

Einloggen