Di sebagian besar sistem operasi komputer, kernel adalah komponen utama. Ini adalah jembatan antara pengguna dan aplikasi dan perangkat keras komputer. Ini juga merupakan mekanisme yang memungkinkan komputer menangani banyak pengguna dan banyak tugas secara bersamaan. Jenis kernel adalah kernel monolitik, mikrokernel, kernel hybrid, nanokernel dan exokernel.
Kernel mengelola semua sumber daya sistem komputer. Ini termasuk penyimpanan jangka panjang, unit pemrosesan pusat (CPU), memori jangka pendek dan perangkat input dan output. Ketika aplikasi membutuhkan salah satu dari sumber daya ini, kernel menyediakan sumber daya dan menyelesaikan permintaan.
Penanganan sumber daya ini memungkinkan sistem operasi menjadi multi-pengguna dan multitasking. Sistem operasi sebenarnya tidak melakukan lebih dari satu tugas pada satu waktu. Alih-alih, kernel mengalihkan tugas dengan kecepatan tinggi sehingga komputer tampak melakukan banyak tugas. Kernel juga bertanggung jawab untuk memastikan bahwa sumber daya yang digunakan oleh satu pengguna atau proses tidak melanggar permintaan pengguna atau proses lain.
Ada dua jenis utama kernel adalah kernel monolitik dan mikrokernel. Kernel monolitik menggunakan metode pengawasan manajemen sumber daya di mana semua layanan sistem operasi dijalankan di ruang alamat yang sama, yang disebut ruang kernel. Beberapa kernel monolitik dapat memuat dan membongkar modul yang dapat dieksekusi. Ini memperluas kemampuan sistem operasi sambil tetap mempertahankan jumlah minimum kode yang berjalan di ruang kernel pada satu waktu.
Mikrokernel hanya menjalankan layanan sistem operasi dalam jumlah minimal, seperti manajemen memori, manajemen utas, dan komunikasi antar-proses di ruang kernel. Semua layanan lain, seperti driver perangkat, antarmuka pengguna, dan manajemen file, dijalankan di ruang pengguna. Mikrokernel sangat meminimalkan jumlah kode yang berjalan dalam mode kernel.
Kernel hybrid adalah kombinasi dari monolitik dan mikrokernel. Sebagian besar layanan sistem sistem operasi dijalankan di ruang kernel, seperti kernel monolitik. Ada layanan lain, seperti sistem file dan sistem windowing, yang dijalankan di ruang pengguna.
Jenis kernel lainnya adalah nanokernel dan exokernel. Nanokernel menggunakan driver perangkat untuk menangani hampir semua layanan. Exokernel menggunakan program untuk mengalokasikan sumber daya fisik.