Cerita Unik dan Menarik Seputar Linux : Pernak-Pernik Linus Torvalds Bagian 2

Ternyata banyak para pembaca yang menyukai artikel “Cerita Unik dan Menarik Seputar Linux : Pernak-Pernik Linus Torvalds Bagian 1” dan meminta agar sequel artikelnya dilanjutkan. Karena seharian tadi sibuk mengerjakan pekerjaan di Excellent untuk urusan administrasi, baru malam ini saya bisa melanjutkan artikelnya.

MANTAN TENTARA

Linus_TorvaldsMungkin banyak yang tidak tahu kalau Linus Torvalds sang pencipta Linux pernah masuk tentara. Sebagai salah satu negara yang mewajibkan pemudanya untuk ikut wajib militer, Finlandia memberikan 2 pilihan bagi para pemuda yang sudah mencapai usia tertentu :

  1. Ikut wajib militer selama 8 bulan atau
  2. Menjadi pekerja sosial selama 1 tahun

Jika menjadi tentara juga ada 2 pilihan yaitu menjadi tentara normal (tugas lapangan) untuk waktu 8 bulan atau menjadi tentara kantoran (administrative officer) selama 11 bulan. dari 2 opsi wajib militer, Linus Torvalds memilih yang kedua, yaitu jadi Letnan 2 di Angkatan Bersenjata Finlandia, bertugas sebagai pengontrol tembakan meriam. Tugas ini membutuhkan waktu selama 11 bulan. Dan ini kata Linus Torvalds soal pekerjaannya selama jadi tentara :

“My job as an officer was to be the fire controller leader for a group of five. That just means you’re supposed to know how things work, and make them seem more complicated than they really are”

Hehehe… Komandan regu tentara yang nyleneh 🙂

CINTA PADA KONTAK PERTAMA SECARA ELEKTRONIK

linus_family

Setelah lulus kuliah, Linus menjadi teaching Assistant di University of Helsinki, Finlandia, mengajar kuliah berbahasa Swedia (bahasa yang biasa dipergunakan oleh Linus karena keluarganya berasal dari penutur bahasa Swedia yang secara geografis bertetanggaan dengan Finlandia). Materi kuliahnya : “Introduction to Computer Sciences”, jumlah mahasiswa dikelasnya ada 15 orang.

Suatu waktu, Linus meminta mahasiswanya mengerjakan PR. Isinya? “For Homework, send me email”. Mungkin sekarang ini PR tersebut pekerjaan sepele, bahkan untuk selevel anak SMP namun di tahun 1993, tugas tersebut tugas untuk level mahasiswa ilmu komputer.

Sebagian besar email mahasiswa berupa pesan test atau sejenisnya, yang bahkan sudah tidak diingat oleh Linus karena isinya tidak terlalu penting.

Satu mahasiswi, namanya Tove, mengirimkan email dengan ajakan nge-date alias kencan.

Kata Linus di buku “Just for Fun: The Story of an Accidental Revolutionary”,

I married the first woman to approach me electronically

Sebagai tambahan, Tove adalah pemegang 6x sabuk juara karate di Finlandia 🙂 . Linus dan Tove dikarunia 3 orang anak perempuan : Patricia, Daniela, dan Celeste

PROGRAM PERTAMA LINUS

Program pertama Linus bukanlah program Linux itu sendiri. Sama seperti kita yang mulai belajar Hello World :-), program pertama Linus isinya seperti ini :

10 PRINT “HELLO”

20 GOTO 10

Hasilnya? Hasilnya adalah tulisan Hello memenuhi layar tidak berhenti-henti sampai kita tekan tombol CTRL+C untuk menyetopnya. Ternyata hacker juga sama-sama mulai dari nol seperti kita pertama kali jadi programmer, hehehe…

Seperti bisa dilihat pada source diatas, program pertama Linus menggunakan BASIC. Setelah beberapa lama, ia pindah ke Assembler (Assembly Programming) yang lebih dekat ke bahasa mesin daripada bahasa manusia 🙂

Saat Linus mulai membuat emulator terminal yang menjadi cikal bakal kernel Linux, ia membuat program hebat yang membuatnya sangat bangga, yaitu program multi thread.

Saat itu, di tahun 90-an, umumnya program berjalan secara single thread. Apa yang kita jalankan saat ini ya berjalan dan ditunggu hingga selesai. Padahal Linus ingin agar program emulatornya nanti bisa melakukan beberapa fungsi secara bersamaan. Secara background proses, emulator tersebut bisa melakukan koneksi ke terminal Unix di universitasnya, sementara diwaktu bersamaan Linus sendiri bisa membacanya melalui monitor yang ia miliki.

Kemampuan ini dikenal dengan istilah “Task Switching” dan hardware di chipset Intel i386 memiliki kemampuan untuk support task switching ini. Program yang dibuat oleh Linus akan membuat tulisan “AAAAAAAAAAAAAAAA” yang dijalankan oleh thread pertama kemudian disaat program tersebut berjalan, monitornya akan menampilkan juga tulisan “BBBBBBBBBBBBB” yang dijalankan oleh thread yang lain.

“I was very proud of it”, kata Linus di bukunya.

Sebagai kakak yang baik dan merasa bangga pada programnya, Linus memperlihatkan hasil kerjanya pada Sara Torvalds adiknya. Apa respon adiknya?

My sister Sara knew about my great personal accomplishment. I showed it to her and she looked at the screens of AAAAAAAAAA’s and BBBBBBBBBBB’s for about five seconds; then she said “good” and went away, unimpressed”

Moral story-nya, bicara kehebatan teknis dengan orang yang tidak tepat meski itu saudara kandung sendiri tentu saja tidak akan nyambung 😛

CIKAL BAKAL NAMA LINUX

Sewaktu membuat program yang nantinya menjadi kernel Linux, Linus menggunakan nama Linux, sekedar kepanjangan dari LINus UniX, yaitu program yang dibuat oleh Linus berbasis sistem operasi UNIX. Meski demikian, Linus merasa nama tersebut terlalu egois jika ia menggunakannya :

“Honest : I didn’t want to ever release it under the name Linux because it was too egotistical”, begitu kata Linus dibukunya, “Just for Fun: The Story of an Accidental Revolutionary”

Lantas apa nama yang ia siapkan. Ia menyiapkan nama FreaX, yang artinya Free UniX. Lantas A itu singkatan apa? A itu nggak ada arti apa-apa, seperti halnya singkatan “S” pada nama Harry S Truman salah satu Presiden Amerika Serikat.

Masalahnya, Ari Lemmke temannya yang mengelola FTP Server dan menyediakan akses untuk didownload oleh orang lain diseluruh dunia tidak menyukai nama FreaX tersebut. Ia tidak mengatakannya pada Linus namun tetap membuat folder dengan nama Linux. Nama ini akhirnya dikenal luas dan Linus tidak lagi meminta Ari Lemmke untuk mengubahnya karena sudah terlanjur dikenal dan dipakai dalam patch-patch maupun update kernel Linux versi-versi awal.

TALK IS CHEAP, SHOW ME THE CODE

Linus banyak melahirkan quote-quote brilian yang menunjukkan kejeniusan pola pikirnya dan salah satu quote favorit saya adalah tulisan diatas ini.

Jika para fans Linux berharap mendapatkan sosok Linus yang orangnya kalem, bicaranya sopan dan pendiam, mungkin akan terkaget-kaget karena Linus kerapkali menggunakan kata-kata makian atau bercanda justru saat mengumumkan rilis suatu kernel Linux.

Sifat dan gaya ini sebenarnya bukan sesuatu yang mengagetkan karena memang ciri khas orang-orang yang biasa ngoprek alias hacking. Kata-kata makian yang digunakanpun sebenarnya memiliki relevansi dengan apa yang dimaksudkan dan dipilih sebagai bentuk penekanan makna.

Kembali pada tulisan “Talk is Cheap, Show me the Code”, kalimat ini merupakan jawaban Linus saat ada salah seorang member Linux Kernel Mailing List (LKML), Jamie Lokier yang bolak-balik berargumen dalam hal teknis namun hanya berupa asumsi, bukan hasil test coding :

Well well.  I think it's possible to over the best of user-space "fake" 
threads plus the advantages of "true" kernel threads in one blindingly
fast combination, in less than 8kB per thread.

If you stop and think for a moment, I think you'll see it too.

Thread lengkapnya bisa dibaca disini : Re: SCO: “thread creation is about a thousand times faster than onnative

Jawaban Linus untuk ini sederhana saja, ya itu tadi : “Talk is Cheap, Show Me the Code”. Simple, ibaratnya kalau dalam bahasa Indonesia, “Lo ngomong sih gampang, coba tunjuk-in source code-nya”

Hasilnya, Jamie Lokier langsung diem. Lha gimana mau jawab, karena yang dikatakan Linus ini benar, apalagi yang mengatakan bukan sembarang hacker, justru hacker yang membuat kernel Linux-nya 🙂

Meski demikian, Linus tidak bermaksud kasar. Dalam email berikutnya, Linus menjelaskan :

On Fri, 25 Aug 2000, dean gaudet wrote:
> On Fri, 25 Aug 2000, Jamie Lokier wrote:
> 
> > There are a couple of really obvious states where you don't need to
> > record the full path to where we slept.
> > 
> >    - The schedule() in ret_from_sys_call.
> > 
> >    - do_poll().
> > 
> > The first is used when pre-empting, such as when we have lots of threads
> > running.  The second is used by almost every task that sleeps, including
> > heavy duty servers.
> 
> hmm, if i'm writing a heavy duty server that uses enough kernel threads to
> start worrying about the number of stacks in use, then i'm probably not
> calling poll().  i'm probably blocking in disk/net reads/writes directly.
> i'd only be using poll() if i'm doing userland threads/state-machines.

That's not the problem.

I think what Jamie is overlooking is all the details.

For example, take the really obvious one: sure, you don't need a kernel
stack under some circumstances.

What are you going to do when you DO need one?

Allocate one dynamically?

Good-bye performance.

That's why I said "Show me the code". I'm rather unconvinced that you can
actually get the details right without huge amounts of complexity.

I'm sure it could be done. I'm pretty convinced that there is no way to do
it efficiently.

		Linus

Ungkapan yang disampaikan oleh Linus benar-benar tepat kan? Bukan karena ia tidak suka pada personality seseorang. Kalimat Linus sebenarnya untuk mengingatkan : jika  bicara dari sisi teknis sebaiknya ditopang juga dengan bukti atau hasil test, bukan sekedar omong besar tanpa bukti, nantinya malah jadi troll di milis.

Pada artikel berikutnya akan saya ceritakan kisah bagaimana Linus menghadapi kegugupan saat berbicara pertama kali dalam suatu seminar dan beberapa quote Linus yang kemudian menjadi trade mark dan legenda. Stay tune gan!

You may also like

8 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.