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”.
Label:
Sistem Operasi,
Tugas Kuliah
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar