Kernel adalah program komputer yang merupakan jantung dan inti dari Sistem Operasi. Karena Sistem Operasi memiliki kendali atas sistem, Kernel juga memiliki kendali atas semua yang ada dalam sistem. Ini adalah bagian terpenting dari Sistem Operasi.
Setiap kali sistem dimulai, Kernel adalah program pertama yang dimuat setelah bootloader karena Kernel harus menangani sisa dari hal sistem untuk Sistem Operasi. Kernel tetap berada dalam memori sampai Sistem Operasi dimatikan.
Kernel bertanggung jawab untuk tugas-tugas tingkat rendah seperti manajemen disk atau penyimapanan, manajemen memori, manajemen tugas, manajemen daya, dan lainnya. Kernel juga menghubungkan antarmuka antara pengguna dan komponen perangkat keras sistem. Ketika suatu proses membuat permintaan ke Kernel, maka itu disebut System Call.
Kernel dilengkapi dengan Kernel Space terlindungi yang merupakan area memori terpisah dan area ini tidak dapat diakses oleh program aplikasi lain. Jadi, kode Kernel dimuat ke dalam Kernel Space yang dilindungi ini. Terlepas dari ini, memori yang digunakan oleh aplikasi lain disebut User Space atau ruang pengguna. Karena ini adalah dua ruang yang berbeda dalam memori, jadi komunikasi di antara mereka sedikit lebih lambat.
Fungsi Kernel
Setelah Anda mengetahui apa itu kernel, tentu Anda juga harus mengerti fungsi dari kernel itu sendiri. Berikut ini adalah fungsi dari Kernel:
Akses sumber daya Komputer: Kernel dapat mengakses berbagai sumber daya komputer seperti CPU, perangkat I / O, dan sumber daya lainnya. Karena berfungsi sebagai jembatan antara pengguna dan sumber daya sistem.
Manajemen Sumber Daya: Merupakan tugas Kernel untuk berbagi sumber daya antara berbagai proses sedemikian rupa sehingga ada akses yang seragam ke sumber daya oleh setiap proses yang terjadi pada perangkat.
Manajemen Memori: Setiap proses membutuhkan ruang memori. Jadi, memori harus dialokasikan dan dialokasikan untuk pelaksanaannya. Semua manajemen memori ini dilakukan oleh Kernel.
Manajemen Perangkat: Perangkat periferal yang terhubung dalam sistem digunakan oleh proses. Jadi, alokasi perangkat ini dikelola oleh Kernel.
Mode Kernel dan Mode Pengguna
Ada instruksi tertentu yang perlu dijalankan oleh Kernel saja. Jadi, CPU menjalankan instruksi ini hanya dalam Mode Kernel. Sebagai contoh, manajemen memori harus dilakukan dalam Mode-Kernel saja. Saat dalam Mode Pengguna, CPU mengeksekusi proses yang diberikan oleh pengguna di User Space.
Jenis-jenis Kernel
Secara umum, ada lima jenis Kernel. Berikut adalah Jenisnya :
1. Kernel Monolitik
kernel monolitik adalah adalah jensi kernel yang memegang semua hak istimewa untuk mengakses perangkat input / output (I / O), memori, gangguan perangkat keras, dan proses CPU atau CPU stack. Kernel monolitik cenderung lebih besar dari kernel lain karena mereka berurusan dengan begitu banyak aspek pemrosesan komputer pada level terendah, dan oleh karena itu harus memasukkan kode yang berhubungan dengan banyak perangkat, I / O dan saluran interupsi, dan operator perangkat keras lainnya.
Bentuk kernel ini adalah dasar untuk Linux, Unix, MS-DOS dan Mac OS. Sistem operasi yang lebih baru biasanya menggunakan kernel hybrid untuk memudahkan pemeliharaan dan peningkatan sistem operasi.
Kelebihan:
Sistem kernel ini menyediakan penjadwalan CPU, penjadwalan memori, manajemen file melalui Panggilan sistem saja.
Eksekusi dari proses ini cepat karena tidak ada ruang memori yang terpisah untuk pengguna dan kernel.
Kekurangan:
Jika ada layanan yang gagal, maka itu menyebabkan kegagalan sistem.
Jika ada layanana atau proses baru akan ditambahkan maka seluruh Sistem Operasi perlu dimodifikasi.
2. Mikrokernel
Sebuah Mikrokernel berbeda dari kernel Monolitik, karena dalam Microkernel layanan pengguna dan layanan kernel diimplementasikan ke dalam ruang yang berbeda yaitu menggunakan Ruang Pengguna dan Ruang Kernel. Karena i menggunakan Ruang Pengguna dan Ruang Kernel secara terpisah, sehingga mengurangi ukuran Kernel dan ini, dan artinya juga mengurangi ukuran Sistem Operasi.
Karena menggunakan ruang yang berbeda untuk layanan pengguna dan layanan kernel, maka komunikasi antara aplikasi dan layanan dilakukan dengan bantuan parsing pesan dan pada gilirannya, mengurangi kecepatan eksekusi.
Kelebihan:
Jika ada layanan atau tugas baru yang akan ditambahkan maka dapat dengan mudah ditambahkan.
Kekurangan:
Karena menggunakan Ruang Pengguna dan Ruang Kernel secara terpisah, sehingga komunikasi di antaranya dapat mengurangi waktu eksekusi secara keseluruhan.
3. Kernel Hibrid
Kernel Hibrid adalah kombinasi Kernel Monolitik dan Mikrokernel. Itu membuat penggunaan kecepatan Kernel Monolitik dan modularitas Microkernel.
Kernel hibrid adalah kernel mikro yang memiliki beberapa kode “non esensial” di ruang kernel agar kode dapat berjalan lebih cepat daripada di ruang pengguna. Jadi, beberapa layanan seperti network stack atau sistem file dijalankan di ruang Kernel untuk mengurangi overhead kinerja, tetapi tetap saja, ia menjalankan kode kernel sebagai server di ruang pengguna.
4. Nanokernel
Dalam Nanokrnel, seperti namanya, seluruh kode kernel sangat kecil yaitu kode yang mengeksekusi dalam mode istimewa perangkat keras sangat kecil. Istilah nanokernel digunakan untuk menggambarkan kernel yang mendukung resolusi clock nanosecond.
5. Exokernel
Exokernel adalah kernel Sistem Operasi yang dikembangkan oleh MIT Parallel and Distributed Operating Systems group. Di sini dalam jenis kernel ini, perlindungan sumber daya dipisahkan dari manajemen dan pada gilirannya, menghasilkan kemungkina kita untuk melakukan penyesuaian khusus aplikasi.
Dalam Exokernel, idenya bukan untuk mengimplementasikan semua secara abstrak. Tetapi idenya adalah untuk memaksakan abstraksi sesedikit mungkin dan dengan melakukan itu abstraksi harus digunakan hanya ketika dibutuhkan.
Jadi, tidak ada abstraksi paksa yang ada di Exokernel dan ini adalah fitur yang membuatnya berbeda dari Kernel Monolitik dan Mikrokernel. Namun kekurangannya adalah desainnya yang kompleks. Desain Exokernel sangat kompleks.
Kesimpulan
Itulah pengertian lengkap tentang apa itu kernel dan juga berbagai jenis kernel yang banyak digunakan. Setelah Anda mengerti apa itu kernel dan Anda adalah seorang pengembang yang sedang membangun sistem, Anda bisa memilih salah satu jenis kernel di atas sesuai kebutuhan sistem yang Anda bangun.