Rabu, 09 April 2008

artikel IT

Mengenal kernel Linux

Linux kini telah berumur lebih dari 15 tahun. Apa saja yang telah dijalani dan apa pula yang terjadi saat ini? Mari kita lihat sama-sama.

Bagi pengguna sistem Linux, barangkali salah satu daya tarik terbesar adalah kernel. Bayangkan saja, kernel yang terdiri lebih dari 6 juta baris kode itu terbuka begitu saja. Siapa saja bisa melongok ke dalam source code kernel dan bahkan melakukan modifikasi, atau apapun. Tentunya, di dalam batasan lisensi yang digunakan. Dari sisi pengguna, keterbukaan ini juga sangatlah menarik. Pengguna bisa menambah atau mengurangi fitur kernel sesuai keinginan atau kebutuhan. Pada akhirnya, sistem Linux yang digunakan bisa benar-benar berbeda dengan pengguna lainnya.

Kernel Linux memang merupakan salah satu fenomena luar biasa yang terjadi di dunia computing, bersama dengan filosofi free software/open source. Siapa sangka, kalau kita melihat awal sejarah Linux, sistem operasi ini hanyalah dikembangkan sebagai hobi seorang Linus Torvalds. Developer yang lahir di Helsinki, Finlandia (28 Desember 1969) ini memang tidak menyangka bahwa hobinya bisa membawa banyak perubahan di dunia ini. Tak heran kalau Linus dinobatkan sebagai salah satu orang paling berpengaruh di dunia oleh majalah Time pada tahun 2004. Linus memang manusia yang unik. Walaupun dinobatkan sebagai icon free software/open source, Linus juga sempat ikut menggunakan dan bekerja dengan software prorietary (seperti BitKeeper di kernel dan ketika bekerja di perusahaan Transmeta).

Sampai saat ini, kita melihat bahwa Linux telah digunakan mulai dari perusahaan terbesar di dunia sampai perusahaan yang baru berdiri. Bahwa Linux telah digunakan oleh berbagai kalangan pengguna. Bahwa Linux telah digunakan pada super computer sampai telepon seluler. Namun, di belakang itu, banyak hal yang telah dialami selama kernel Linux dikembangkan. Mulai dari masalah teknikal sampai masalah persaingan bisnis, yang beberapa diantaranya dapat dikategorikan sebagai sangat tidak sehat.

Di tulisan ini, kami akan mengulas berbagai hal seputar kernel Linux (istilah kernel Linux dan Linux akan digunakan bersama-sama). Pertama-tama, kami akan membahas secara sekilas sejarah pengembangan kernel Linux mulai dari puluhan ribu baris kode, sampai jutaan baris kode. Apa saja yang terjadi selama kurun waktu tersebut. Apa saja arsitektur komputer yang didukung oleh Linux sampai saat ini? Sebagai tambahan, kami juga akan membahas sekilas tentang skema penomoran versi kernel.

Kemudian, kami akan membahas soal situs kernel.org secara singkat. Apa saja yang tersedia di sana, termasuk teknologi yang digunakan sehingga mampu melayani pengguna Linux (yang tertarik dengan kernel) di seluruh dunia.

Tak lupa, Kami akan membahas pula seputar istilah kernel vanilla, dan beberapa patch kernel bagi Anda yang tertarik.

Terakhir, pembahasan akan kami tutup dengan melihat developer kernel dan beberapa website menarik yang membahas seputar Linux dan teknologi terkait.

(Sebagai catatan, cara kompilasi kernel tidak kami masukkan ke dalam tulisan ini, karena akan lebih cocok ditempatkan pada bagian tutorial.)

Selamat membaca!

PERJALANAN KERNEL LINUX

Di bagian ini, kita akan membahas perjalanan kernel Linux, mulai dari awal dirilis sampai artikel ini ditulis. Pembahasan akan kita bagi per generasi kernel. Di sini, kita akan membahas juga sekilas tentang skema penomoran versi kernel yang digunakan.

Sebagai catatan, tidak semua rilis kernel akan dibahas. Dengan demikian, apabila terdapat pembahasan versi 0.02 dirilis dan pembahasan selanjutnya adalah rilis 0.11, bukan berarti versi 0.11 dirilis langsung setelah versi 0.02. Diantara kedua rilis tersebut, barangkali masih terdapat rilis-rilis lainnya.

Masa-masa awal

Linux (waktu itu belum bernama Linux namun Linus menyebutnya Freak; nama buggix bahkan sempat terpikir) dikembangkan oleh Linus Torvalds pada April 1991. Pada waktu itu, Linus yang masih berusia 21 tahun, memulai proyek sederhana dengan task switcher (assembly 386) dan driver untuk terminal.

Pada tanggal 25 Agustus 1991, Linus membuat sebuah post di comp.os.minix. Berikut ini adalah sebagian postnya. Post selengkapnya bisa dibaca di http://groups.google.com/group/comp.os.minix/msg/b813d52cbc5a044b?output=gplain.

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 :-)





Linux 0.01

Beberapa bulan kemudian, yaitu tepatnya 17 September 1991, Linux versi 0.01 dirilis. Rilis kali ini berisikan 10.239 baris kode.

Linux 0.02

Hanya berselang sebulan, pada bulan Oktober 1991, Linux versi 0.02 dirilis. Berikut ini adalah sebagian post Linus. Selengkapnya bisa dibaca di http://groups.google.com/group/comp.os.minix/msg/2194d253268b0a1b?output=gplain.

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.





Linux 0.11

Satu hal yang luar biasa pada waktu itu telah terjadi. Pada bulan Desember 1991, Linux versi 0.11 telah dirilis. Versi kali ini merupakan versi pertama yang self-hosting. Artinya, Linux 0.11 dapat dikompilasi di atas Linux 0.11. Sebelumnya, Linux masih membutuhkan minix-386 untuk kompilasi dan setup.

Linux 0.12

Linus turut memeriahkan awal tahun dengan merilis versi 0.12 pada tanggal 16 Januari 1992. Pada bulan yang sama, post pertama (oleh David W. Summers) ke newsgroup alt.os.linux dilakukan pada tanggal 19. Berikut ini adalah sebagian isi post tersebut:

Hello NetLanders,

Well earlier yesterday and today I was banging right along with Linux.

I was able to tell Linux to boot from the hard disk and mount the root from

the hard disk (/dev/hd1). I used ShoeLace to do this.

THEN I tried to activate swapping on /dev/hd2. No joy. mkswap told me I

couldn’t use the second partition because it was a DOS extended partition.

So, I proceded to try to change the partition type with ‘edpart’, which

seemed to work, until I tried to re-boot using the hard disk. NO JOY!





Secara umum post tersebut merupakan post berupa pertanyaan. Selengkapnya bisa dibaca di http://groups.google.com/group/alt.os.linux/msg/c638df159fa15159?hl=en&lr=&ie=UTF-8&output=gplain.

Pada bulan yang sama, Linus juga menerima kritik dari Professor Andy Tanenbaum, pencipta Minix, dengan judul post adalah “Linux is Obsolete”. Linus pun membalas tak kalah serunya. Berikut ini adalah tanggapan Linus:

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 <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:

>





>

>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.





Selengkapnya bisa dibaca di http://alge.anart.no/linux/history/linux_is_obsolete.txt.

Linux 0.95

Versi ini dirilis pada tanggal 8 Maret 1992. Satu hal yang luar bisa juga telah terjadi. Linux pada saat itu bisa menjalankan X Window System.

Pada bulan ini juga, newsgroup comp.os.linux telah dibuat. Berikut ini adalah post dari Alan B Clegg:

Well, great! We now have our own little news group. Officially!

Congrats, Linus!

-abc



Setelah itu, pada tahun 1992, Linux versi 0.9x.x dikembangkan dan dirilis. Pada akhir 1992 sampai awal 1994, Linux versi 0.99.x dikembangkan dan dirilis.

Generasi 1.0.x

Linux 1.0.0

Pada tanggal 14 Maret 1994, Linux versi 1.0.0 dirilis. Versi 1.0.0 ini mengandung 176.250 baris kode. Readme untuk 1.0.0 bisa dibaca di http://www.linuxhq.com/kernel/v1.0/0/README.

Pada saat ini, Linux mendukung hanya i386.

Sejak versi 1.0, pemberian versi Linux telah dibagi menjadi stabil dan pengembangan. Kita akan membahas sistem penomoran versi Linux lebih detil di bagian lain tulisan ini.

Generasi 1.2.x

Linux 1.2.0

Bulan Maret 1995, tepatnya pada tanggal 7, Linux 1.2.0 dirilis. Versi 1.2.0 ini mengandung 310.950 baris kode. Berikut ini adalah beberapa fitur baru yang diperkenalkan:

· Mendukung berbagai arsitektur lain: Alpha, Sparc, Mips

· Perbaikan pada jaringan

· I/O yang lebih cepat

· Mendukung EIDE, multiple IDE controller dan mendukung CDROM ATA

· Mendukung berbagai floppy

· Mendukung lebih banyak CDROM

· Mendukung lebih baik SCSI

· Mendukung lebih banyak perangkat jaringan

· Perbaikan untuk memory management

· Mendukung lebih banyak dukungan suara

· dan lain sebagainya

Generasi 2.0.x

Linux 2.0.0

Pada tanggal 9 Juni 1996, Linux 2.0.0 dirilis. Versi 2.0.0 ini berisikan 777.956 baris kode. Pada versi ini, terdapat banyak perubahan pada jaringan di Linux. Selain itu, penambahan fitur yang sangat menarik diantaranya adalah:

· Dukungan untuk SMP

· Tambahan dukungan untuk berbagai arsitektur komputer

Pada tahun yang sama, tepatnya pada tanggal 9 Mei, Tux disarankan sebagai maskot untuk sistem operasi Linux.

Generasi 2.2.x

Linux 2.2.0

Pada tanggal 25 Januari 1999, 2.2.0 dirilis. Versi ini mengandung 1.800.847 baris kode. Hampir 2 juta baris kode! Boleh dikatakan, inilah permulaan Linux dianggap serius oleh berbagai kalangan non developer.

Berikut ini adalah beberapa fitur untuk 2.2.x:

· Banyak perbaikan per arsitektur dan peningkatan opsi per jenis prosesor

· Mendukung sampai 16 CPU (sama dengan 2.0), tetapi dengan peningkatan kinerja

· Penambahan filesistem baru. Virtual FileSystem juga mengalami perbaikan (2 cache, untuk read dan write)

· Mendukung misc binary loader

· Mendukung sampai 1024 proses atau thread

· Mendukung FrameBuffer

· Dapat mengenali langsung PCI ataupun menggunakan bantuan BIOS

· Berbagai penulisan ulang untuk driver sound

· Banyak penambahan driver joystik

· Memperkenalkan firewall baru: ipchains

· Banyak perbaikan pada network filesystem

· Hilangnya kerneld, datangnya kmod

Pada saat itu, sudah banyak sekali distribusi Linux yang berbasiskan kernel 2.2.x.

Generasi 2.4.x

Linux 2.4.0

Pada tanggal 4 Januari 2001, lebih kurang 2 tahun setelah 2.2.0 dirilis, kernel 2.4.0 dirilis. Versi 2.4.0 mengandung 3.377.902 baris kode. Lebih kurang dua kali lebih banyak dari 2.2.0.

Berikut ini adalah beberapa fitur untuk 2.4.x:

· Cakupan penggunaan lebih luas. Mulai dari desktop, server dan embedded

· Penulisan driver lebih mudah

· VFS: single page caching, memudahkan pemrograman dan mengurangi race condition

· Jumlah proses tidak dibatasi lagi sampai 1024, melainkan secara teori dibatasi hanya oleh jumlah RAM (sebagai contoh: 0.5GB RAM bisa menampung hingga 16K proses)

· Pada mesin Intel, mendukung memori sampai 4GB dengan pengaturan tersendiri (disebabkan desain Intel)

· Mendukung 64 Alpha dan Sparc

· Pada Bus, mendukung ISA PNP, USB, I2O, PCMCIA

· Pada block device, mendukung:

o 10 IDE controller (sebelumnya 4)

o Raw device (akses langsung, tanpa caching, digunakan umumnya pada database)

· Pada character device:

o Mendukung USB mouse dan USB keyboard

o

Tidak ada komentar: