Assalamualaikum.

Bagi para pengguna Linux, nama Linus Torvalds bukanlah nama yang asing, kerana inilah tubuh yang bertanggungjawab kepada lahirnya Linux. Lelaki Finland yang kini menetap di Amarika Syarikat digelar dengan pelbagai nama jolokan, bermula dari “Benevolent Dictator of Free World”, “Father of Linux”, “Linux Godfather”, “King of Geeks”, “King of Free Software Movement” dan lain-lain lagi.

Secara peribadi saya mengakui meminati semangat dan minat beliau. Beliau merupakan salah seorang penggodam kegemaran bukan sahaja dari segi teknikal, tetapi juga semangat dan fokus yang sangat mendalam dalam apa jua yang beliau lakukan, disamping mempunyai karakter yang kelakar dan keperibadian yang menarik. Beliau juga mempunyai kelulusan di Universiti dengan pelbagai anugerah.

Beliau membuktikan dengan akal, ilmu, pelajaran mengubah dunia. Tiada trik murahan, tiada gimik. Beliau memenangi Millenium Technology Prize pada tahun 2012. Bagi dunia teknologi, anugerah ini setaraf dengan Nobel Prize. Ini sekaligus menafikan kejayaan pesaing-pesaing beliau yang dropped out yang dijadikan alasan murahan oleh manusia-manusia yang malas untuk belajar tapi mahukan kejayaan mudah. Menarik.

Saya adalah salah seorang pengguna Linux, yang bekerja menggunakan Linux, menggunakan Linux pada aktiviti harian. Berikut adalah beberapa kisah unik menarik tentang manusia yang bernama Linus Tovalds, si pengasas Linux:

EMAIL YANG MENJADI SEJARAH LAHIRNYA LINUX

Linus mengirimkan  satu email yang menjadi penanda lahirnya Linux. Isinya sebagaimana berikut:

Hello everybody out there using Minix –

I’m doing a (free) operating system (just a hobby, won’t be big and professional like GNU) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in Minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them 🙂 

Linus ([email protected]

PS. Yes – it’s free of any Minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have :-(. 

—Linus Torvalds, 25 Ogos 1991

Berdasarkan tulisan yang saya telah tebalkan, kita dapat gambaran beliau pada masa tersebut merendahkan diri beliau untuk dapatkan ilmu iaitu balas dari orang lain. Beliau kata, itu sekadar hobi. Tidaklah sehebat GNU (yang dikembangkan oleh Richard Stallman, pembangun Free Software Foundation).

Beliau juga berkata Linux tidak dapat menyokong hardisk selain AT (pada masa tersebut), ternyata sekarang Linux dapat menyokong pelbagai jenis hardisk dan struktur sistem, bukan hanya Intel

DIKTATOR KEBENARAN

Linus digelar “Benevolent Dictator” kerana dia adalah orang yang memutuskan keputusan akhir tentang perisian / aplikasi yang akan dimasukkan ke dalam kernel Linux. Keputusannya adalah mutlak. Dari segi demokrasi, ia mungkin dianggap tidak demokratik dan membuka kemungkinan masalah jika diktator membuat kesilapan. Tetapi sebenarnya Linus diterima sebagai tokoh yang menentukan arah dan perkembangan kernel Linux. Mengapa?

Dalam artikel wawancara yang diterbitkan oleh BusinessWeek, Linus menjawab seperti ini:

S: Anda jelas merupakan pemimpin pergerakan Linux, tetapi apa maksudnya? Bagaimana anda memimpin? Adakah anda seorang diktator yang baik hati kerana dipanggil dengan sedemikian?

J: Sejujurnya, hakikat bahawa orang mempercayai anda memberikan anda banyak kuasa terhadap orang. Mempunyai kepercayaan orang lain adalah jauh lebih kuat daripada teknik pengurusan yang lain yang digabungkan semuanya. Saya tidak mempunyai kekuasaan undang-undang ataupun eksplisit. Saya hanya mempunyai kuasa untuk memiliki kepercayaan orang – tetapi itu adalah kuasa yang sangat banyak.

Saya seorang diktator, tetapi ia adalah jenis diktator yang benar. Saya tidak melakukan apa-apa yang menghancurkan orang. Kebajikan dibina. Saya tidak boleh menjadi jahat. Jika ketamakan saya menguasai, mereka tidak akan mempercayai saya lagi dan tidak akan bekerja bersama lagi dengan saya. Saya bukan pemimpin, saya lebih kepada pengembala. Sekarang semua pembangun kernel akan membaca dan berkata, “Dia membandingkan kita dengan biri-biri.” Ia lebih seperti pengembalaan kucing.

LINUX ADALAH LAPUK?

Pada Januari 1992, Professor Andrew S Tanenbaum yang merupakan pembangun Minix yang dipelajari oleh Linus, telah mengirimkan email ke “mailing” Minix (yang juga diikuti oleh Linus) dengan subjek email yang cukup menikam: “Linux is Obsolete”. Pada emailnya, Professor Tanenbaum mengatakan bahawa rekaan kernel monolitik seperti Linux pada 90-an adalah merupakan “Fundamental Error” dan Linus boleh mendapat gred “F” jika menjadi mahasiswanya.

Andrew Tanenbaum sebenarnya seorang penyelidik yang dihormati yang menjalani hidup yang sangat baik yang sentiasa berfikir tentang sistem operasi dan reka bentuk OS. Pada awal 1992, melihat bagaimana perbincangan Linux menjadi hangat dan telah mengambil alih perbincangan di comp.os.minix, beliau memutuskan ia adalah masa untuk memberikan komen mengenai Linux.

Terdapat juga kehadiran penggodam Ken Thompson (salah seorang pengasas Unix) dan David Miller (yang merupakan penggodam utama kernel Linux sekarang), serta ramai lagi penggodam dan sifu yang hadir didalam perdebatan tersebut.

Perbincangan ini berlaku pada tahun 1992, 386 adalah cip dominasi dan 486 belum keluar di pasaran. MICROSOFT masih sebuah syarikat kecil yang menjual DOS dan Word bagi DOS. Lotus 123 menguasai spreadsheet dan WordPerfect bagi pasaran pemprosan perkataan. DBASE adalah vendor pangkalan data yang dominan dan banyak syarikat besar hari ini – Netscape, Yahoo, Google – adalah semata-mata tidak wujud.

Berikut merupakan petikan dua email pada “mailing” tersebut.

From: [email protected] (Andy Tanenbaum)
Newsgroups: comp.os.minix
Subject: LINUX is obsolete
Date: 29 Jan 92 12:12:50 GMT

I was in the U.S. for a couple of weeks, so I haven’t commented much on LINUX (not that I would have said much had I been around), but for what it is worth, I have a couple of comments now.

As most of you know, for me MINIX is a hobby, something that I do in the evening when I get bored writing books and there are no major wars, revolutions, or senate hearings being televised live on CNN. My real job is a professor and researcher in the area of operating systems.

As a result of my occupation, I think I know a bit about where operating are going in the next decade or so. Two aspects stand out:

1. MICROKERNEL VS MONOLITHIC SYSTEM
   Most older operating systems are monolithic, that is, the whole operating system is a single a.out file that runs in ‘kernel mode’. This binary contains the process management, memory management, file system and the rest. Examples of such systems are UNIX, MS-DOS, VMS, MVS, OS/360, MULTICS, and many more.

   The alternative is a microkernel-based system, in which most of the OS runs as separate processes, mostly outside the kernel. They communicate by message passing.  The kernel’s job is to handle the message passing, interrupt handling, low-level process management, and possibly the I/O. Examples of this design are the RC4000, Amoeba, Chorus, Mach, and the not-yet-released Windows/NT.

   While I could go into a long story here about the relative merits of the two designs, suffice it to say that among the people who actually design operating systems, the debate is essentially over. Microkernels have won. The only real argument for monolithic systems was performance, and there is now enough evidence showing that microkernel systems can be just as fast as monolithic systems (e.g., Rick Rashid has published papers comparing Mach 3.0 to monolithic systems) that it is now all over but the shoutin’.

   MINIX is a microkernel-based system.  The file system and memory management are separate processes, running outside the kernel.  The I/O drivers are also separate processes (in the kernel, but only because the brain-dead nature of the Intel CPUs makes that difficult to do otherwise).  LINUX is a monolithic style system. This is a giant step back into the 1970s. That is like taking an existing, working C program and rewriting it in BASIC. To me, writing a monolithic system in 1991 is a truly poor idea.

2. PORTABILITY
   Once upon a time there was the 4004 CPU.  When it grew up it became an 8008.  Then it underwent plastic surgery and became the 8080.  It begat the 8086, which begat the 8088, which begat the 80286, which begat the 80386, which begat the 80486, and so on unto the N-th generation. In the meantime, RISC chips happened, and some of them are running at over 100 MIPS.  Speeds of 200 MIPS and more are likely in the coming years. These things are not going to suddenly vanish.  What is going to happen is that they will gradually take over from the 80×86 line.  They will run old MS-DOS programs by interpreting the 80386 in software.  (I even wrote my own IBM PC simulator in C, which you can get by FTP from ftp.cs.vu.nl =  192.31.231.42 in dir minix/simulator.)  I think it is a gross error to design an OS for any specific architecture, since that is not going to be around all that long.

   MINIX was designed to be reasonably portable, and has been ported from the Intel line to the 680×0 (Atari, Amiga, Macintosh), SPARC, and NS32016. LINUX is tied fairly closely to the 80×86. Not the way to go. Don’t get me wrong, I am not unhappy with LINUX.  It will get all the people who want to turn MINIX in BSD UNIX off my back.  But in all honesty, I would suggest that people who want a **MODERN** “free” OS look around for a microkernel-based, portable OS, like maybe GNU or something like that.

Andy Tanenbaum ([email protected])

P.S. Just as a random aside, Amoeba has a UNIX emulator (running in user space), but it is far from complete. If there are any people who woul like to work on that, please let me know.  To run Amoeba you need a few 386s, one of which needs 16M, and all of which need the WD Ethernet card.

Email sebegini datangnya dari seorang professor sistem operasi komputer dan penulis buku yang menjadi bacaan wajib di Universiti tentunya merupakan kejutan, namun kita boleh lihat dari jawapan Linus yang awalnya agak matang dan rendah diri menjadi lebih “wise” dan perdebatan mereka menunjukkan ketinggian intelektual masing-masing. Dari perdebatan yang sangat popular ini kita boleh melihat bahawa perbezaan pendapat bukanlah merupakan masalah, apalagi jika pertikaian masing-masing disampaikan dalam kalimat-kalimat yang membuka idea.

Berikut adalah jawapan balas dari Linus terhadap mail tersebut.

From: [email protected] (Linus Benedict Torvalds)
Subject: Re: LINUX is obsolete
Date: 29 Jan 92 23:14:26 GMT
Organization: University of Helsinki

Well, with a subject like this, I’m afraid I’ll have to reply. Apologies to minix-users who have heard enough about linux anyway. I’d like to be able to just “ignore the bait”, but …  Time for some serious flamefesting!

In article <[email protected]> [email protected] (Andy Tanenbaum) writes:
>
>I was in the U.S. for a couple of weeks, so I haven’t commented much on
>LINUX (not that I would have said much had I been around), but for what
>it is worth, I have a couple of comments now.
>
>As most of you know, for me MINIX is a hobby, something that I do in the
>evening when I get bored writing books and there are no major wars,
>revolutions, or senate hearings being televised live on CNN.  My real
>job is a professor and researcher in the area of operating systems.

You use this as an excuse for the limitations of minix? Sorry, but you loose: I’ve got more excuses than you have, and linux still beats the pants of minix in almost all areas. Not to mention the fact that most of the good code for PC minix seems to have been written by Bruce Evans.

Re 1: you doing minix as a hobby – look at who makes money off minix, and who gives linux out for free.  Then talk about hobbies.  Make minix freely available, and one of my biggest gripes with it will disappear. Linux has very much been a hobby (but a serious one: the best type) for me: I get no money for it, and it’s not even part of any of my studies in the university.  I’ve done it all on my own time, and on my own machine.

Re 2: your job is being a professor and researcher: That’s one hell of a good excuse for some of the brain-damages of minix. I can only hope (and assume) that Amoeba doesn’t suck like minix does.

>1. MICROKERNEL VS MONOLITHIC SYSTEM

True, linux is monolithic, and I agree that microkernels are nicer. With a less argumentative subject, I’d probably have agreed with most of what you said. From a theoretical (and aesthetical) standpoint linux looses. 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. Linux wins heavily on points of being available now.

>   MINIX is a microkernel-based system. [deleted, but not so that you
> miss the point ] LINUX is a monolithic style system.

If this was the only criterion for the “goodness” of a kernel, you’d be right.  What you don’t mention is that minix doesn’t do the micro-kernel thing very well, and has problems with real multitasking (in the kernel).  If I had made an OS that had problems with a multithreading filesystem, I wouldn’t be so fast to condemn others: in fact, I’d do my damndest to make others forget about the fiasco.

[ yes, I know there are multithreading hacks for minix, but they are hacks, and bruce evans tells me there are lots of race conditions ]

>2. PORTABILITY

“Portability is for people who cannot write new programs”
             -me, right now (with tongue in cheek)

The fact is that linux is more portable than minix. What? I hear you say. It’s true – but not in the sense that ast means: I made linux as conformant to standards as I knew how (without having any POSIX standard in front of me).  Porting things to linux is generally /much/ easier than porting them to minix.

I agree that portability is a good thing: but only where it actually has some meaning. There is no idea in trying to make an operating system overly portable: adhering to a portable API is good enough. The very /idea/ of an operating system is to use the hardware features, and hide them behind a layer of high-level calls. That is exactly what linux does: it just uses a bigger subset of the 386 features than other kernels seem to do. Of course this makes the kernel proper unportable, but it also makes for a /much/ simpler design. An acceptable trade-off, and one that made linux possible in the first place.

I also agree that linux takes the non-portability to an extreme: I got my 386 last January, and linux was partly a project to teach me about it. Many things should have been done more portably if it would have been a real project.  I’m not making overly many excuses about it though: it was a design decision, and last april when I started the thing, I didn’t think anybody would actually want to use it.  I’m happy to report I was wrong, and as my source is freely available, anybody is free to try to port it, even though it won’t be easy.

          Linus

PS. I apologise for sometimes sounding too harsh: minix is nice enough if you have nothing else. Amoeba might be nice if you have 5-10 spare 386’s lying around, but I certainly don’t. I don’t usually get into flames, but I’m touchy when it comes to linux 🙂

Sekarang sudahpun tahun 2017, iaitu setelah 25 tahun selepas perdebatan ini. Kita dapat lihat pendapat siapakah yang berjaya berdiri diatas tanah dengan teguh pada masa sekarang.