Sunday 17 July 2016

A Song of Mono and Micro: The Game of Kernels

"In the Game of Kernels, you either win or your computer's battery back up is not that great."
Forgive the above quotation (and the title too if possible). They are the product of my unfathomable love for fairy tale fiction. 
[I must admit at this point that I had to google the meaning of both tale and tail to be sure of what to use in the above sentence.]
Linux. A kernel so widely and variably used that you rarely see a computer person (for lack of a better word) claiming unawareness or lack of respect and even love for it. From the perspective of a computer simpleton, Linux is a certification for establishing one's grasp of computers i.e. if you see some one using Linux, more often than not you'd take that person's prowess at computers for a given.
Linux was created by Linus Torvalds, a gem of a computer scientist and one of the less famous but more influential person in Human history. 
Linus, while being student at some university in Finland, read the book, Operating Systems: Design and Implementation by Andrew S. Tanenbaum, a professor (at some university in USA I think. I can't be bothered to check. Facts are facts, no point in repeating them). In this book, the professor explained how operating systems functioned, and more importantly, how to implement them. The following may sound a little weird but the man had the source code of an entire functioning OS kernel in his book, printed on papers, with ink. Needless to say that he wrote the source code himself. The kernel was named MINIX and was intended to provide a better understanding of the whole book to the readers. And as fate would have it, this benevolent act by the Tanenbaum would inspire Linus to write a kernel of his own. So Linus did his bit and created Linux and the rest as they say is history.
MINIX served only as an inspiration and/ or an enhancement in Linus' understanding of the whole Kernel writing business. He did not blatantly copied the work by Tanenbaum and even acknowledged the professor's role in his creation. All seemed well and auspicious for the two before Linux transformed from a hobby to a full community of followers and developers; while Minix remained a popular source of reference in the academic circles.
Tanenbaum with seemingly innocuous intentions and sincere sentiment posted on some online discussion forum (I'll provide the links below) about how he felt about the design of Linux. He claimed with little reasoning that since Linux uses a monolithic design and it is too dependent on the x86 architecture, it is in essence even more obsolete than Minix and other kernels at the time. Regardless of the professor's intentions behind this claim, this certainly looked like sour words coming out of some one underappreciated for his contributions. 
The claim was then met with a response from people working closely with Linux about the efficacy of their design rendering the professor's post to be a fallacy. This debate started out modestly but soon became a flame war (it's a real thing, look it up). Linus too joined in and the debate saw back and forth action between the professor and the Linux community. The central point of the debate was establishing the supremacy of either the monolithic design (used in Linux) or the microkernel design (upon which Minix was based). Both sides provided their perspectives with long and detailed explanation backing their designs. There was no clear winner as is the case with most debates. But unlike most debates where the participants leave enraged, Linus and Tanenbaum seemed to share mutual respect and admiration towards one another throughout. 
The debate was even published in  an O'Reilly Media book Open Sources: Voices from the Open Source Revolution in 1999, deeming this to be an epitome of "the way the world was thinking about OS design at the time".
It promises to be an interesting read. Gods be good and grant me the gift of time to read this one.

No comments:

Post a Comment