In Minimalistic Object Oriented Linux(MOOL) project, the existing Linux kernel has been redesigned to provide OO abstractions of the various subsystems of the kernel (like InterruptHandler, KernelMemoryManager). MOOL achieved this by providing Object Oriented wrappers of the core kernel in C++. It also enabled to develop the kernel modules in OO fashion.

More information about MOOL can be found here.

The modified kernel along with a sample OO module, reengineered network driver and makefiles can be downloaded from

We propose to redesign the MOOL Kernel in Service Oriented Architecture with different subsystems and the modules redesigned as services. The motive behind introducing Service Oriented Architecture in Linux is to loosen the coupling between the various kernel entities. This will also facilitate clear understanding of the kernel and improve the ease of its maintenance.

The modified kernel can offer object oriented wrappers and modules such as device drivers as services. The kernel can then request and choose among different services for usage. By this design the new modules can reuse/extend the existing functionality by making use of module services. Also updating a module will not lead to recompilation/reboot of the entire kernel. The existing modules can discover the services offered by other modules in the system dynamically and bind to an appropriate service.

This project is in collaboration with NRCFOSS, which is an initiative of the Department of Information Technology, Ministry of Communications & Information Technology, Government of India.