the Base API can be regarded as a "bottom layer specification" (its implementation is typically less than 10KLOC) of the whole system but there is no fixed base-internal interface. This gives each platform maximum flexibility about how the API is implemented. Given the vast differences of the mechanisms used, this flexibility is needed. E.g., by comparing the ways processes are created and address spaces are managed on Linux and L4, you will see that the respective base code has almost nothing in common. On Linux, 'rm_session()->attach()' is implemented locally by the calling process using mmap. In contrast, on L4, the same API function is an RPC to core, which, in turn, manipulates the address space on demand (using L4's map/unmap) when a page fault occurs.
Yes, i get the notion, actully at the moment i'm trying to understand base-linux. I must admit the source became much more clear after your explained the actual idea of why 'no solid bottom specification'. Another fact, i read a lot of code from various projects, genode code the most readable with well structured cpp and build setup.
topic "Microkernelizing Linux" described on our "Challenges" Wiki page? http://genode.org/community/wiki/Challenges
Yes infact.
Let me suggest two pointers that we stumbled upon when we brain-stormed this idea. First, we were pointed to Linux' "resource containers", which promise to allow the assignment of fine-grained resource constraints to individual processes. This looks like an interesting mechanism to support Genode's resource-trading concept. Secondly, we were made aware of the Capsicum project, which brings capability-based security to Linux.
Linux containers should be LXC project from IBM.?