Kernel merupakan sebuah program yang merupakan inti dari sistem operasi komputer. Ia memiliki kontrol penuh atas segala sesuatu yang terjadi dalam sistem. Sebuah kernel dapat dibandingkan dengan shell (seperti bash, csh atau ksh dalam sistem operasi mirip Unix), yang merupakan bagian terluar dari sistem operasi dan program yang berinteraksi dengan perintah pengguna.
Kernel
sendiri tidak berinteraksi langsung dengan pengguna, melainkan
berinteraksi dengan program shell dan lainnya serta dengan perangkat
hardware pada sistem, termasuk prosesor (juga disebut central
processing unit atau CPU), memori dan disk drive.
Kernel
adalah bagian utama dari sistem operasi, me-load ke memori saat boot
(yaitu, startup sistem), dan tetap selama seluruh sesi komputer,
karena perbaikan diwajibkan terus menerus. Dengan demikian, penting
untuk itu untuk sekecil mungkin, sementara masih menyediakan semua
layanan penting yang dibutuhkan oleh bagian lain dari sistem operasi
dan oleh berbagai program aplikasi.
Karena
sifat kritis, kode kernel biasanya dimuat dalam lingkungan dari
memori, yang mencegah dari penggandaan oleh yang lain, bagian-bagian
yang lebih sering digunakan dari sistem operasi atau program aplikasi.
Kernel melakukan tugasnya, seperti melaksanakan proses dan penanganan
interrupt, dalam ruang kernel, sedangkan semua pengguna biasa, seperti
menulis teks dalam editor teks atau menjalankan program dalam GUI
(antarmuka pengguna grafis), dilakukan dalam ruang pengguna . Pemisahan
ini dibuat untuk mencegah data pengguna dan data kernel dari gangguan
satu sama lain dan dengan demikian mengurangi kinerja atau
menyebabkan sistem menjadi tidak stabil (dan mungkin saling tabrakan).
Ketika komputer crash, sebenarnya kernel telah rusak. Jika hanya satu program rusak tetapi sisa sistem tetap beroperasi, maka kernel sendiri tidak rusak. crash adalah situasi di mana suatu program, baik aplikasi pengguna atau bagian dari sistem operasi, berhenti menjalankan fungsi yang diharapkan dan menanggapi bagian lain dari sistem. Program ini mungkin muncul kepada pengguna untuk membekukan. Jika program tersebut sangat diperlukan untuk pengoperasian kernel, seluruh komputer dapat kios atau mematikan.
Kernel
menyediakan layanan dasar bagi semua bagian lain dari sistem operasi,
biasanya termasuk manajemen memori, manajemen proses, manajemen file
dan I / O (input / output) manajemen (yaitu, mengakses perangkat
periferal). Layanan ini diminta oleh bagian lain dari sistem operasi
atau program aplikasi melalui serangkaian program interface tertentu
disebut sebagai sistem pemanggilan.
Proses
manajemen, mungkin aspek yang paling jelas dari kernel kepada
pengguna, bagian dari kernel yang memastikan bahwa setiap proses
mendapatkan giliran untuk berjalan di prosesor dan bahwa proses
individu tidak saling mengganggu dengan menulis keruang memori. Sebuah
proses, juga disebut sebagai tugas, dapat didefinisikan sebagai
turunan pelaksana (yaitu, menjalankan) dari sebuah program.
Kebanyakan
kernel telah dikembangkan untuk sistem operasi tertentu, dan biasanya
hanya ada satu versi yang tersedia untuk setiap sistem operasi.
Sebagai contoh, Microsoft Windows 2000, kernel hanya untuk Microsoft
Windows 2000 dan Microsoft Windows 98, kernel hanya untuk Microsoft
Windows 98. Linux jauh lebih fleksibel dalam bahwa ada banyak versi
dari kernel Linux, dan masing-masing dapat dimodifikasi dengan cara
yang tak terhitung oleh pengguna informasi.
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.
Monolithic
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.
Microkernel
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.
Hybrid kernel
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.
Exokernel
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. Contoh exokernel terdapat pada nemesis, masih
sistem operasi konsep, ditulis oleh university of cambridge, university of glasgow, citrix systems, dan the swedish institute of computer science.