Kernel hibrida merupakan arsitektur kernel yang menggabungkan aspek-aspek yang terdapat pada mikrokernel dan kernel monolitik dalam pengembangan perangkat lunaksistem operasi. Pengkategorian kernel hibrida dipandang kontroversial karena karakteristiknya yang sangat mirip dengan karakteristik kernel monolitik sehingga beberapa kalangan mencibir pengkategorian kernel hibrida hanya sebatas diferensiasi untuk tujuan pemasaran. Umumnya pengkategorian yang lebih diterima adalah kernel monolitik dan mikrokernel (termasuk dalam hal ini nanokernel dan exokernel yang dipandang sebagai versi mikrokernel yang lebih ekstrem).
Gagasan di belakang kernel hibrida adalah membuat suatu struktur kernel yang serupa seperti mikrokernel, namun diimplementasikan sebagai kernel monolitik. Berbeda dengan mikrokernel, semua (atau setidaknya hampir semua) layanan sistem terdapat pada ruang kernel dan bukan pada ruang pengguna. Seperti halnya pada kernel monolitik, tidak ada beban penurunan unjuk kerja seperti pada mikrokernel atas mekanisme penyampaian pesan, dan mekanisme proses lainnya, juga memiliki pemahaman yang sama seperti kernel monolitik, tidak ada keuntungan apapun atas penyediaan layanan pada ruang pengguna.
Contoh
Kernel NT
Contoh yang sangat dikenal atas implementasi kernel hibrida adalah arsitektur dari jajaran sistem operasi windows berbasis NT (Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, dan Windows 7). Windows berbasis NT sering kali diklasifikasikan sebagai kernel hibrida (atau makrokernel[1]) daripada sebagai kernel monolitik sebab subsistem emulasi yang terdapat pada NT berjalan pada modus pengguna, dan bukan pada modus kernel seperti yang terdapat pada kernel monolitik. Dan lebih jauh karena tujuan disainnya serupa dengan tujuan disain Mach (salah satu mikrokernel generasi pertama). Sebaliknya, alasan bahwa NT bukanlah termasuk sebagai mikrokernel karena sebagian besar komponen sistem berjalan pada alamat ruang yang sama dengan kernel, seperti halnya pada disain kernel monolitik.
Deksripsi
Disain Windows NT memiliki banyak kesamaan dengan yang terdapat pada Mach, salah satu mikrokernel generasi pertama, dan bagian yang terpenting adalah memiliki struktur atas sejumlah koleksi modul yang berkomunikasi melalui antarmuka yang umum dikenal, yang pada mikrokernel kecil hal ini terbatas pada fungsi-fungsi inti seperti penanganan interup level-utama, penjadualan thread, dan sinkronisasi proses-proses sederhana. Hal tersebut memungkinkan tiap-tiap modul untuk menggunakan mekanisme pemanggilan langsung ataupun menggunakan mekanisme IPC sebagai media komunikasi antar modul. Kesamaan tujuan disain lainnya dengan Mach termasuk dalam hal ini dukungan terhadap bermacam-macam arsitektur, yaitu sebuah kernel dengan tingkat abstraksi yang cukup untuk memungkinkan beragam karakteristik sistem operasi diimplementasikan pada tingkatan di atasnya, dan pengorganisasian yang berbasis objek.[1][2]
Alasan bahwa NT bukanlah sebuah sistem berbasis mikrokernel dalam hal ini karena hampir semua subsistem menyediakan layanan sistem, termasuk bagian eksekutif, berjalan pada modus kernel (dalam ruang alamat yang sama dengan mikrokernel), dan bukan pada modus pengguna seperti yang terdapat pada disain mikrokernel. Atribut ini yang membuat NT serupa dengan versi-versi awal Mach, demikian juga sistem komersial lainnya yang berbasis Mach.
Salah satu dari tujuan utama disain kernel Plan 9 adalah untuk menyediakan seluruh sumber daya seperti berkas dan penggunaan protokol komunikasi tunggal baik untuk akses terhadap sumberdaya lokal dan remot. Kernel Plan 9 menggunakan baik modus kernel dan modus pengguna. Contoh subsistem yang berjalan pada modus kernel adalah device driver, sementara yang berjalan pada modus pengguna adalah subsistem manajemen jaringan (IP stack), konsol-serial, kotak surat. Disebabkan karena antarmuka keduanya yang sama menyebabkan modul-modul baru bisa dipindahkan atau ditambahkan ke dalam/di luar kernel tanpa melakukan perubahan pada sistem.[3]
Klasifikasi
Disebabkan karena penggunaan yang intensif atas peladen berkas pada modus pengguna bersama-sama dengan modul sistem pada modus kernel, Plan 9 menjadi salah satu kandidat untuk disertakan sebagai kernel hibrida.
Kontraversi
Seperti yang telah disebutkan di atas, kernel hibrida memiliki banyak kemiripan seperti kernel monolitik yakni tidak ada penurunan unjuk kerja pada beberapa mekanisme yang ada, dan tidak memiliki layanan di ruang pengguna.
Hal ini menimbulkan kontraversi, apakah dengan membuat satu struktur kernel yang serupa seperti mikrokernel namun diimplementasikan sebagai kernel monolitik membuat satu perbedaan yang fundamental yang mengharuskan sebuah kategori baru ditambahkan?
Pendukung
Microsoft biasanya menggunakan pengertian "mikrokernel", kadang kala "mikrokernel yang dimodifikasi", atau "makrokernel"[1] saat menjelaskan tentang kernel dalam arsitektur jajaran sistem operasi Windows NT. Keseluruhan arsitektur dikatakan sebagai komposisi atas "mikrokernel termodifikasi", pengendali, HAL, dan GDI/GDI+ seluruhnya berjalan pada ruang kernel.
Oposisi
Banyak pakar sistem operasi dan kernel tidak mengakui kategori ini dan menganggapnya tidak memiliki arti, semata-mata untuk tujuan pemasaran.
As to the whole ‘hybrid kernel’ thing — it’s just marketing. It’s ‘oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let’s use a cool name and try to imply that it has all the PR advantages that that other system has’.[4]
Sonny Rao sebagai anggota tim IBM LTC Kernel Performance File/IO mengatakan:
It’s wrong... I think this talk... was born from some kind of half-assed marketing game to try and make XXX kernel seem ‘more advanced.’ ‘Micro’ and ‘hybrid’ are always better, more advanced than ‘Monolithic’ right??"[5]