Hio,
ich habe einen Microkernel, der die Prozessverwaltung und das Memorymanagement übernimmt. Jetzt möchte ich Kernel-Module laden und entladen können die dann in alle Prozesse gemappt werden und vom Kernel über einfache Calls aufgerufen werden sollen. Ich möchte die wichtigsten Treiber nicht als eigene Prozesse laufen lassen, da das die Performance erheblich beeinträchtigen würde.
Mein Problem liegt gedoch darin, wie ich die Kernel-Module laden und ausführen soll:
Normalerweise werden die Programme ja so gelinkt, das sie im Speicher an einer bestimmten Stelle stehen (Text Segment beginnt bei 0x12345 usw. ). Bei den Kernelmodulen weiß ich jedoch erst zur Laufzeit, wohin sie geladen werden. Wie ist es also möglich, sie zu laden? Ich müsste sie ja zur Laufzeit dynamisch linken, weiß jemand, wie das geht? Oder gibt es noch andere Möglichkeiten, die nicht allzu stark die Performance beeinflussen?
mfg,
SSJ7Gohan