Pengertian
Kernel dan jenis-jenisnya
PENGERTIAN KERNEl
adalah
bagian utama dari sistem operasi, me-load ke memori saat boot (yaitu, startup
sistem), dan tetap selama seluruh sesi komputer, karena perbaikan
diwajibkan terus menerus. Dengan demikian, penting untuk itu untuk sekecil
mungkin, sementara masih menyediakan semua layanan penting yang dibutuhkan oleh
bagian lain dari sistem operasi dan oleh berbagai program aplikasi.
Kernel
merupakan sebuah program yang merupakan inti dari sistem operasi komputer. Ia
memiliki kontrol penuh atas segala sesuatu yang terjadi dalam sistem. Sebuah
kernel dapat dibandingkan dengan shell (seperti bash, csh atau ksh dalam sistem
operasi mirip Unix), yang merupakan bagian terluar dari sistem operasi dan
program yang berinteraksi dengan perintah pengguna.
v
JENIS –JENIS KERNEL
Kernel dibagi menjadi 4 kategori yaitu monolithic,
microkernel, hybrid kernel, dan exokernel. Setiap kategori tersebut memiliki
perbedaan disain, sehingga masing-masing memiliki kelebihan dan kekurangan
dalam pengimplementasiannya.
1. MONOLITHIC KERNEL
Pendekatan monolithic kernel didefinisikan sebagai sebuah
antarmuka virtual yang berada pada tingkat tinggi di atas perangkat keras,
dengan sekumpulan primitif atau system call untuk mengimplementasikan
layanan-layanan sistem operasi, seperti halnya manajemen proses,
konkurensi (concurrency), dan manajemen memori pada modul-modul kernel
yang berjalan di dalam mode supervisor.
Monolithic
kernel mengintegrasikan banyak fungsi di dalam kernel dan menyediakan lapisan
abstraksi perangkat keras secara penuh terhadap perangkat keras yang berada di
bawah sistem operasi.
Di bawah ini ada beberapa sistem
operasi yang menggunakan Monolithic kernel:
- Kernel sistem operasi UNIX tradisional, seperti halnya kernel dari sistem operas UNIX keluarga BSD (NetBSD, BSD/I, FreeBSD, dan lainnya).
·
Kernel sistem operasi
GNU/Linux, Linux.
·
Kernel sistem operasi
Windows (versi 1.x hingga 4.x; kecuali Windows NT).
2.
MICROKERNEL
Pendekatan
Microkernel berisi sebuah abstraksi yang sederhana terhadap hardware, dengan
sekumpulan primitif atau system call yang dapat digunakan untuk membuat
sebuah sistem operasi agar dapat berjalan, dengan layanan-layanan seperti
manajemen thread, komunikasi antar address space, dan komunikasi antar
proses. Layanan-layanan lainnya, yang biasanya disediakan oleh kernel, seperti
halnya dukungan jaringan, pada pendekatan microkernel justru diimplementasikan
di dalam ruangan pengguna (user-space), dan disebut dengan server.
Server
adalah sebuah program, seperti halnya program lainnya. Server dapat mengizinkan
sistem operasi agar dapat dimodifikasi hanya dengan menjalankan program atau
menghentikannya. Sebagai contoh, untuk sebuah mesin yang kecil tanpa dukungan
jaringan, server jaringan (istilah server di sini tidak dimaksudkan sebagai
komputer pusat pengatur jaringan) tidak perlu dijalankan.
Dalam teorinya, sistem operasi yang
menggunakan microkernel disebut jauh lebih stabil dibandingkan dengan
monolithic kernel, karena sebuah server yang gagal bekerja, tidak akan
menyebabkan kernel menjadi tidak dapat berjalan, dan server tersebut akan dihentikan
oleh kernel utama. Akan tetapi, dalam prakteknya, bagian dari system state
dapat hilang oleh server yang gagal bekerja tersebut, dan biasanya untuk
melakukan proses eksekusi aplikasi pun menjadi sulit, atau bahkan untuk
menjalankan server-server lainnya
Sistem operasi yang menggunakan microkernel umumnya secara dramatis
memiliki kinerja di bawah kinerja sistem operasi yang menggunakan monolithic
kernel. Hal ini disebabkan oleh adanya 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 microkernel:
- IBM AIX, sebuah versi UNIX dari IBM
- Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi
- Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP, OPENSTE Mac OS/X
- Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukas
- Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone, handheld device embedded device, dan PDA Phone.
3.
HYBRID KERNEL
\
Hybrid kernel aslinya adalah
microkernel yang memiliki kode yang tidak menunjukkan bahwa kernel
tersebut adalah microkernel di dalam ruangan kernel-nya. Kode-kode tersebut
ditaruh di dalam ruangan kernel agar dapat dieksekusi lebih cepat dibandingkan
jika ditaruh di dalam ruangan user. Hal ini dilakukan oleh para arsitek sistem
operasi sebagai solusi awal terhadap masalah yang terjadi di dalam microkernel:
kinerja.
Beberapa orang banyak yang bingung dalam membedakan antara Hybrid kernel
dan monolithic kernel yang dapat memuat modul kernel setelah proses booting,
dan cenderung menyamakannya. Antara hybrid kernel dan monolithic kernel jelas
berbeda. Hybrid kernel berarti bahwa konsep yang digunakannya diturunkan dari
konsep desain monolithic kernel dan microkernel. Hybrid kernel juga memiliki
secara spesifik memiliki teknologi pertukaran pesan (message passing) yang
digunakan dalam microkernel, dan juga dapat memindahkan beberapa kode yang
seharusnya bukan kode kernel ke dalam ruangan kode kernel karena alasan
kinerja.
Di bawah ini adalah beberapa sistem operasi yang menggunakan
Hybrid kernels:
- BeOS, sebuah sistem operasi yang memiliki kinerja tinggi untuk aplikasi multimedia.
- Novell NetWare, sebuah sistem operasi yang pernah populer sebagai sisteM operasi jaringan berbasis IBM PC dan kompatibelnya.
- Microsoft Windows NT (dan semua keturunannya).
4.EXOKERNEL
Sebenarnya, Exokernel bukanlah
pendekatan kernel sistem operasi yang umum—seperti halnya microkernel atau
monolithic kernel yang populer, melainkan sebuah struktur sistem operasi yang
disusun secara vertikal.
Ide
di balik exokernel adalah untuk memaksa abstraksi yang dilakukan oleh developer
sesedikit mungkin, sehingga membuat mereka dapat memiliki banyak keputusan
tentang abstraksi hardware. Exokernel biasanya berbentuk sangat kecil, karena
fungsionalitas yang dimilikinya hanya terbatas pada proteksi dan penggandaan
sumber daya.
Kernel-kernel klasik yang populer
seperti halnya monolithic dan microkernel melakukan abstraksi terhadap hardware
dengan menyembunyikan semua sumber daya yang berada di bawah hardware
abstraction layer atau di balik driver untuk hardware. Sebagai contoh, jika
sistem operasi klasik yang berbasis kedua kernel telah mengalokasikan sebuah
lokasi memori untuk sebuah hardware tertentu, maka hardware lainnya tidak akan
dapat menggunakan lokasi memori tersebut kembali.
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 blok
di dalam hard disk. Tugas kernel hanya memastikan bahwa sumber daya yang
diminta itu sedang berada dalam keadaan kosong.belum digunakan oleh yang
lainnya dan tentu saja mengizinkan aplikasi untuk mengakses sumber daya
tersebut. Akses hardware pada tingkat rendah ini mengizinkan para programmer
untuk mengimplementasikan sebuah abstraksi yang dikhususkan untuk sebuah
aplikasi tertentu, dan tentu saja mengeluarkan sesuatu yang tidak perlu dari
kernel agar membuat kernel lebih kecil, dan tentu saja meningkatkan performa.
Exokernel biasanya menggunakan library yang disebut dengan
libOS untuk melakukan abstraksi. libOS memungkinkan para pembuat aplikasi
untuk menulis abstraksi yang berada pada level yang lebih tinggi, seperti
halnya abstraksi yang dilakukan pada sistem operasi tradisional, dengan
menggunakan cara-cara yang lebih fleksibel, karena aplikasi mungkin 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.
0 komentar:
Posting Komentar