Now i am quite familar with Linux kernel and it's architecture is based on monolithic(See wikipedia for more information) kernel architecture. Though it has some good facility for modular programming.
The question which i want to figure out is, most of the device driver has been implemented inside the linux kernel though the biggest device driver (graphics driver ) is in user space. I couls see size of the driver code in linux kernel is 112 MB whereas the Whole kernel itself has 269MB. So nearly more than 50% code in kernel is driver code!!!!.And most of the developers want to make driver in user space and effort is user space device driver.The majority of bugs linux kernel are in device drivers. if you can move out these driver form kernel space to user space i think we can minimise the bugs. I think it would be applicable for Networking also. But their would be some issue like performance and latency. Still i love to see device driver in user space. Why should i take care about kernel when i am making one driver for device? . Let kernel to do that. Thecommunication between driver and kernel should be designed very carefully so that time required for communication would be minimized over a period of time.That's all..That's why i fall love in MINIX. It has fare architecture to do that.I would like to invest some time on that architure and also would like if someone can come with idea like a "conceptual Architecture of MINIX kernel"...Well this post is going to be big. So i decided to stop here, journey with MINIX kernel and hope to post another article in "User space device driver". Those who are realy interested in MINIX kernel please contact me.. And more ever there are very easy chances to be a main developer!!!!or you may say kernel haker!!! in MINIX world.