Page 2 of 2
Re: Dual Kernel System [How, Cons, Pros]
Posted: Tue Oct 06, 2009 6:36 am
by Occam
Both Helios and Barrelfish are multikernel architectures.
The motivation for Helios is heterogeneous environments:
http://research.microsoft.com/pubs/81154/helios.pdf
and the motivation for Barrelfish is scalability:
http://www.barrelfish.org/
Occ
Re: Dual Kernel System [How, Cons, Pros]
Posted: Fri Oct 09, 2009 2:14 am
by mybura
The first part of this post highlights some flaws in the 2 kernel aproach you have proposed. The second part gives some ideas on how you could achieve your goal. So if you don't like constructive criticism, read the second part first
Part One
Have a look at the definition of a kernel:
http://wiki.osdev.org/Kernels
The suggested kernel/gui split does not make the gui component a kernel in itself classifying the OS to be running multiple kernels. The gui would simply be running in its own process, still dependent on "a kernel" to get access to resources such io ports and memory without interfering with other drivers/components.
A multiple kernel OS would follow a design matching something that has two major components managing hardware resources. At minimum it would need a very smart bootloader or mini kernel that would provide the following services or split resources physically for each kernel to manage (thus being a kernel in itself):
- Memory Management
- IO port management
- Multi CPU management
- Device partitioning and management
As you can see, you are looking at three kernels that are needed at minimum if a multi kernel OS is to be implemented. At this stage the proposal of a "GUI kernel" very much follows the design of XServer, which is simply a client server model subsystem hosted on a single kernel.
Part Two
If you were to implement a true "GUI kernel", you will need a third kernel to allow both the kernels to co-exist. Maybe the easiest way to accomplish this is to have the third kernel make use of the VM facility of modern CPUs and create two logical views of the hardware for use by your two kernels. Another "simple at first" way to implement it would be to split all resources in 2, i.e. GUI kernel manages upper part of memory and IO vs lower part for other kernel (GUI kernel detects and manages screen cards vs. other devices are detected and managed by the other OS).
Lots of interesting ideas automatically arise from the two possibilities mentioned. Maybe we can get some input on how the logical split VM would be implemented and how resources would be virtualized for the one kernel vs the other kernel accessing actual resources.
Re: Dual Kernel System [How, Cons, Pros]
Posted: Fri Oct 09, 2009 2:40 am
by Love4Boobies
I'm not really sure if that's what the OP meant. I don't really think the OP meant that the kernel should handle separate functions (except maybe for a few things) - those would probably be called different kernel components rather than different kernels. What I think he mant was having 2 kernels which communicate which each other and multiplex resources properly. You can even have something more general like N kernels.
If you're looking for kernels that are really different from each other you might want to go one step back and use exokernels - a clever and much safer design where you can achieve the same functionality using libraries.
Re: Dual Kernel System [How, Cons, Pros]
Posted: Sat Oct 24, 2009 8:40 am
by cni46
I think the most difficult problem multi-kernel operating system need to face is that there is only one memory space in a computer.The key to operating system is memory management,because there is only one address space when a cpu may have many cores.
Re: Dual Kernel System [How, Cons, Pros]
Posted: Sat Oct 24, 2009 8:43 am
by Love4Boobies
You are only right if you are talking about SMP architectures, not NUMA. As for SMP, like Brendan suggested, there are several ways to handle this, the most simple is having fixed pages allocated at startup. Once some sort of safe IPC mechanism is established between the two kernels even sharing memory is fairly trivial.
Re: Dual Kernel System [How, Cons, Pros]
Posted: Tue Dec 08, 2009 9:14 pm
by AndrewAPrice
Unless they were truly independent (so they did not require each other to function properly to perform their own tests) then I fail to see how you can call it two separate duel kernels when in-fact it's just a single kernel running separate code on both CPUs?
If you're talking about multithreading the kernel for performance, then you can do just that and let your scheduler distribute them amongst CPUs as necessary.
Re: Dual Kernel System [How, Cons, Pros]
Posted: Wed Dec 09, 2009 10:17 am
by Owen
Holy necro, batman!
(OK, not as much as some. But still...)
Re: Dual Kernel System [How, Cons, Pros]
Posted: Thu Dec 10, 2009 5:59 am
by AndrewAPrice
Owen wrote:Holy necro, batman!
(OK, not as much as some. But still...)
Sorry! It was still listed on the first page on the forum, does that still count?
[If there were a ^_^ smiley, it would be inserted here.]
Re: Dual Kernel System [How, Cons, Pros]
Posted: Thu Dec 10, 2009 5:18 pm
by Love4Boobies
I might want to reconsider for NUMA domains.