Kernel


         Dalam dunia komputer, kerenel merupakan sebuah intisari dari sebuah sistem informasi
yang mengatur penggunaan memory, I/O device, proses-proses manajemen sistem file dan lain-lain.
Kernel juga menyediakan sekumpulan layanan yang dapat digunakan untuk mengakses sebuah
kernel yang disebut system call. System call ini dapat digunakan untuk mengimplementasikan
berbagai macam layanan yang diberikan oleh sebuah sistem operasi.program sistem dan program
lainya yangdijalankan diatas sebuah kernel disebut user mode. Kernel di sistem operasi linux terdiri
atas beberapa bagian yang penting, seperti manager proses, manager memory, device booster,
system file bosster, network manager , dan lain-lain. Namun dari semua itu yang terpenting adalah
managemen proses dan management memory. Managemen memory meliputi penggunaan memory
kawasan pertukaran , bagian-bagian kernel, dan buffer chace . Managemen proses menangani
penggunaan proses-proses dan schedule proses.
Untuk menjalankan sebuah komputer kita tidak harus menggunakan kernel sistem operasi. Sebuah
program dapat saja langsung di-load dan dijalankan diatas mesin sebuah komputer, yaitu ketika
pembuat program ingin melakukan pekerjaan tanpabantuan abstrak perangkat keras atau bantuan
sistem operasi. Teknik ini digunakan oleh komputer generasi awal, sehingga bila kita ingin
berpindah dari satu program ke program yang lain, kita harus mereset dan meload kembali
program-program tersebut.1
Ada 4 kategori kernel:
a. Monolithic kernel
Merupakan kernel yang menyediakan abstraksi perangkat keras yang kaya dan tangguh.
Pendekatan kernel monolitik 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. Meskipun jika setiap modul memiliki layanan operasi-operasi tersebut
terpisah dari modul utama, integrasi kode yang terjadi di dalam monolithic kernel sangatlah kuat,
dan karena semua modul berjalan di dalam address space yang sama, sebuah bug dalam salah satu
modul dapat merusak keseluruhan sistem. Akan tetapi, ketika implementasi dilakukan dengan
benar, integrasi komponen internal yang sangat kuat tersebut justru akan mengizinkan fitur-fitur
yang dimiliki oleh sistem yang berada di bawahnya dieksploitasi secara efektif, sehingga membuat
sistem   operasi   dengan   monolithic   kernel   sangatlah   efisien—meskipun   sangat   sulit   dalam
pembuatannya. Pada sistem operasi modern yang menggunakan monolithic kernel, seperti halnya
Linux,   FreeBSD,   Solaris,   dan   Microsoft  Windows,   dapat   memuat   modul-modul   yang   dapat
dieksekusi   pada   saat   kernel   tersebut   dijalankan   sehingga   mengizinkan   ekstensi   terhadap
kemampuan kernel sesuai kebutuhan, dan tentu saja dapat membantu menjaga agar kode yang
berjalan di dalam ruangan kernel (kernel- space) seminim mungkin.
Di bawah ini ada beberapa sistem operasi yang menggunakan Monolithic kernel:
• Kernel sistem operasi UNIX tradisional, seperti halnya kernel dari sistem operasi 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).
b. Microkernel
merupakan kernel yang menyediakan hanya sekumpulan kecil abstrak hardware secara
sederhana dan menggunakan beberapa aplikasi yang disebut dengan server untuk menyediakan
1 herysmkintegralhidayatullah.blogspot.com/2012/03/apa-itu-kernel.html
fungsi-fungsi yang lainya. Pendekatan mikrokernel berisi sebuah abstraksi yang lebih sederhana
terhadap sebuah hardware dengan sekumpulan system call yang dapat digunakan untuk membuat
sebuah sistemoperasi agar dapat berjalan, dengan layanan-layanan seperti manajemen trhead,
komunikasi   antar   address   space   dan   komunikasi   antar   proses.layanan   lainya   yang   biasanya
disediakan   oleh   kernel,   seperti   halnya   dukungan   jaringan,   pada   pendekatan   ini   justru
diimplementasikan di dalam sebuah ruangan pengguna (user-space), yang disebut dengan server.
Seperti halnya program lainya, server dapat memberikan sebuah izin kepada sebuah sistem operasi
agar dapat dimodifikasi hanya dengan menjalankan program atau menghentikanya. Pada sistem
operasi yang masih tradisional dan masih menggunakan monolithic kernel, dapat mengakibatkan
pengguna harus melakukan rekompilasi terhadap kernel, yang tentu saja akan terasa sulit bagi user
awam yang masih belum terbiasa. 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, OPENSTEP, dan
Mac OS/X
• Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukasi
• Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone, handheld device,
embedded device, dan PDA Phone.
c. Hybrid (Modifikasi dari Microkernel)
Kernel yang mempunyai dengan microkernel, tetapi ia juga memasukkan beberapa kode
tambahan di dalam kernel agar ia menjadi lebih cepat. Beberapa orang banyak yang bingung dalam
membedakan antara kernel hibrida dan kernel monolitik yang dapat memuat modul kernel setelah
proses booting, dan cenderung menyamakannya. Antara kernel hibrida dan kernel monolitik jelas
berbeda. Kernel hibrida berarti bahwa konsep yang digunakannya diturunkan dari konsep desain
kernel monolitik dan mikrokernel. Kernel hibrida juga memiliki secara spesifik memiliki teknologi
pertukaran   pesan   (message   passing)   yang   digunakan   dalam   mikrokernel,   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 kernel
hibrida:
• 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).
d. Exokernel
adalah   kernel   yang   tidak   menyediakan   sedikitpun   mengenai   hardware,   namun   ia
menyediakan sekumpulan library yang menyediakan fungsi-fingsi akses kepada sebuah perangkat
keras secara langsung. Kernel ini biasanya menggunakan library tersebut dengan libOS untuk
melakukan sebuah abstraksi. Hal ini memungkinkan 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.   Salah satu contoh implementasi kernel ialah pada system operasi
windows.   Pada   sistem   operasi  Windows,   kernel   ditangani   oleh   file   kernel32.dll.   Kernel   ini
menangani manajemen memori, operasi masukan / keluaran dan interrupt. Ketika boot Windows,
kernel32.dll di-load ke dalam spasi protected memory sehingga spasi memorinya tidak digunakan
oleh aplikasi lain. Apabila ada aplikasi yang mencoba mengambil spasi memori kernel32.dll, akan
muncul pesan kesalahan “invalid page fault”.

0 komentar:

Posting Komentar

 
© 2012 A-corner | Blogger.com