Minimalistic Object Oriented Linux(MOOL) project aims at redesigning the existing linux kernel with minimal set of core OO components.
Excessive common coupling prevails in existing kernel. Studies have shown that common coupling is increasing in successive versions of linux. This will make maintainabiltiy of Linux difficult in coming years.
As a starting step we have tried to reduce the number of global variables of the kernel. Some global variables are used only by two or three kernel modules. These are passed as function arguments. The peformance of the modified kernel is measured with the standard performance analysis tools. The modified kernel performs almost same as original.
We have provided Object Oriented wrappers for core Linux kernel in C++. These wrappers support the development of kernel modules in an OO fashion. The wrappers provide many hooks which make the extension of wrapper library easier.
Sample C++ modules have been developed and loaded into kernel. An Ethernet driver (ne2k_pci.c) has also been successfully reengineered to C++ using the wrappers. We observed a 2% performance overhead with the C++ version of Ethernet driver.
The modified kernel along with a sample OO module, reengineered network driver and makefiles is available for download in the Downloads section.
MOOL kernel has been successfully adopted in Bharat Operating System Solutions (BOSS). The feature of writing C++
device drivers, provided by MOOL has been used to support different Indian languages in BOSS. More details on BOSS-MOOL: A Joint Initiative of DOS Lab IIT Madras and CDAC Chennai is available here.