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.
- 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.
Sumber : rizarulham.wordpress.com