Hiho,
ich würde mal gern wissen in welcher Weise ihr Systemcalls benutzt?
Also, wie z.B. Linux einfach über int 0x80 mit subcodes, oder anders?
Ich frage, weil ich grad meinen Kernel neucode für folgendes System:
Es gibt nur 4 "richtige" (also auf dem x86 über int's) Systemcalls, die da wären:
int Open(int iPid,int iBufferSize,void **ppvBuffer);
int SendMessage(int iProcess,int iMessage);
int GetMessage(struct MSG *psMsg,int iWait);
int Close(int iProcess);
Mit Open wird eine Verbindung zwischen 2 Prozessen aufgebaut, d.h. Speicher für einen Puffer geholt und in den virtuellen Addressraum der beiden Prozesse gemappt, damit während des Schickens kein langwieriges mappen mehr stattfinden muss. In den Buffer können dann halb beide Prozesse schreiben und per Send/Get Message Nachrrichten schicken und empfangen. Mit Close wird dann der Puffer freigegeben.
Der Vorteil hier ist, dass z.B. ein "Window Server" im Netz läuft und die Clienten darauf zugreifen. Auch bleibt der Kernel dadurch extrem klein, weil alle Treiber eigene Prozesse sind. Aber auch z.B. das vfs kann ein eigener Prozess sein. Dadurch kann jeder Teil des Betriebssystems ohne Probleme im Betrieb neugestartet werden usw. Auch kann es "theoretisch" über timeouts unmöglich sein, den pc abzuschießen.
Was sagt ihr dazu?
MfG GhostCoder
ich würde mal gern wissen in welcher Weise ihr Systemcalls benutzt?
Also, wie z.B. Linux einfach über int 0x80 mit subcodes, oder anders?
Ich frage, weil ich grad meinen Kernel neucode für folgendes System:
Es gibt nur 4 "richtige" (also auf dem x86 über int's) Systemcalls, die da wären:
int Open(int iPid,int iBufferSize,void **ppvBuffer);
int SendMessage(int iProcess,int iMessage);
int GetMessage(struct MSG *psMsg,int iWait);
int Close(int iProcess);
Mit Open wird eine Verbindung zwischen 2 Prozessen aufgebaut, d.h. Speicher für einen Puffer geholt und in den virtuellen Addressraum der beiden Prozesse gemappt, damit während des Schickens kein langwieriges mappen mehr stattfinden muss. In den Buffer können dann halb beide Prozesse schreiben und per Send/Get Message Nachrrichten schicken und empfangen. Mit Close wird dann der Puffer freigegeben.
Der Vorteil hier ist, dass z.B. ein "Window Server" im Netz läuft und die Clienten darauf zugreifen. Auch bleibt der Kernel dadurch extrem klein, weil alle Treiber eigene Prozesse sind. Aber auch z.B. das vfs kann ein eigener Prozess sein. Dadurch kann jeder Teil des Betriebssystems ohne Probleme im Betrieb neugestartet werden usw. Auch kann es "theoretisch" über timeouts unmöglich sein, den pc abzuschießen.
Was sagt ihr dazu?
MfG GhostCoder

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert

, eine Nachricht an eine Prozess schickt.