diff options
-rw-r--r-- | ipc.mdwn | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/ipc.mdwn b/ipc.mdwn new file mode 100644 index 00000000..8c05276c --- /dev/null +++ b/ipc.mdwn @@ -0,0 +1,19 @@ +IPC stands for interprocess communication. + +On Unix, interprocess communication can be achieved using pipes. +This is inefficient for large amounts of data as the data must be +copied. This is generally not a problem as most services are +provided by the Unix kernel and Unix is not designed to be +[[extensible]]. + +[[Microkernel]] systems, on the other hand, are generally composed +of many components. As components are separated by their respective +address space boundaries, unlike the kernel, they cannot arbitrarily +examine and modify the caller's state. The advantage is that if the +protocol is carefully designed, the callee cannot cause the caller +any [[destructive interference]] thereby removing the need for the +caller to [[trust]] the callee thus reducing the former's [[tcb]]. +When done systematically, this can increase the system's [[robustness]]. +To this end, microkernels provide richer IPC semantics that include +the ability to transfer [[capabilities]] and to use virtual memory +mechanisms to copy data. |