From 12a8e951a2dec4b894fe7738e10b66a4a4d4e3bf Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 13:53:10 +0000 Subject: web commit by NealWalfield: Create. --- ipc.mdwn | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 ipc.mdwn (limited to 'ipc.mdwn') 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. -- cgit v1.2.3