Con Kolivas and Linux Desktop
Posted on 25 July 2007 by admin
In a recent good bye interview, one of the many Linux kernel developers, Con Kolivas opened up a whole new dimension to understanding how the development of the kernel is done and where the priorities lie. Con, a self-taught kernel enthusiast, was one of the most vocal proponents of improving the Linux core in order to make it more responsive on the Desktop side of things. His ideas on CPU scheduler improvements, which included a pluggable CPU scheduler framework allowing different schedulers to be used at boot time, was an innovative approach to moving Linux closer to Desktop domination reality. However, the life of a kernel hacker is not that easy. In the Linux world, the enterprise server presence is huge and it leads to more time being given to improving different aspects of server design and performance, while sacrificing other uses for the kernel.
Con’s interview with APC magazine showcased the inability of Linux leaders to realize the importance of Desktop Linux. According to Con, this is the main reason for the complete failure of Linux as a Desktop operating system and the dominance of Windows in that technological space. Secondary causes include the indifference of kernel developers toward the regular Linux users, who are being scared away from reporting bugs and performance issues on their desktops by being branded as inexperienced users, idiots and nuisances. In the process which advertises its openness and people’s approaches, such exclusions of valuable user feedback screams of a dictatorship hidden behind the Open Source Flag. On the hand, the fixes for enterprise server bugs and performance improvements are included in the main kernel tree on per incident basis. It is as if our beloved dictator, Linus, is being directed by the invisible hand of Linux server vendors and commercial Linux-based server distributions. An invisible hand guides the Free and Open democracy ruled by our beloved and respected dictator Linus Torvalds.
Will Linux ever be able to compete with Windows on the Desktop? In the future, this might be a possibility, if and only if the kernel developers will agree to implement the following changes into the core.
One way would be to branch out the main kernel tree into two, a dedicated server kernel and dedicated desktop kernel, both sharing common core pieces useable in both environments. This solution would be an ideal choice if Linus would want to maintain two kernel trees and some sort of a common code base repository. The problems with this solution are too much work for Linus to handle himself, unless he delegates the desktop kernel maintenance to someone else (highly unlikely), and the burden of maintaining two separate trees that essentially would developed at the same time and share a lot of common features and services.
The second solution, the one advocated by Con Kolivas and many others, is to have pluggable frameworks for each of the core components of the kernel. As is in the case with the I/O scheduler framework, the CPU scheduler framework would have different implementations, based on the usage scenarios, whether it is for the Desktop, Server, or Mobile devices. In the same spirit, the developers of other core components would be able to provide multiple implementations for their code, suited specifically to different applications of Linux. Distribution vendors would be able to choose appropriate implementations of each component designed to make their specific distribution work correctly. Companies would develop their own implementations for their specific applications. The only downside to this approach is that Linus would lose his position as the dictator of Linux as a result of his loss of control over the kernel implementation.
