PENGERTIAN KERNEL
Kernel
adalah sebuah perangkat lunak yang membuat komunikasi / mediator antara
aplikasi komputer dan perangkat keras, yang menyediakan pelayanan sistem
seperti pengaturan memori untuk proses-proses yang sedang berjalan, pengaturan
file-file, input-output terhadap dan dari suatu device dan masih banyak lagi
fungsi tambahan yang lainnya. Intinya adalah kernel merupakan suatu penghubung
(antara software dan hardware).
Definisi
yang lain mengatakan Kernel merupakan bagian inti dari suatu sistem operasi,
dengan kata lain dia adalah jantung dari sistem operasi. Kernel ini
mengendalikan kerja dasar dari sistem operasi dan yang erat kaitannya dengan
perangkat keras, misal pengelolaan memori (memori management), pengelolaan
proses (process management) termasuk job scheduling dan context switching,
pengelolaan Input Output (I/O) termasuk file system dan driver perangkat I/O
serta beberapa fungsi mendasar lainnya seperti kontrol akses. Karena akses
terhadap perangkat keras terbatas, sedangkan ada lebih dari satu program yang
harus dilayani dalam waktu yang bersamaan, maka kernel juga bertugas untuk
mengatur kapan dan berapa lama suatu program dapat menggunakan satu bagian perangkat
keras tersebut. Hal tersebut dinamakan sebagai multiplexing.
Kernel
sebagai jantungnya sistem operasi menyediakan format yang sesuai dengan
kebutuhan anda. Sebelum kita memilih kernel sebaiknya kita dapat menentukan
terlebih dahulu, kira-kira format kernel yang bagaimana yang sesuai dengan
kebutuhan yang diinginkan. Sistem kernel ada berupa Modular dan Monolitik
,sebagai contoh jika sering gonta-ganti hardware, sistem kernel yang modular
akan lebih cocok daripada sistem kernel yang builtin (monolitik). Kedua system
ini mempunyai keuntungan dan kelebihan masing-masing.
- Kernel Modular
Seperti pada
kernel Linux mempunyai rancangan modular. Pada saat boot time, hanya minimal
resident kernel yang di-load ke dalam memori. Ini di karenakan hanya
modul-modul yang dibutuhkan saja serta di inginkan user yang akan diproses,
sebuah modul kernel dapat secara dinamik di-load ke dalam memori.
Kemudian
secara periode spesifik modul tidak ingin di aktifkan maka modul dapat di hapus
dari memori. Mekanisme dynamic loading ini dinamakan kmod. Dengan kata lain
modul tidak akan di-load apabila tidak diinginkan dan modul akan di gunakan
apabila di butuhkan. Salah satu keuntungan kernel yang bersifat modular,
onta-ganti hardware menjadi lebih mudah, karena tinggal menge-probe suatu
modul, atau jika belum ada hanya tinggal mem-build satu modul saja. Kerugiannya
adalah relatif rentan terhadapat masalah security, karena biasanya script
kiddies memasukkan suatu modul ke dalam kernel (dengan harapan proses yang
dimilikinya tidak diketahui oleh admin sistem yang bersangkutan)
- Kernel buildin(Monolitik)
Dengan
Kernel monolitik lebih baik dari segi security, sebuah kernel builtin
(monolitik) akan relatif aman. Namun dari segi kemudahan, jika kita menambah
atau mengganti suatu hardware, maka otomatis harus mengkompilasi ulang kernel
.Namun demikian, skema kernel bagaimana yang lebih sesuai, itu bisa
diklarifikasi sesuai kebutuhan dan implementasi sistem yang digunakan. Jika
kernel monolitik ingin di jadikan modular, itu bisa dilakukan oleh dari kernel
monolitik, dengan cara setelah konfigurasi ditetapkan dalam kernel monolitik
dan di kompilasi maka dapat di ambil, bagian-bagian mana saja yang akan
dipisahkan untuk dijadikan modul-modul.
Fungsi
kernel :
- melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman.
- Karena akses terhadap perangkat keras terbatas, sedangkan ada lebih dari satu program yang harus dilayani dalam waktu yang bersamaan, maka kernel juga bertugas untuk mengatur kapan dan berapa lama suatu program dapat menggunakan satu bagian perangkat keras tersebut. Hal tersebut dinamakan sebagai multiplexing.
- membantu eksekusi aplikasi dan mendukungnya dengan fitur abstraksi hardware.
Selanjutnya,
para arsitek sistem operasi mengembangkan kernel sistem operasi yang pada
akhirnya terbagi menjadi empat bagian yang secara desain berbeda, sebagai
berikut:
1. Kernel
monolitik
Kernel
monolitik mengintegrasikan banyak fungsi di dalam kernel dan menyediakan
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 microkernel yang dimodifikasi. Pada hybrid
kernel, terdapat beberapa tambahan kode di dalam ruangan kernel untuk
meningkatkan performanya.
4.
Exokernel
Exokernel
menyediakan hardware abstraction secara minimal, sehingga program dapat
mengakses hardware secara langsung. Dalam pendekatan desain exokernel, library
yang dimiliki oleh sistem operasi dapat melakukan abstraksi yang mirip dengan
abstraksi yang dilakukan dalam desain monolithic kernel.
Tidak ada komentar:
Posting Komentar