Apa itu kernel?

Dalam ilmu komputer, kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman.
Karena akses terhadap perangkat keras terbatas, sedangkan ada lebih dari satu program yang harus dilayani dalam waktu yang bersamaan, maka kernel juga bertugas untuk mengatur kapan dan berapa lama suatu program dapat menggunakan satu bagian perangkat keras tersebut. Hal tersebut dinamakan sebagai multiplexing.
Akses kepada perangkat keras secara langsung merupakan masalah yang kompleks, oleh karena itu kernel biasanya mengimplementasikan sekumpulan abstraksi hardware. Abstraksi-abstraksi tersebut merupakan sebuah cara untuk menyembunyikan kompleksitas, dan memungkinkan akses kepada perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada akhirnya memudahkan pekerjaan programer.
Untuk menjalankan sebuah komputer kita tidak harus menggunakan kernel sistem operasi. Sebuah program dapat saja langsung diload dan dijalankan diatas mesin ‘telanjang’ komputer, yaitu bilamana pembuat program ingin melakukan pekerjaannya tanpa bantuan abstraksi perangkat keras atau bantuan sistem operasi. Teknik ini digunakan oleh komputer generasi awal, sehingga bila kita ingin berpindah dari satu program ke program lain, kita harus mereset dan meload kembali program-program tersebut.
Pada Linux, bahasa pemrograman yang digunakan untuk membangun sebuah kernel adalah bahasa C. Karena linux merupakan sistem operasi yang open source, kode sumber (source code) kernelnya dapat dilihat serta dimodifikasi sesuka hati, sesuai dengan kebutuhan sistem.

Mengapa 64 bit?

Kebanyakan orang menggunakan Linux adalah untuk memenuhi kebutuhan komputasi setingkat server, beberapa service pada suatu server memerlukan RAM yang cukup besar. Apabila service tersebut memerlukan kapasitas RAM sebesar 8 GB, sistem operasi yang berjalan pada 32 bit hanya mampu mengenali sebesar 4 GB saja. Maka dari itu, di sinilah kelebihan dari sistem operasi yang berjalan pada 64 bit, sistem tersebut dapat mengenali RAM yang memiliki kapasitas lebih dari 4 GB, kemampuan tersebut di Linux biasa disebut dengan istilah BIGMEM.
Tentunya, BIGMEM hanyalah salah satu dari sekian banyak kemampuan yang dimiliki oleh kernel 64 bit.

Proses Kompilasi Kernel

Sebelum melakukan kompilasi kernel, ada beberapa package yang harus diinstall terlebih dahulu. Untuk menginstall package-package tersebut, kita dapat menggunakan tools apt-get :

apt-get install kernel-package bzip2 fakeroot libncurses-dev

Setelah melakukan proses instalasi package-package menggunakan apt-get seperti di atas, proses selanjutnya adalah mendownload source kernel yang akan dipakai. Source kernel bisa didapatkan dari website http://kernel.org :

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.12.tar.bz2

Setelah mendownload, selanjutnya adalah kita lakukan proses dekompresi file source kernel tersebut :

tar jxvf linux-2.6.31.12.tar.bz2

Setelah melakukan proses dekompresi, kita dapat memilih module-module serta fungsi-fungsi kernel yang ingin diintegrasikan pada kernel yang akan dikompilasi ini :

cd /usr/src/linux-2.6.31.12
make menuconfig

Setelah memilih module-module yang akan diintegrasikan, kita sudah siap pada proses utama dalam kompilasi kernel. Proses ini merupakan proses mengcompile file source kernel menjadi object module yang digunakan oleh kernel. Pada kebanyakan distro Linux selain debian, proses ini membutuhkan beberapa langkah, seperti make clean, make dep, make bzImage, make modules, make modules_install dan proses mengcopy vmlinuz ke directory /boot. Di sinilah letak kemudahan yang ditawarkan oleh Debian, untuk melakukan langkah-langkah tadi, hanya dibutuhkan dua baris command saja seperti berikut :

fakeroot make-kpkg clean
make-kpkg –rootcmd fakeroot –cross-compile – –arch=amd64 –initrd kernel_image

Proses di atas akan menghasilkan file package di /usr/src dengan nama linux-image-2.6.31.12_2.6.31.12-10.00.Custom_i386.deb. Langkah selanjutnya adalah menginstall file package tersebut menggunakan command dpkg :

cd /usr/src
dpkg –i linux-image-2.6.31.12_2.6.31.12-10.00.Custom_i386.deb

Proses di atas melakukan pengcopyan module-module kernel serta file vmlinuz ke tempatnya masing-masing serta mengubah file konfigurasi pada boot loader untuk menyisipkan kernel baru. Apabila kita menggunakan GRUB sebagai boot loadernya, maka jika kita melihat isi dari file /boot/grub/menu.lst, tentunya kita akan menemukan versi kernel yang baru dikompilasi tadi.

Referensi:

http://wiki.debian.org/DebianAMD64Faq

http://id.wikipedia.org/wiki/Kernel_(ilmu_komputer)