Wednesday, September 2, 2009

Mengenal Open Source dan GNU/Linux

Latar Belakang
Di Awal tahun 1990-an, ketika dunia sistem operasi komputer masih didominasi oleh Microsoft DOS (MS-DOS) dan Windows-nya, lahirlah sebuah sistem perangkat lunak tertutup (closed source), dimana pengguna akhir (End User) program tersebut tidak diperbolehkan untuk membuka, mempublikasikan, mempelajari kode programnya, dan tentu saja memperbanyaknya pun tidak diijinkan. Belum lagi, lisensi program tersebut harus dibeli dengan harga yang tidak sedikit.


Selain itu, ada pula sistem operasi lain yang disebut dengan UNIX, yang ternyata harganya jauh lebih mahal. Kode sumbernya pernah diajarkan di universitas atas seijin Bell Laboratories, yang lalu kemudian secara hati-hati dilindungi dan tidak dipublikasikan. Untuk menambah rasa frustasi pengguna PC di seluruh dunia, beberapa pemain besar di pasar program komputer pun telah gagal untuk memberikan solusi yang efisien terhadap masalah ini.

Sebuah solusi tampaknya muncul dalam bentuk MINIX, sebuah sistem operasi yang sederhana, yang dibuat oleh Andrew S. Tanenbaum, seorang profesor asal Belanda kelahiran Amerika, yang ingin mengajarkan kepada mahasiswanya bagaimana cara kerja di dalam sebuah sistem operasi yang sebenarnya. MINIX dirancang untuk berjalan pada microprocessors Intel 8086 yang membanjiri pasaran komputer dunia pada waktu itu.”

Sebagai sebuah sistem operasi, MINIX bukanlah suatu sistem operasi yang handal. Tetapi mempunyai kelebihan bahwa kode sumbernya yang tersedia. Siapapun yang mendapatkan dan membaca buku "Sistem Operasi: Desain dan Implementasi” yang ditulis Tanenbaum, dapat mendapatkan lebih dari 12 ribu baris kode programnya, yang ditulis dalam bahasa C dan assembly.

Itulah untuk pertama kalinya, seorang programmer atau hacker bisa membaca kode sumber dari sebuah sistem operasi, dimana waktu itu para vendor pembuat perangkat lunak dan menjaga kode sumber programnya dengan ketat. Hasil karya Tanenbaum ini dianggap sebagai buah pemikiran yang cerdas dalam dunia ilmu informatika, yang dihasilkan dengan elaborasi dan hasil diskusi yang jernih tentang seni pembuatan sistem operasi yang fungsional. Para Mahasiswa Ilmu Informatika di seluruh dunia meneliti melalui buku tersebut, dan membaca kode-kode programnya untuk memahami keseluruhan sistem operasi yang berjalan pada komputer mereka.
Dan salah seorang mahasiswa tersebut adalah Linus Torvalds.

Awal perkembangan Linux
Linus Torvalds ialah seorang mahasiswa tingkat dua Jurusan Ilmu Komputer di Universitas Helsinki. Dan dia pun adalah seorang hacker yang autodidak. Ia suka mengutak-atik segala hal tentang komputer sampai ke batas-batas mana sebuah sistem bisa diuji. Sampai kesemuanya itu berakhir pada satu masalah pada keberadaan sebuah sistem operasi yang dapat memenuhi kebutuhan para pengguna professional. MINIX memang bagus, tapi tetap saja itu hanyalah sebuah sistem operasi yang diperuntukkan untuk para mahasiswa, dirancang sebagai alat pengajaran dan bukan menjadi kekuatan industri perangkat lunak.

Pada saat itu, programmer di seluruh dunia itu sangat terinspirasi oleh proyek GNU (GNU's Not UNIX) oleh Richard Stallman, yaitu sebuah gerakan perangkat lunak yang menyediakan perangkat lunak bebas dan berkualitas. Dipuja sebagai pahlawan dalam bidang komputasi, Stallman memulai karirnya yang mengagumkan di Laboratorium Artificial Intelligence yang terkenal di MIT, dan selama pertengahan dan akhir tahun tujuh puluhan, menciptakan editor Emacs.

Pada awal tahun delapan puluhan, perusahaan perangkat lunak komersial memikat para programer brilian untuk keluar dari Lab AI, dan bergabung dengan perjanjian menjaga rahasia ketat untuk melindungi rahasia perangkat lunak tersebut. Tetapi Stallman memiliki visi yang berbeda.
Idenya adalah bahwa tidak seperti produk komersial yang lain, perangkat lunak harus terbebas dari pembatasan terhadap menyalin atau memodifikasi, untuk membuat program komputer tersebut lebih baik dan efisien. Di tahun 1983 manifesto GNU diperkenalkan yang menyatakan awal dari proyek GNU, ia memulai sebuah gerakan untuk membuat dan mendistribusikan perangkat lunak yang menyampaikan filosofinya (nama GNU merupakan singkatan rekursif yang sebenarnya adalah singkatan dari "GNU is Not Unix" atau GNU bukan UNIX). Tetapi untuk mencapai impiannya untuk menciptakan sebuah sistem operasi bebas, diperlukan untuk menciptakan alat-nya terlebih dulu. Maka, mulai tahun 1984, Stallman menulis GNU C Compiler (GCC), sebuah hasil prestasi luar biasa bagi seorang pemrogram. Dengan "teknik sihir"-nya yang legendaris , dia sendiri menciptakan GCC, dianggap sebagai salah satu compiler yang paling efisien dan terbaik yang pernah dibuat, mengalahkan seluruh kelompok programmer dari vendor perangkat lunak komersial.

Pada tahun 1991, proyek GNU telah menciptakan banyak alat. GNU C Compiler yang telah banyak ditunggu, memang telah tersedia pada saat itu, tapi masih belum adanya suatu bentuk sistem operasi. Bahkan ketika MINIX berlisensi (Pada bulan April 2000, Tanenbaum merilis Minix di bawah Lisensi BSD). Kernel GNU HURD yang sempat dikerjakan, tapi akhirnya tidak keluar dalam beberapa tahun kemudian.

Bagi Linus, penundaan itu terlalu banyak untuknya.

Pada 25 Agustus 1991, posting bersejarah dikirim oleh Linus ke mailing-list news group MINIX :

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki

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, andI'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus (torvalds@kruuna.helsinki.fi)
PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.

Seperti terlihat dari posting di atas, Linus sendiri tidak percaya bahwa kernel Linux ciptaannya akan menjadi cukup besar untuk mengubah dunia komputasi selamanya. Linux versi 0.01 dirilis pada pertengahan September 1991, dan disebarkan di internet. Antusiasme dari maling-list tersebut berdatangan, dan kode-kodenya didownload, diuji, dimodifikasi, dan dikembalikan ke Linus. Rilis 0.02 keluar pada tanggal 5 Oktober, bersamaan dengan pernyataan terkenal dari Linus:

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: Free minix-like kernel sources for 386-AT
Message-ID: <1991Oct5.054106.4647@klaava.Helsinki.FI>
Date: 5 Oct 91 05:41:06 GMT
Organization: University of Helsinki
Do you pine for the nice days of minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on minix? No more all-nighters to get a nifty program working? Then this post might be just for you :-)
As I mentioned a month(?)ago, I'm working on a free version of a minix-lookalike for AT-386 computers. It has finally reached the stage where it's even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02 (+1 (very small) patch already), but I've successfully run bash/gcc/gnu-make/gnu-sed/compress etc under it. Sources for this pet project of mine can be found at nic.funet.fi (128.214.6.100) in the directory /pub/OS/Linux. The directory also contains some README-file and a couple of binaries to work under linux (bash, update and gcc, what more can you ask for :-). Full kernel source is provided, as no minix code has been used. Library sources are only partially free, so that cannot be distributed currently. The system is able to compile "as-is" and has been known to work. Heh. Sources to the binaries (bash and gcc) can be found at the same place in /pub/gnu.

Rilis Linux versi 0.03 datang dalam beberapa minggu kemudian. Pada bulan Desember, keluarlah rilis versi 0.10. Waktu itu, Linux masih kurang lebih berbentuk "kerangka", yang hanya ada dukungan untuk hard disk AT, dan tidak punya fasilitas login (boot langsung ke bash). Pada versi 0.11, rilis ini jauh lebih baik dengan dukungan untuk multilingual keyboard, driver floppy disk, dukungan untuk VGA, EGA, Hercules, dan lain-lain.
Pada rilis versi 0.12 langsung ke rilis versi 0.95, dan 0.96, dan seterusnya. Selanjutnya kode-kode sumber linux bertebaran di seluruh dunia melalui situs ftp di Finlandia, dan di tempat lainnya.


Konfrontasi dan Perkembangan Linux

Segera Linus menghadapi beberapa konfrontasi yang tak lain dari Andrew Tanenbaum, sang guru besar yang menulis MINIX. Dalam posting Linus, Tanenbaum berkomentar:

"I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design :-)"
(Andrew Tanenbaum to Linus Torvalds)


Linus kemudian mengakui bahwa hal itu adalah titik terburuk dari perkembangan Linux. Jelas bahwa Tanenbaum profesor yang terkenal, dan apa pun yang dikatakannya pasti penting.

Tanenbaum juga menyatakan bahwa: "Linux is obsolete" (terjemahan: Linux itu kuno). Tapi Linus adalah salah satu orang yang tidak mau mengakui kekalahan.
Sekarang adalah giliran untuk Linux generasi baru. Didukung kuat oleh komunitas Linux, Linus memberikan balasan untuk Tanenbaum yang tampaknya paling tepat:

Your job is being a professor and researcher: That's one hell of a good excuse for some of the brain-damages of minix.
(Linus Torvalds to Andrew Tanenbaum)



Seterusnya, lebih dari seratus orang bergabung dengan Linux-camp. Kemudian ribuan. Kemudian ratusan ribu. Sampai Linux bukan lagi jadi mainan hacker saja. Didukung oleh kebanyakan program dari proyek GNU, Linux sudah siap untuk "pertarungan yang sebenarnya". Linux dilisensikan di bawah Lisensi Publik Umum GNU (GNU General Public License), sehingga memastikan bahwa kode sumbernya akan kebebasan bagi semua orang untuk menyalin, mempelajari dan merubahnya.

Segera, beberapa Perusahaan komersial berpindah masuk ke Linux. Apa yang perusahaan-perusahaan tersebut lakukan adalah meng-kompilasi berbagai perangkat lunak dan mengumpulkannya dalam format yang dapat didistribusikan, lebih mirip sistem operasi lain yang sudah ada dikenal banyak orang. Red Hat, Caldera, dan beberapa perusahaan lainnya memperoleh cukup banyak tanggapan dari pengguna di seluruh dunia. Selain bisnis Linux komersial di atas, ada pula beberapa pemrogram komputer membuat sendiri distribusi Linux berbasis komunitas (populer dengan istilah distro), seperti Debian, Slackware, Fedora, serta distribusi terkenal lainnya. Dengan dilengkapi Graphical User Interface baru (seperti X-Window System, KDE, GNOME, Xface, Openbox, LXDE, dll), distribusi Linux menjadi sangat populer dari tahun ke tahun.
Tak cukup sampai di situ, Linux pun berkembang dengan ditambahkannya aplikasi-aplikasi open source lainnya, seperti pengolah kata (Word Processor), pengolah tabel (Spreadsheet), pemutar media(media player), aplikasi database, dan aplikasi lainnya.

Saat ini terdapat lebih dari tiga ratus Distro Linux. Kebanyakan dari mereka aktif dalam pengembangan masing-masing distro, dan secara konstan melakukan revisi dan terus mengalami peningkatan.
Karena kebanyakan beberapa dari kernel dan paket software yang mendukung adalah kombinasi dari perangkat lunak(Software) bebas dan open source, Distro Linux telah menjadi berbagai macam bentuk, mulai dari desktop dengan fitur lengkap, dan server untuk sistem operasi dengan kondisi hardware minimal. Selain dari beberapa perangkat lunak yang dimodifikasi (seperti installer dan tool konfigurasi), sebuah Distro Linux secara sederhana merujuk kepada sebuah kumpulan aplikasi tertentu yang terinstall di atas satu set library disatukan dengan sebuah versi kernel, dan dengan kemampuannya yang “out-of-the-box” memenuhi sebagian besar kebutuhan khusus para pengguna.

Pertanyaan yang mungkin muncul adalah : Kenapa kita menggunakan Linux, bukan Sistem Operasi lainnya? beberapa alasan umum sebagai berikut :
  • Powerfull, desain modern: Linux dirancang dari level dasar sampai level tingkat tinggi yang memungkinkan anda untuk menjalankan banyak program (multiple program) pada saat yang sama dan untuk memberikan layanan yang komputer anda dapat digunakan. Seperti Kebanyakan sistem operasi komputer desktop , seperti Microsoft Windows, Linux dimulai dari sebuah sistem operasi kecil yang hanya dapat menjalankan satu program pada satu waktu, dan sejak saat itu mereka telah mencoba untuk mengejar ketertinggalannya.
  • Kode sumber (Source Code) tersedia secara bebas, yang berarti tidak ada monopoli oleh satu vendor saja : Apapun yang sistem operasi yang anda gunakan, anda mungkin mengalami masalah dengan aplikasi atau cara kerjanya. Namun, jika Anda menggunakan sistem operasi yang telah siap dan terstandarisasi dari Microsoft atau Apple, anda hanya mendapatkan perbaikan dan update dari Microsoft atau Apple saja. Linux bersifat terbuka dan bebas, sehingga jika anda tidak menyukai cara kerja Linux Red Hat, atau harganya, atau jenis dukungan untuk pelanggan (customer support) yang tersedia, Anda selalu dapat berpindah ke Linux SUSE, Linux Mandriva, atau Linux Ubuntu.
  • Ribuan aplikasi yang Free dan Powerfull : Perlu pengolah kata? Download dan install saja OpenOffice Writer, AbiWord, Kwrite, atau puluhan software lainnya. Perlu database? Download dan install MySQL, PostgreSQL, atau sebagainya. Ingin membuat karya grafis atau memanipulasi foto digital? tidak ada yang lebih baik daripada Program GIMP (GNU Image Manipulation Program) atau bisa pula dengan Inkscape (Alternatif pengganti Corel Draw di Linux). Dan kesemuanya itu dapat diperoleh dengan cuma-cuma.
  • Dukungan untuk standar: Linux dan aplikasi Linux dirancang untuk mendukung standar, karena standar merupakan bahasa bebas perdagangan intelektual (Intellectual Commerce). Aplikasi Linux mendukung aplikasi modern dan format data audio, multimedia, format dokumen, data spreadsheet(tabel), dan masih banyak lagi. Karena Linux adalah terbuka dan bebas, tidak boleh ada hal seperti itu sebagai format data atau aplikasi Propietary(Closed Source) Linux.
  • Menurunkan total biaya kepemilikan (Cost of Ownership): Jika anda ingin menggunakan Linux pada desktop atau seluruh bisnis, anda bisa dapatkan secara free dan ada banyak Linux Wizards tersedia yang dapat membantu anda melakukan apapun yang Anda inginkan dengan itu. Tidak ada biaya lisensi - dan jika Anda diperlukan untuk membayar sesuatu, Anda hanya harus membayar untuk update dan dukungan dari vendor distribusi Linux Anda.
  • Stabil, handal, dan Bebas-virus: Linux sekarang adalah sistem operasi yang telah matang, sebuah sistem multiuser yang kokoh, stabil, dan mempunyai keamanan terintegrasi (built-in Security), serta kekebalan terhadap virus (terkecuali yang melalui sistem administrasi yang tidak aman).


Refferensi :
  • "History of Linux" oleh Ragib Hasan : http://ragibhasan.com/linux/
  • Buku "Ubuntu® Linux® Bible" oleh William von Hagen, terbitan Wiley Publishing, Inc.