Kernel adalah inti dari sistem operasi linux, yang menjembatani interaksi antara program-program (aplikasi-aplikasi) di linux dengan perangkat keras (hardware) komputer. Kernel memiliki peranan dan fungsi yang sangat penting karena kernel dapat berinteraksi langsung dengan perangkat keras (hardware) dan juga dapat berinteraksi langsung dengan program-program user (kinux applications).
Berikut ini beberapa alasan - alasan yang mungkin menjadi alasan utama mengapa melakukan kompilasi kernel, yaitu :
- Untuk mengoptimasikan kernel linux terhadap hardware anda
- Untuk mengoptimasikan sistem anda untuk aplikasi-aplikasi spesifik seperti Oracle atau MySQL database server atau sebagai sistem yang akan ditujukan sebagai dedicated router atau firewall
- Untuk meningkatkan security dengan menggunakan kernel patches seperti grsecurity atau LIDS
- Agar sistem anda dapat mendukung hardware terbaru yang ingin anda gunakan
- Ingin menggunakan fitur-fitur spesifik seperti LVM atau sistem file NTFS dan fitur-fitur lainnya
- Memperbaiki atau menghilangkan bugs yang ada pada kernel anda saat ini
- Ingin memperbaharui atau mengupgrade versi kernel agar up to date
Kernel linux dibagi dalam dua tipe kernel, yaitu :
1.Monolithic kernel
Kernel linux dengan tipe seperti ini memungkinkan semua driver hardware atau fitur-fitur sistem dikompilasi langsung kedalam kernel atau diintegrasikan (built-in) menjadi satu kesatuan utuh sebagai sistem operasi linux
Keuntungan dati tipe kernel ini adalah sebagai berikut :
- Interaksi atau komunikasi hardware dengan sistem lebih cepat
- Dari segi security system, relatif lebih aman
2.Modular Kernel
Kernel linux dengan tipe ini memungkinkan driver hardware atau fitur-fitur sistem dikompilasi sebagai modul-modul dan tersimpan didalam /lib/modules/versi-kernel-x-x (catatan : kata versi-kernel-x-x diganti dengan nomor versi kernel yang digunakan)
Keuntungan dari tipe kernel ini adalah :
- Kernel menjadi lebih fleksibel, anda dapat memuat modul kedalam kernel sebagaimana yang anda   butuhkan saja.
- Pergantian hardware lebih mudah karena bersifat modular dimana anda dapat menyertakan driver seluruh hardware sebagai modul dengan hanya melakukan probing suatu modul (menggunakan perintah-perintah insmod atau modprobe)
Coba periksa package-package dibawah ini sudah terinstall atau belum, dengan menjalankan  perintah :
# rpm -qa | grep gcc
# rpm -qa | grep ncurses-devel 
jika package diatas belum terinstall maka jalankan perintah :
# yum -y install gcc
# yum -y install ncurses-devel
Download kernel terbaru di http://www.kernel.org/pub/linux/kernel/v2.6 dan untuk tutorialnya dapat anda baca di http://howtoforge.com
setelah didownload jalankan perintah :
# mkdir /usr/src/kernels (buat direktori kernels di /usr/src)
# cd /usr/src/downloads
# cp /root/Desktop/linux-2.6.28.tar.bz2 (disini saya pakai contoh kernel linux-2.6.28.tar.bz2)
# tar -xjvf linux-2.6.28.tar.bz2
# cd linux-2.6.28.tar.bz2
# make mproper
# cp /boot/config-`uname -r` .config
# make menuconfig
Didalam perintah make menuconfig pilih :
- Processor type and features-Processor Family
 (tentukan jenis processor yang sesuai dengan spesifikasi komputer kita)
- Maximum number of CPUs (2.512)
 (isi sesuai jumlah processor pada spesifikasi komputer kita)
- File Systems
 (sesuaikan dengan partisi linux pada komputer kita)
- Device Drivers
 (aktifkan semua driver yang ada pada komputer kita)
- Cryptographic API
 (buat semuanya [M] karena dikernel lama belum ada)
           Catatan :   [*] artinya embedded ke kernel
                       [M] artinya dijadikan modul ke kernel     
Setelah semua konfigurasi yang kita inginkan sudah kita load lalu kita jalankan perintah di konsole sebagai berikut :
# make all modules_install install
# reboot (melakukan restart pada komputer anda)
Selamat Menikmati kernel terbaru anda... :)