Hallo,
wir haben in der letzten Zeit ja reichlich über die Implementierung von IPC diskutiert aber eine Frage ist da für mich immer noch nicht ganz klar:
Wie findet ein Programm den richtigen Port/Message-Target/sonstwas um darüber die gewünschten Dienste in Anspruch zu nehmen?
In einem Micro-Kernel-OS sind ja VFS, TCP, UDP oder Console getrennte Services da müssen die Programme ja immer den richtigen finden.
In meinem OS möchte ich das so lösen das diese Infos bei der Prozesserstellung immer mitgegeben werden. Die libc kümmert sich darum das diese Infos dem nativen CreateProcess mitgegeben werden und die libc holt diese Infos auch im neuen Prozess aus den Parametern raus bevor main aufgerufen wird. Auf diese Art kann ich wahrscheinlich sogar Ressourcen-Vererbung usw. komplett innerhalb der libc abhandeln ohne das die Services (oder gar der Kernel) davon etwas mitbekommen.
Es wäre aber auch möglich das man eine Liste pflegt (möglicherweise direkt im Kernel) in der alle öffentlich erreichbaren Services drin stehen und die Programme sich anhand eines Kriteriums, z.B. ein Name, den gewünschten Service geben lassen.
Wie löst ihr dieses Problem?
Grüße
Erik
wir haben in der letzten Zeit ja reichlich über die Implementierung von IPC diskutiert aber eine Frage ist da für mich immer noch nicht ganz klar:
Wie findet ein Programm den richtigen Port/Message-Target/sonstwas um darüber die gewünschten Dienste in Anspruch zu nehmen?
In einem Micro-Kernel-OS sind ja VFS, TCP, UDP oder Console getrennte Services da müssen die Programme ja immer den richtigen finden.
In meinem OS möchte ich das so lösen das diese Infos bei der Prozesserstellung immer mitgegeben werden. Die libc kümmert sich darum das diese Infos dem nativen CreateProcess mitgegeben werden und die libc holt diese Infos auch im neuen Prozess aus den Parametern raus bevor main aufgerufen wird. Auf diese Art kann ich wahrscheinlich sogar Ressourcen-Vererbung usw. komplett innerhalb der libc abhandeln ohne das die Services (oder gar der Kernel) davon etwas mitbekommen.
Es wäre aber auch möglich das man eine Liste pflegt (möglicherweise direkt im Kernel) in der alle öffentlich erreichbaren Services drin stehen und die Programme sich anhand eines Kriteriums, z.B. ein Name, den gewünschten Service geben lassen.
Wie löst ihr dieses Problem?
Grüße
Erik

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert


