Linux memiliki jenis kernel monolitik yang berarti semua komponen kernel dikompile dalam satu kernel besar , berbeda dengan Windows yang menganut jenis kernel micro kernel ,dimana komponen kernel di pisah-pisah dan dapat di masukan tanpa harus melewati proses kompile ulang kernel . Kapan kita membutuh kan kompile kernel , adalah ketika kita akan menambahkan fitur baru .Kesempatan kali ini kita akan mencoba menambahkan vitur pada kernel agar kernel kita support vserver , kernel yang saya gunakan adalah vannila kernel versi 2.6.32 dan patch kernel yang berversi patch-2.6.32-vs2.3.0.36.26 ,kernel di kompile untuk di gunakan di arsitektur yang menggunaan prosesor intel , distro yang saya gunakan adalah Slackware 13.0 .
Versi kernel default yang di gunakan oleh slackware 13.0 adalah 2.6.29.5-smp dan kernel yang akan saya pasang adalah versi 2.6.32 dapat di download di www.kernel.org sedang kan patch kernel atau tambalan untuk menambah vitur nya dapat di download di linux-vserver.org.
Setelah kita memiliki kedua bahan yang kita butuhkan yaitu kernel dan patch , kita dapat segera memulai proses kompile kernel ini .
1. Kopi kan source kode kernel ke directory /usr/src/ dengan perintah
cp /tempat-kernel/linux-2.6.32.tar.bz2 /usr/src .
2. Masuk ke directory /usr/src lalu extract kernel source code dengan perintah tar -jxvf linux-2.6.32.tar.bz2.
3. Kita akan mulai melakukan penambahan vitur dengan jalan di patch , masuk ke directory hasil extract tadi dan lakukan patch dengan perintah
patch -p1 < /tempat-patch/patch-2.6.32-vs2.3.0.36.26.diff
pastikan tidak ada error saat anda melakukan patch ini .
4. Sekarang kita siap mengconfigurasi kernel untuk kemudian di kompile , pertama-tama kopikan file konfigurasi standart slackware yang terdapat di directory boot dengan perintah cp /boot/config-huge-smp-2.6.29.5-smp .config , lalu kita bisa mulai melakukan configurasi , ketikan make menuconfig untuk mulai konfigurasi .
5. Saat ini kita hanya akan sedikit melakukan perubahan pada setting kernel , Pada Bagian
Linux VServer --->
[*] Automatically Assign Loopback IP
[*] Automatic Single IP Special Casing
[*] Enable COW Immutable Link Breaking
[ ] Enable Virtualized Guest Time
[ ] Enable Guest Device Mapping
[*] Enable Proc Security
[*] Enable Hard CPU Limits
[ ] Avoid idle CPUs by skipping Time
[ ] Limit the IDLE task
Persistent Inode Tagging (UID24/GID24) --->
[ ] Tag NFSD User Auth and Files
[*] Honor Privacy Aspects of Guests
[*] VServer Warnings
[ ] VServer Debugging Code
yang di tandai hitam (Avoid idle CPUs by skipping Time) ,hilangkan tanda bintang dengan menekan spasi , opsi ini jika di enable akan menyebabkan kernel tidak membiarkan cpu memiliki waktu diam (idle). Setelah selesai pilih “exit” dibagian bawah kemudian pilih “Save an Alternate Configuration File” untuk menyimpan configurasi , pilih ok dan sekarang keluar dari menu configurasi dengan memeilih exit.
6. Setelah kita menyesuaikan sedikit setting kita siap untuk melakukan compile kernel ,selain kita mengompile kernel kita juga akan melakukan kompile module kernel dan installasi module kernel dengan gabungan perintah :
make bzImage && make modules && make modules_install. Proses ini akan memakan waktu yang cukup lama tergantung spesifikasi komputer yang di gunakan .
7.Setelah semua proses yang selesai yang akan kita lakukan selanjut nya adalah installasi kernel baru ,kopi kan image kernel ke directory boot dengan perintah cp arch/x86/boot/bzImage /boot/vmlinuz-vserver .Edit file lilo.conf agar saat boot kita dapat memilih mengunakan kernel yang baru dengan perintah
nano /etc/lilo.conf .
berikut contoh file lilo.conf sebelum di edit
image = /boot/vmlinuz
root = /dev/sda3
label = Linux
read-only
other = /dev/sda1
label = Windows
table = /dev/sda
ini merupakan hasil setelah di edit
image = /boot/vmlinuz
root = /dev/sda3
label = Linux
read-only
image = /boot/vmlinuz-vserver
root = /dev/sda3
label = Linux-vserver
read-only
other = /dev/sda1
label = Windows
table = /dev/sda
Simpan file tersebut dengan menekan F2 dan di ikuti Y , setelah di edit kita lakukan intallasi Lilo dengan peritah lilo -L , sekarang kita sudah mempunyai kernel baru dengan dukungan vserver , untuk mencobanya kita bisa merestart dan pilih Linux-vserver saat boot .