diff options
author | GNU Hurd wiki engine <web-hurd@gnu.org> | 2007-08-19 13:53:10 +0000 |
---|---|---|
committer | GNU Hurd wiki engine <web-hurd@gnu.org> | 2007-08-19 13:53:10 +0000 |
commit | 12a8e951a2dec4b894fe7738e10b66a4a4d4e3bf (patch) | |
tree | a996d4d8a9914f6730f06207af47530e10fed5e7 /ipc.mdwn | |
parent | 6f54cb497547e51f35259f362dddeafcf1f4d7fe (diff) | |
download | web-12a8e951a2dec4b894fe7738e10b66a4a4d4e3bf.tar.gz web-12a8e951a2dec4b894fe7738e10b66a4a4d4e3bf.tar.bz2 web-12a8e951a2dec4b894fe7738e10b66a4a4d4e3bf.zip |
web commit by NealWalfield: Create.
Diffstat (limited to 'ipc.mdwn')
-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. |