Hallo,
Wenn du dieses Interface als entscheidend ansiehst, gibt es nur einen Service pro Prozess.
Darf ich daraus schlussfolgern das bei tyndur die Funktionsnummern global eindeutig sind? Das würde es zumindest ermöglichen das hinter einer PID verschiedene Services angeboten werden.
open/read/write/close sind solche Funktionen, ja. Wie oben gesagt interessiert das den Kernel auch gar nicht, sondern ist auch tatsächlich Teil der Nachricht, aber der Empfänger interpretiert die ersten paar Bytes als Funktionsnummer.
Aha, so wollte ich das auch erst machen hab mich dann aber doch dazu entschlossen die "Funktionsnummer" (und auch einen "Returncode") extra zu übergeben (schließlich hab ich für sowas mehr als genug Register). Der Kernel interessiert sich aber auch bei mir nicht dafür um was für einen Service oder um was für eine Funktion es konkret geht.
Darüber würdest du wohl auch das erreichen, wofür du unterschiedliche Targets hernimmst.
Nein, ich wollte schon mehrere Funktionen pro Service (Message-Target) anbieten. In meiner Betrachtung ist z.B. der VFS (mit open/read/....) ein Service der über ein Message-Target eine ganze Reihe an Funktionen anbietet, ebenso wie TCP oder viele andere Services. Es soll aber auch möglich sein das eine Applikation mehrere Services anbietet, aus Effizienzgründen könnte man z.B. TCP und UDP mit in den IP-Prozess integrieren so das dieser eine Prozess mehrere (unabhängige) Dienste parallel anbietet. Die Clients sollen gar nicht merken ob die Services, die sie in Anspruch nehmen, alle aus einem Prozess kommen oder jeder Service aus einem anderen Prozess.
Was die Identifizierung der Services angeht, ich denke ich werde beim "weitersagen" der Message-Target-IDs bleiben.
Grüße
Erik