Struktur sistem operasi berbasis kernel monolitik, mikrokernel, dan kernel hibrida
**Kernel hibrida** merupakan arsitektur kernel yang menggabungkan aspek-aspek yang terdapat pada mikrokernel dan kernel monolitik dalam pengembangan perangkat lunak sistem 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

Arsitektur keluarga sistem operasi Windows NT terdiri atas dua modus (modus pengguna dan modus kernel) yang masing-masing memiliki beragam modul yang berbeda.
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) 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.

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.

### Kernel Plan 9

Lihat pula: Plan 9 from Bell Labs
#### Deskripsi

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.

#### 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" 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.

Linus Torvalds mengatakan atas hal ini:

> 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’.
> 
> 

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??"
> 
>

Implementasi
------------

* Kernel BeOS
	+ Kernel Haiku
* Syllable
* BSD
	+ DragonFly BSD
	+ Kernel XNU (core of Darwin, used in Mac OS X)
* kernel NetWare
* Kernel Plan 9
	+ Kernel Inferno
* Kernel NT (digunakan pada sistem operasi Windows NT, 2000, 2003; XP, Vista, 2008, 7)
	+ Kernel ReactOS

Lihat pula
----------

* Exokernel
* Nanokernel

Catatan
-------

1. 1 2 3  "MS Windows NT Kernel-mode User and GDI White Paper". Microsoft Corporation. 2007. Diakses tanggal 2007-03-01.
2. ↑  Silberschatz, Abraham (2005). *Operating System Concepts; 7th Edition* (PDF). Hoboken, New Jersey: John Wiley & Sons Inc. ISBN 978-0-471-69466-3.  Parameter `|coauthors=` yang tidak diketahui mengabaikan (`|author=` yang disarankan) (bantuan)
3. ↑  Collyer, Geoff. "Why Plan 9 matters" (PDF). Diarsipkan dari versi asli (PDF) tanggal 2006-06-29. Diakses tanggal 2006-09-12.
4. ↑  "Linus Torvalds, Real World Technologies Discussion Forum". Diakses tanggal 2006-05-09.
5. ↑  "Sonny Rao, Real World Technologies Discussion Forum". Diakses tanggal 2006-05-08.
6. ↑  An Overview of the NetWare Operating System(2007-02-07)

Referensi
---------

* (Inggris) Linus Torvalds on Real World Tech
* (Inggris) Hybrid Kernel category criticised
* (Inggris) Sysinternals article about the NT Native API

| * l
* b
* s
Sistem operasi |
| --- |
| Kernel | 

|  |  |
| --- | --- |
| Arsitektur komputer | 
* Eksokernel
* Kernel hibrida
* Kernel monolitik
* Mikrokernel
* Nanokernel

 |
| Komponen | 
* Modul kernel
* Pemacu peranti
* Ruang kernel
* Ruang pengguna

 |

 |
| Manajemen proses | 
* Proses
* *Context switch*
* *Cooperative multitasking*
* *CPU modes*
* Interupsi
* Mode terproteksi
* Multiprogramming
* Penjadwalan
* *Preemptive multitasking*
* *Supervisor mode*
* Tugas ganda (*multitasking*)

 |
| Manajemen memori | 
* *General protection fault*
* *Paging*
* Proteksi memori
* Segmentasi memori
* *Segmentation fault*
* Unit manajemen memori

 |
| Akses penyimpanan dan sistem berkas | 
* *Boot loader*
* Defragmentasi
* Partisi
* Atribut berkas
* Inode
* Sistem berkas virtual (VFS)

 |
| Contoh | 
* AmigaOS
* AROS
* Android
* BeOS
* BSD
* Chrome OS
* CP/M
* Dex OS
* GNU
* Haiku
* Hurd
* KolibriOS
* Linux
* Mac OS
* MenuetOS
* Microsoft Windows
* MINIX
* MS-DOS
* OS/2
* QNX
* ReactOS
* Redox
* RISC OS
* Solaris
* UNIX
* Visi On

 |
| Konsep lainnya | 
* Antarmuka pemrograman aplikasi (API)
* Antarmuka pengguna grafis (GUI)
* Jaringan komputer
* Lapisan abstraksi perangkat keras (HAL)
* Live CD
* Live USB
* Sejarah sistem operasi

 |