Dalam dunia informatika kita sering mendengar tentang kernel. Apa itu kernel? Kernel adalah suatu perangkat Lunak yang menjadi bagian utama dari sebuah sistem operasi. Tugas kernel adalah mengakses perangkat keras komputer agar bisa digunakan dengan aman. Akses terhadap perangkat keras secara langsung merupakan masalah yang kompleks. biasanya kernel mengimplementasikan sekumpulan abstraksi hardware. Abstraksi tersebut merupakan sebuah cara untuk menyembunyikan sebuah kompleksitas, dan memungkinkan akses pada perangkat keras menjadi mudah dan seragam.
Para ahli sistem informasi mengembangkan kernel sistem informasi yang pada akhirnya terbagi menjadi empat bagian yang secara desain berbeda.
1. Kernel Monolitik. Kernel monolitik mengintegrasikan banyak fungsi di dalam kernel dan lapisan abstraksi perangkat keras secara penuh terhadap perangkat keras yang berada di bawah sistem operasi.
2. Mikrokernel. Mikrokernel menyediakan sedikit saja dari abstraksi perangkat keras dan menggunakan aplikasi yang berjalan di atasnya ( yang disebut dengan server ) untuk melakukan beberapa fungsionalitas lainnya.
3. Kernel Hibrida. Kernel hibrida adalah pendekatan desain mikrokernel yang dimodifikasi. Pada kernel hibrida, terdapat beberapa kode di ruangan kernel. untuk meningkatkan peformnya.
4. Exokernel. Exokernel menyediakan hardware Abstraction secara minimal, sehingga software dapat mengakses hardware secara langsung. Dalam pendekatan desain exokernel, librari yang dimiliki sistem operasi dapat melakukan abstraksi yang mirip dengan abstraksi yang dilakukan dengan monolithic kernel.
KERNEL MONOLITIK
Kernel Monolitik didefinisikan sebagai sebuah antar muka visual yang berada di tingkat tinggi di atas perangkat keras, dengan sekumpulan primitif atau sistem call untuk mengimplementasikan layanan-layanan sistem operasi contohnya managemen proses, konkurency, dan manajemen memori pada modul-modul kernel yang berjalan di dalam mode supervisor.
Contoh sistem operasi yang menggunakan monolitik kernel.
1. Kernel sistem operasi Unix tradisional, seperti kernel dari sistem operasi Unix dari BSD (NetBSD, BSD/I, FreeBSD, dan lainnya)
2. Kernel sistem operasi GNU/Linux, Linux.
3. Kernel sistem operasi Windows versi 1.x sampai 4.x, kecuali Windows NT.
MIKROKERNEL
Pendekatan mikrokernel berisi sebuah abstraksi yang sederhana terhadap hardware dengan sekumpulan system call yang dapat digunakan untuk membuat sebuah sistem operasi agar dapat berjalan, dengan layanan-layanan seperti managemen thead, komunikasi antar addres space, dan komunikasi antar proses.
Di dalam mikrokernel juga mendukung sebuah jaringan yang diimplementasikan dalam ruangan pengguna, yang disebut server. Server adalah sebuah program, seperti halnya program lainnya. Sistem dapat mengizinkan sistem operasi agar dapat dimodifikasi hanya dengan menjalankan program atau menghentikannya.
Secara teori, sistem operasi yang menggunakan mikrokernel jauh lebih stabil dari yang menggunakan monolitik kernel, karena server yang gagal bekerja tidak dapat menyebabkan kernel tidak dapat berjalan, dan kernel tersebut dihentikan oleh kernel utama. Akan tetapi dalam prakteknya, bagian dari system stage dapat hilang oleh server, yang gagal bekerja tersebut, dan akhirnya menjalankan aplikasi pun menjadi sulit, atau bahkan menjalankan server-server lainnya.
Sistem operasi yang menggunakan mikrokernel, umumnya bekerja di bawah sistem operasi yang menggunakan monolitik kernel. Hal ini disebabkanterjadinya overhead yang terjadi akibat proses input/output dalam kernel yang ditujukan untuk mengganti konteks (context switch) untuk memindahkan data antara aplikasi dan server.
Beberapa sistem operasi yang menggunakan mikrokernel.
1. IBM AIX, sebuah versi Unix dari IBM.
2. Amoeba, sebuah kernel yang dikembangkan dengan tujuan edukasi.
3. Minix, kernel yang dikembangkan oleh Andrew Tanembaum, yang mendasari Linus Torvalds membuat Linux.
4. Symbian OS, sebuah sistem operasi yang dikembangkan oleh Nokia
KERNEL HIBRIDA
Kernel Hibrida aslinya adalah mikrokernel yang memiliki kode yang menunjukkan kernel tersebut bukan mikrokernel di ruangan kernelnya. Kode-kode tersebut ditaruh di ruangan kernelagar dapat dieksekusi lebih cepat dibanding jika kode ditaruh di ruang user.
Beberapa sistem operasi yang menggunakan kernel hibrida.
1. BeOS, sebuah sistem operasi yang memiliki kinerja tinggi untuk multi media.
2. Novell Netware, sebuah sistem operasi yang pernah populer sebagai sistem operasi jaringan berbasis IBM PC dan kompatibelnya.
3. Microsoft Windows NT, dan semua turunannya.
EXOKERNEL
Exokernel bukanlah pendekatan sistem operasi yang umum, melainkan sebuah struktur sistem operasi yang disusun secara vertikal. Exokernel memaksa abstraksi yang dilakukan oleh developer sesedikit mungkin, sehingga membuat mereka memiliki banyak keputusan tentang abstraksi hardware.
Kernel klasik seperti monolitik kernel dan mikrokernel melakukan abstraksi terhadap hardware dengan menyembunyikan semua sumber daya yang berada di bawah hardware abstraction layer atau dibalik driver untuk hardware. Exokernel mengizinkan akses terhadap hardware secara langsung pada tingkat yang rendah, aplikasi dan abstraksi dapat melakukan request sebuah alamat memori spesifik baik itu berupa lokasi alamat physical memory dan tentu saja meningkatkan peforma.
Exokernel biasanya menggunakan library yang disebut dengan libOS untuk melakukan abstraksi, libOS memungkinkan para pembuat aplikasi untuk membuat abstraksi yang berada pada level yang lebih tinggi. seperti halnya yang dilakukan pada sistem operasi tradisional, dengan cara-cara yang dilakukan lebih fleksibel karena aplikasi memiliki abstraksinya masing-masing.
Secara teori, sebuah sistem operasi berbasis exokernel, dapat membuat sistem operasi yang berbeda seperti halnya Linux, UNIX, dan Windows, dapat berjalan di atas sistem operasi tersebut.