IPC
Posted: Thu Aug 28, 2008 6:16 am
ive just got basic IPC working between the current process the kernel and the servers e.g. file server in
my microkernel.
this is done by having a specific ID assigned to the kernel and server processes, so the
user process can identify where to send the msg.
I use the registers to pass the msg.
however im not sure on how to send messages between two user programs or between the driver process and the user program
as these i carnt hard code specfic ID's for.
is it best to still use the method above with out specific IDs, which means a msg could be sent to any process
even non-existing process,
or should i exclude user processes and drivers from using this method alltogether.
and only use pipes or another method to comunicate between user programs.
if i should used another method what would it be as currently L4 IPC keeps poping up
when im searching google and i am not sure how to implement that so dont want to use it
as it looks far to complicated for me.
the only way i think i could get the driver processes working is by getting them to register themselfs in a table
with all their calls and a specfic ID based on names rather than numbers. so once a user program puts a request to the
driver manager it looks up the name and then sends back the ID allocated to it back to the user process so the user
process and driver can then send msgs directly between each other.
if i have got this all wrong please say cos ill just go back to working on my other kernel until i can
get a better grasp of microkernels.
my microkernel.
this is done by having a specific ID assigned to the kernel and server processes, so the
user process can identify where to send the msg.
I use the registers to pass the msg.
however im not sure on how to send messages between two user programs or between the driver process and the user program
as these i carnt hard code specfic ID's for.
is it best to still use the method above with out specific IDs, which means a msg could be sent to any process
even non-existing process,
or should i exclude user processes and drivers from using this method alltogether.
and only use pipes or another method to comunicate between user programs.
if i should used another method what would it be as currently L4 IPC keeps poping up
when im searching google and i am not sure how to implement that so dont want to use it
as it looks far to complicated for me.
the only way i think i could get the driver processes working is by getting them to register themselfs in a table
with all their calls and a specfic ID based on names rather than numbers. so once a user program puts a request to the
driver manager it looks up the name and then sends back the ID allocated to it back to the user process so the user
process and driver can then send msgs directly between each other.
if i have got this all wrong please say cos ill just go back to working on my other kernel until i can
get a better grasp of microkernels.