domingo, marzo 01, 2009

Linux monolitickernels microkernels Linus vs Tanenbaum

http://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate

Sorpresa, Linus no es tan terrible

Tannenbaum inició las críticas poco constructivas

Linus respondío duramente, pero Linus trató de parar la bronca con una respuesta pública y otra privada




The debate

Graphic of a monolithic kernel running kernel space entirely in supervisor mode
Dr. Andrew S. Tanenbaum (ast in comp.os.minix)
Linus Torvalds

While the debate initially started out as relatively moderate, with both parties involved making only basal statements about kernel design, it would get progressively more detailed and sophisticated with every round of posts. Besides just kernel design, the debate branched into several other topics, such as which microprocessor architecture would win out over others in the future. Besides Tanenbaum and Torvalds, several other people joined the debate, including Peter MacDonald, an early Linux kernel developer and creator of one of the first distributions, Softlanding Linux System, David S. Miller, one of the core developers of the Linux kernel, and Theodore Ts'o, the first North American Linux kernel developer.

[edit] “Linux is obsolete”

The first occurrence of this debate was recorded on January 29, 1992, when Tanenbaum first posted his criticism on the Linux kernel to comp.os.minix, noting how the monolithic design was detrimental to its abilities, in a post titled Linux is obsolete.[1] While he initially did not go into great technical detail to explain why he felt that the microkernel design was better, he did suggest that it was mostly related to portability, arguing that the Linux kernel was too closely tied to the x86 line of processors to be of any use in the future, as this architecture would be superseded by then. To put things into perspective, he mentioned how writing a monolithic kernel in 1991 is "a giant step back into the 1970s".

Since the criticism was posted in a public newsgroup, Torvalds was able to respond to it directly. He did so a day later, arguing that MINIX has inherent design flaws (naming the lack of multithreading as a specific example), while acknowledging that he finds the microkernel kernel design to be superior “from a theoretical and aesthetical” point of view.[4] He also claimed that since he was developing the Linux kernel in his spare time and giving it away for free (Tanenbaum's MINIX was not free at that time), Tanenbaum should not object to his efforts. Furthermore, he mentioned how he developed Linux specifically for the Intel 80386 due to the project being partly just so he could learn more about the architecture; while he argued that this made the kernel itself less portable than MINIX, it was an acceptable design principle, as it made the application programming interface much simpler and more portable. For this reason, he stated, “linux is more portable than minix. [sic]”

Microkernel architecture relies on user-space server programs

Following Linus' reply, Tanenbaum argued that the limitations of MINIX relate to him being a professor, stating the requirement for the system to be able to run on the rather limited hardware of the average student, which he noted was an Intel 8088-based computer, sometimes even without a hard drive.[11] Linux was, at that time, specifically built for the Intel 80386, a significantly more powerful (and expensive) processor. Tanenbaum also specifically states “[...] as of about 1 year ago, there were two versions [of MINIX], one for the PC (360K diskettes) and one for the 286/386 (1.2M). The PC version was outselling the 286/386 version by 2 to 1.” He noted that even though Linux was free, it wouldn't be a viable choice for his students, as they would not be able to afford the expensive hardware required to run it, and that MINIX could be used on “a regular 4.77 MHz PC with no hard disk.” To this, Kevin Brown, another user of the Usenet group, replied that Tanenbaum should not complain about Linux's ties to the 386 architecture, as it was the result of a conscious choice rather than lack of knowledge about operating system design, stating “[...] an explicit design goal of Linux was to take advantage of the special features of the 386 architecture. So what exactly is your point? Different design goals get you different designs.”[12] He also stated that designing a system specifically for cheap hardware would cause it to have portability problems in the future. Despite the fact that MINIX did not fully support the newer hardware that Linux did support, thus making Linux a better choice for those who actually owned that hardware, Tanenbaum argued that since the x86 architecture would be outdone by other architecture designs in the future, he did not need to address the issue, noting “Of course 5 years from now that will be different, but 5 years from now everyone will be running free GNU on their 200 MIPS, 64M SPARCstation-5.” He stated that the Linux kernel would eventually fall out of taste as hardware would progress, due to it being so closely tied to the 386 architecture.[11] (See section “Erroneous predictions” for a detailed account of this claim.)

Torvalds attempted to end the discussion at that point, stating that he felt he should not have overreacted to Tanenbaum's initial statements, and that he was composing a personal e-mail to him to apologize.[13] However, he would continue the debate at a later time.

[edit] Aftermath

Despite this debate, Torvalds and Tanenbaum appear to be on good speaking terms; Torvalds wants it understood that he holds no animosity towards Tanenbaum, and Tanenbaum underlines that disagreements about ideas or technical issues should not be interpreted as personal feuds.[14]

[edit] Erroneous predictions

When the issue and full initial debate was published in the O'Reilly Media book Open Sources: Voices from the Open Source Revolution in 1999, it stated that the debate exemplifies “the way the world was thinking about OS design at the time”.[14]

The 386 processor was then the most widespread chip “by several times”, according to participant Kevin Brown, with the 486 used in high-end computers, and the 286 almost obsolete, and the World Wide Web was not yet widely used. One of Tanenbaum's arguments against Linux was that it was too closely tied to the x86 line of processors, which he claimed was “not the way to go”.[1] However, as of 2009, x86 remains the overwhelmingly dominant CPU architecture on desktop computers. Linux has since been ported to many other processor architectures, including x86-64, ARM, IA-64, 680x0, MIPS, POWER/PowerPC, and SPARC.

Another recurring topic in the debate discusses alternatives to Linux and MINIX, such as GNU and 4.4BSD. Tanenbaum suggested the former in his first post, stating that unlike Linux, it was a “modern” system.[1] In his second post, he mentioned that “[...] 5 years from now everyone will be running free GNU on their 200 MIPS, 64M SPARCstation-5”.[11] Several debaters disagreed that GNU was a suitable alternative. Kevin Brown called it vaporware, and stated that Linux would likely benefit from the x86 architecture which would continue to be common and become more accessible to a general audience. Theodore Ts'o, an early Linux contributor, said that while a microkernel approach would have benefits, “[...] Linux is here, and GNU isn't — and people have been working on Hurd for a lot longer than Linus has been working on Linux”.[15] Torvalds, aware of GNU's efforts to create a kernel, stated “If the GNU kernel had been ready last spring, I'd not have bothered to even start my project: the fact is that it wasn't and still isn't.”[16]

4.4BSD-Lite would not be available until two years later due to the USL v. BSDi lawsuit, filed by AT&T's subsidiary Unix System Laboratories against Berkeley Software Design, which pertained to the intellectual property related to UNIX. The lawsuit slowed development of the free-software descendants of BSD for nearly two years while their legal status was in question. As Linux did not have such legal ambiguity, systems based on it gained greater support. A settlement between USL v. BSDi was reached in January 1994, and 4.4BSD was released in June. (While the final release was in 1995, several free versions based on this version have been maintained since, including FreeBSD, OpenBSD and NetBSD.)

[edit] The Samizdat incident

On 23 March 2004, Kenneth Brown, president of the Alexis de Tocqueville Institution, interviewed Tanenbaum. This was a prelude to the pending publication of a book by Brown titled Samizdat: And Other Issues Regarding the 'Source' of Open Source Code. The book claims that Linux was initially illegally copied from MINIX. Tanenbaum published a strong rebuttal, defending Torvalds,[17] and stated at that time:

I would like to close by clearing up a few misconceptions and also correcting a couple of errors. First, I REALLY am not angry with Linus. HONEST. He's not angry with me either. I am not some kind of "sore loser" who feels he has been eclipsed by Linus. MINIX was only a kind of fun hobby for me. I am a professor. I teach and do research and write books and go to conferences and do things professors do. I like my job and my students and my university. [...] I wrote MINIX because I wanted my students to have hands-on experience playing with an operating system. After AT&T forbade teaching from John Lions' book, I decided to write a UNIX-like system for my students to play with. [...] I was not trying to replace GNU/HURD or Berkeley UNIX. Heaven knows, I have said this enough times. I just wanted to show my students and other students how you could write a UNIX-like system using modern technology. A lot of other people wanted a free production UNIX with lots of bells and whistles and wanted to convert MINIX into that. I was dragged along in the maelstrom for a while, but when Linux came along, I was actually relieved that I could go back to professoring. [...] Linus seems to be doing excellent work and I wish him much success in the future. While writing MINIX was fun, I don't really regard it as the most important thing I have ever done. It was more of a distraction than anything else. The most important thing I have done is produce a number of incredibly good students, especially Ph.D. students. See my home page for the list. They have done great things. I am as proud as a mother hen. To the extent that Linus can be counted as my student, I'm proud of him, too. Professors like it when their students go on to greater glory.[18]

No hay comentarios: