path: root/ipc.mdwn
diff options
authorGNU Hurd wiki engine <>2007-08-19 13:53:10 +0000
committerGNU Hurd wiki engine <>2007-08-19 13:53:10 +0000
commit12a8e951a2dec4b894fe7738e10b66a4a4d4e3bf (patch)
treea996d4d8a9914f6730f06207af47530e10fed5e7 /ipc.mdwn
parent6f54cb497547e51f35259f362dddeafcf1f4d7fe (diff)
web commit by NealWalfield: Create.
Diffstat (limited to 'ipc.mdwn')
1 files changed, 19 insertions, 0 deletions
diff --git a/ipc.mdwn b/ipc.mdwn
new file mode 100644
index 0000000..8c05276
--- /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
+[[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.