Pengertian Kernel
Sebuah sistem operasi mempunyai sebuah
bagian sangat penting yang disebut dengan kernel. Kernel merupakan inti
dari sistem operasi dan bagian yang pertama kali diload 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.
Jenis-jenis Kernel
Kernel dibagi menjadi 4 kategori yaitu
monolithic, microkernel, hybrid kernel, dan exokernel. Setiap kategori
tersebut memiliki perbedaan disain, sehingga masing-masing memiliki
kelebihan dan kekurangan dalam pengimplementasiannya.
Kernel monolithic memiliki seluruh servis
dasar dari sistem operasi didalamnya. Kelebihan dari disain monolithic
adalah efisiensi, sehingga performa sistem juga meningkat. Hal ini
dikarenakan keseluruhan proses yang memerlukan fungsi kernel terjadi
didalam kernel itu sendiri. Monolithic juga memiliki kelemahan, salah
satunya dalam hal stabilitas, dimana kemungkinan sistem crash lebih
besar. Contoh kernel berdisain monolithic yang paling dikenal terdapat
dalam sistem operasi linux dan microsoft windows 9x.
Disain microkernel hanya
mengimplemetasikan servis dasar minimal yang diperlukan, yaitu manajemen
pengalamatan memori, manajemen proses/thread, dan inter-process
communication. Kelebihan microkernel adalah stabilitas sistem lebih
terjaga dan kekurangannya adalah komunikasi antara proses menjadi lebih
rumit sehingga sistem menjadi tidak efisien. Contoh kernel berdisain
microkernel terdapat dalam sistem operasi mac os x, minix, qnx ,dan
lain-lain.
Disain hybrid kernel menyerupai
microkernel tetapi dengan tambahan kode yang menyebabkan hybrid kernel
dapat berjalan lebih cepat dari microkernel. Hal tersebut yang juga
merupakan kelebihan dari hybrid kernel. Contoh kernel berdisain hybrid
kernel terdapat dalam sistem operasi microsoft windows nt, windows 2000,
dan windows xp.
Disain exokernel masih merupakan disain
eksperimental dan dalam tahap penelitian sehingga belum dipakai secara
luas. Perbedaan konsep disain exokernel dengan disain kernel lainnya
adalah exokernel memiliki fungsi perlindungan dan pembagian resource
untuk hardware. Kelebihan exokernel adalah bisa dimasukkan library
sistem operasi lebih dari satu sehingga bisa menjalankan program-program
untuk sistem operasi yang berbeda secara bersamaan.