Commit fcef5f9e authored by Jeremy Soller's avatar Jeremy Soller
Browse files

Merge pull request #34 from stratact/master

Go into more detail and reason about micro kernels
parents d1040e3d 66bef407
......@@ -23,3 +23,16 @@ The kernel
Redox's kernel is a microkernel. The architecture is largely inspired by MINIX.
In contrast to Linux or BSD, Redox has only 16,000 lines of kernel code, a number that is often decreasing. Most services are provided in userspace
Having vastly smaller amounts of code in the kernel makes it easier to find and fix bugs/security issues more efficiently. Andrew Tanenbaum (author of MINIX) said that for every 1,000 lines of (good written) code, there is a bug. This means that for a monolithic kernel which could average over 15,000,000 lines of code, there could be at least 15,000 bugs. A micro kernel which usually averages 15,000 lines of code would mean that at least 15 bugs exist.
The main idea is to have components and drivers that would be inside a monolithic kernel exist in user space and follow the Principle of Least Authority (POLA). This is where every individual component is:
* Completely isolated in memory and as separate user processes.
* The failure of one component does not crash the other components.
* Allows foreign and untrusted code to not expose the entire system.
* Bugs and malware cannot spread to other components.
* Has restricted communication which each other.
* Doesn't have Admin/Super-User privileges.
* Bugs are moved to user space which reduces their power
All of this increases the reliability of the system significantly. This would be useful for mission-critical applications and for users that want minimal issues with their computer systems.
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