Kernel
adalah sebuah bagian sangat penting yang ada dalam sistem operasi. Kernel
merupakan inti dari sistem operasi dan bagian yang pertama kali di load ke
memori ketika sistem mulai dan tetap berjalan sampai sistem berhenti. Servisnya
diperlukan oleh bagian dari sistem operasi lainnya dan program aplikasi.
Kernel
menjalankan servis dasar dari sistem operasi seperti manajemen memori,
manajemen proses, manajemen file, dan manajemen i/o (input/output). Untuk
menjalankan servis-servis tersebut, kernel terdiri dari bermacam isi tergantung
dari sistem operasinya, tetapi umumnya pasti ada scheduler, supervisor,
interrupt handler, dan memory manager. Scheduler berfungsi untuk mengatur
pembagian waktu dan urutan dari proses-proses yang ingin mendapatkan servis
dari kernel. Supervisor berfungsi untuk memberikan servis oleh kernel kepada
proses yang sudah dijadwalkan. Interrupt handler berfungsi untuk menangani
seluruh permintaan dari hardware yang ingin mendapatkan servis dari kernel.
Memori manager berfungsi untuk mengatur alokasi alamat di memori.
Semua
sistem operasi yang ada mempunyai kernel didalamnya, biasanya sebuah kernel
didisain untuk sebuah sistem operasi yang spesifik. Kernel yang didisain untuk
microsoft windows 98 hanya akan dipakai oleh sistem operasi tersebut. Linux
juga mempunyai kernel yang didisain untuknya tetapi user bisa memodifikasinya
sesuai kebutuhannya masing-masing. Hal tersebut juga yang membuat terminologi
kernel lebih dikenal di linux karena sifat kernelnya yang terbuka, berbeda
dengan sistem operasi lainnya yang kernelnya tidak bisa dimodifikasi.
Fungsi Kernel
Fungsi
utama kernel adalah untuk mengelola sumber daya komputer dan memungkinkan
program lain untuk menjalankan dan menggunakan sumber daya komputer tersebut.
Jenis Kernel
1.
kernel
monolitik
berguna
mengintegrasikan banyak fungsi didalam kernel dan menyediakan secara penuh
perangkat keras yang berada dibawah sistem operasi.
2.
mikrokernel
menyediakan
sedikit saja dari perangkat keras dan menggunakan aplikasi yang berjalan
diatasnya untuk melakukan beberapa fungsi lain.
3.
kernel
hybrida
pendekatan
disain mikrokernel. pada kernel ini memiliki beberapa kode tambahan didalam
ruang kernel untuk meningkatkat performanya.
4.
exokernel
menyediakan
hardware abstrack secara minimal, sehingga program dapat mengakses hardware
secara langsung.
Cara Kerja Kernel
1. Pengurusan proses.
Tugas utama sebuah system pengoperasian kernel ialah
membenarkan aplikasi yang lain untuk berjalan dan menyokong mereka dengan
ciri-ciri tambahan, seperti pengabstrakan perkakasan, untuk menjalan proses,
kernel mesti memuat turun failnya kepada ingatan, menyediakan stack untuk program dan pergi ke lokasi yang diberikan di
dalam program, ini memulakan perjalanan sesebuah program, cara ini dipanggil scheduling. Dalam sistem berbilang kerja, kernel secara
asasnya akan memberikan setiap program sedikit masa dan menukarkan dari proses
ke proses dengan cepat dengan itu ia akan muncul kepada pengguna jika proses
ini dijalankan secara terus menerus. Kernel mesti juga menyediakan proses ini
untuk berkomunikasi, ini dikenali sebagai inter-process
communication. Ini kemungkinan ada
multipemprosesan yang menyokong kernel tersebut.
2. Pengurusan ingatan.
Kernel mempunyai akses penuh dalam ingatan sistem dan menyediakan cara-cara untuk membenarkan userland
program untuk mengakses memori ini dengan selamat. Cara pertama untuk mengurus
ingatan ialah virtual addressing, biasanya arkib dengan mukasurat atau segmentation. Virtual addressingmembenarkan kernel untuk memberikan alamat fizikal
yang muncul sebagai alamat yang lain iaitu virtual address, ini membenarkan setiap program mempercayai ia
hanya satu program (sebahagian daripada kernel) yang berjalan, dan ini
mengelakkan aplikasi daripada berlanggar antara satu sama lain.
3. Pengurusan peranti.
Dalam arahan untuk melakukan sesuatu tugas, kernel
perlu untuk mengakses perbagai peranti yang bersambungan di dalam komputer,
sebagai contoh, dalam arahan untuk memaparkan pengguna apa-apa sahaja, pemacu
monitor perlu untuk muncul, peranti ini boleh dikawal melalui pemacu, di mana
ia mesti dibuat oleh pembangun dan/atau disediakan oleh pengilang sesuatu
peranti tersebut.
Pengurus peranti pertamanya akan melakukan semakan keatas bas perkakasan
yang berbeza (seperti USB, PCI), dalam arahan unruk mengesan semua peranti yang
telah dipasang dan kemudiannya mencari pemacu yang bersesuaian, selepas ini,
semuanya bergantung kepada jenis kernel dan rekaan kernel.
4. Sistem panggilan.
Dalam arahan untuk menyediakan kerja yang berguna, program userland mesti
mempunyai akses kepada semua perkhidmatan yang disediakan oleh kernel. Ini
dilaksanakan secaar berbeza-beza oleh kernel yang berlainan, tetapi mesti
disediakan oleh C library, dimana ia menukarkan kelemahan kesemua system
panggilan, sama ada diberikan atau melalui memori yang dikongsi.
5. Shell.
Shell adalah perisian atau aplikasi yang menjadi alat untuk perhubungan
antara pangguna untuk berhubung dengan sistem operasi, shella akan membaca apa
sahaja yang dimasukkan oleh pengguna dan memahaminya sebagai arahan untuk
menjalankan perisian lain, memanipulasi fail, dan memberikan output. Shell juga
turut dikenali sebagai command line interface.
Langkah-Langkah kompilasi Kernel
Langkah-langkahnya sebagai berikut :
1. Silahkan unduh
terlebih dahulu kernel linux sesuai dengan versi kernel yang ada di komputer
atau laptop anda, di : http://download.filesystems.org/linux/kernel/v3.0/ Atau di http://www.kernel.org/
2. Masuk ke root dan
login sebagai Administrator.
$ sudo su
$ Masukkan password
Masuk ke direktori Download, untuk
melihat file yang sudah di unduh.
Catatan : Nama file yang kami unduh
disini linux-3.3.22.tar.bz2
3. Ekstrak kernel
tersebut
# tar -xf linux-3.3.22.tar.bz2
4. Pindahkan hasil
extract ke direktory /usr/src/
# mv linux-3.3.22 /usr/src/
5. Install paket
dependensi untuk dukungan kompilasi nantinya.
# aptitude install build-essential
qt4-dev-tools ncurses-dev
-> Pilih Y (untuk install), pilih N
(untuk membatalkan)
6. Masuk ke directory
/usr/src/ untuk mengecek kembali kernel yang sudah di extract sebelumnya.
# cd /usr/src/
7. dan lakukan perintah
ls untuk melihat list nya.
# ls
8. Jika sudah ada
silahkan masuk ke direktori tersebut dengan cara :
# cd linux-3.3.22
9. Konfigurasi dari
kernel yang akan di compile. Pada pengaturan ini Saya setting konfigurasinya
sesuai dengan perangkat yang ada pada laptop Saya.
-> Prosesnya silahkan lihat video
dibawah ini.
# make menuconfig
-> Masuk ke halaman konfigurasi settingan kernel.
10. Untuk melakukan proses
compile, gunakan perintah :
# make
Catatan : Proses ini akan memakan waktu
yang lumayan lama.
11. Membuat paket modul
# make modules
Jika terjadi error, gunakan perintah berikut :
# make CONFIG_DEBUG_SECTION_MISMATCH=y
Perintah ini akan melakukan re-compile terhadap paket-paket error yang
sudah dikompile sebelumnya, ini akan memakan waktu yang lumayan lama juga.
12. Menginstall
modul-modul kernel
# make modules_install
13. Installasi kernel
# make install
14. Membuat initial
ramdisk image
# cd /boot
# mkinitramfs -o initrd.img-3.3.22
15. Perbaharui grub
# update-grub
16. Proses selesai dan
restart untuk melihat perubahan
# reboot