Commit 6cc85d3c authored by Ticki's avatar Ticki
Browse files

Merge branch 'master' of github.com:redox-os/book

parents 16f788b9 dad2448a
......@@ -4,4 +4,15 @@ Disadvantages of microkernels
Performance
-----------
> TODO
Any modern operating system needs basic security mechanisms such as virtualization and segmentation of memory. Furthermore any process (including the kernel) has its own stack and variables stored in registers. On [context switch](https://en.wikipedia.org/wiki/Context_switch), that is each time a syscall is invoked or any other inter-process communication (IPC) is done, some tasks have to be done, including:
* saving caller registers, especially the program counter (caller: process invoking syscall or IPC)
* reprogramming the [MMU](https://en.wikipedia.org/wiki/Memory_management_unit)'s page table (aka [TLB](https://en.wikipedia.org/wiki/Translation_lookaside_buffer))
* putting CPU in another mode (kernel mode, user mode)
* restoring callee registers (callee: process invoked by syscall or IPC)
These operations take some time and might be happening more than once. On microkernel systems this time adds up since compared to a monolithic kernel functionality is split off in several processes, often requiring several context switches to do the same task.
With a good approach and some time spend optimizing for performance this should no longer be an issue, but Redox is not there yet.
See also: [Wikipedia on performance of minikernels](https://en.wikipedia.org/wiki/Kernel_%28operating_system%29#Performance)
......@@ -18,7 +18,7 @@ Monolithic kernels provide a lot more abstractions than microkernels.
![An illustration](https://upload.wikimedia.org/wikipedia/commons/6/67/OS-structure.svg)
The above illustration (from WikiMedia, by Wooptoo) shows how they differ.
The above illustration ([from Wikimedia](https://commons.wikimedia.org/wiki/File:OS-structure.svg), by Wooptoo, License: Public domain) shows how they differ.
> TODO
......
......@@ -2,3 +2,5 @@ Asking questions, giving feedback or anything goes contact
==========================================================
If you have questions, feedback or anything else for us, you should join #redox at the Mozilla IRC network (`irc.mozilla.org`). Originally, we used FreeNode, but switched to Mozilla IRC, due to the Rust channel also being there.
Alternatively you can use [our Forum](https://discourse.redox-os.org/).
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment