I am considering writing a kernel halfway between a microkernel and a monolithic design.
I am planning to do the memory management in kernel, but everything regarding ports, done in userspace.
The kernel only keeps a small API for files, folders, UIDs, GIDs, memory-management, and processes. BTW My idea is to only let root or maybe a special user run a program that requests a port/IRQ or physical memory.
Is this a good design?
Any problems with this design?
- NickJohnson
- Member
- Posts: 1249
- Joined: Tue Mar 24, 2009 8:11 pm
- Location: Sunnyvale, California
Re: Any problems with this design?
I do something similar, letting superuser processes access ports/IRQs/physical memory. I haven't had any problems with that design so far.
-
- Member
- Posts: 595
- Joined: Mon Jul 05, 2010 4:15 pm
Re: Any problems with this design?
No it's nothing wrong with your design and this type of kernel is sometimes called a hybrid kernel. I'm doing something similar. However, I let user programs access IO memory, and hook up on IRQs. The kernel just handle the resource allocation so there is no conflict.sundhaug92 wrote:I am considering writing a kernel halfway between a microkernel and a monolithic design.
I am planning to do the memory management in kernel, but everything regarding ports, done in userspace.
The kernel only keeps a small API for files, folders, UIDs, GIDs, memory-management, and processes. BTW My idea is to only let root or maybe a special user run a program that requests a port/IRQ or physical memory.
Is this a good design?