ARTIKEL kernel
Kernel
adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem
operasi. Tugasnya 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.
Akses kepada
perangkat keras secara langsung merupakan masalah yang kompleks, oleh karena
itu kernel biasanya mengimplementasikan sekumpulan abstraksi hardware.
Abstraksi-abstraksi tersebut merupakan sebuah cara untuk menyembunyikan
kompleksitas, dan memungkinkan akses kepada perangkat keras menjadi mudah dan
seragam. Sehingga abstraksi pada akhirnya memudahkan pekerjaan programer.
Untuk
menjalankan sebuah komputer kita tidak harus menggunakan kernel sistem operasi.
yaitu bilamana pembuat program ingin melakukan pekerjaannya tanpa bantuan
abstraksi perangkat keras atau bantuan sistem operasi. Teknik ini digunakan
oleh komputer generasi awal, sehingga bila kita ingin berpindah dari satu
program ke program lain, kita harus mereset dan meload kembali program-program
tersebut.
Dari keempat
kategori kernel yang disebutkan diatas, kernel Linux termasuk kategori monolithic
kernel. Kernel Linux berbeda dengan sistem Linux. Kernel Linux merupakan sebuah
perangkat lunak orisinil yang dibuat oleh komunitas Linux, sedangkan sistem
Linux, yang dikenal saat ini, mengandung banyak komponen yang dibuat sendiri
atau dipinjam dari proyek pengembangan lain.
Kernel Linux
pertama yang dipublikasikan adalah versi 0.01, pada tanggal 14 Maret 1991.
Sistem berkas yang didukung hanya sistem berkas Minix. Kernel pertama dibuat
berdasarkan kerangka Minix (sistem UNIX kecil yang dikembangkan oleh Andy
Tanenbaum). Tetapi, kernel tersebut sudah mengimplementasi proses UNIX secara
tepat.
Pada tanggal
14 Maret 1994 dirilis versi 1.0, yang merupakan tonggak sejarah Linux. Versi
ini adalah kulminasi dari tiga tahun perkembangan yang cepat dari kernel Linux.
Fitur baru terbesar yang disediakan adalah jaringan. Kernel 1.0 juga memiliki
sistem berkas yang lebih baik tanpa batasan-batasan sistem berkas Minix.
Sejumlah dukungan perangkat keras ekstra juga dimasukkan ke dalam rilis ini.
Dukungan
perangkat keras telah berkembang termasuk diantaranya floppy-disk, CD-ROM,
sound card, berbagai mouse, dan keyboard internasional. Dukungan juga
diberikan terhadap modul kernel yang loadable dan unloadable
secara dinamis.Satu tahun kemudian dirilis kernel versi 1.2. Kernel ini
mendukung variasi perangkat keras yang lebih luas. Pengembang telah
memperbaharui networking stack untuk menyediakan support bagi protokol
IPX, dan membuat implementasi IP lebih lengkap dengan memberikan fungsi accounting
dan firewalling. Kernel 1.2 ini merupakan kernel Linux terakhir yang
PC-only. Konsentrasi lebih diberikan pada dukungan perangkat keras dan
memperbanyak implementasi lengkap pada fungsi-fungsi yang ada.
Pada bulan
Juni 1996, kernel Linux 2.0 dirilis. Versi ini memiliki dua kemampuan baru yang
penting, yaitu dukungan terhadap multiple architecture dan multiprocessor
architectures. Kode untuk manajemen memori telah diperbaiki sehingga
kinerja sistem berkas dan memori virtual meningkat. Untuk pertama kalinya, file
system caching dikembangkan ke networked file systems, juga sudah
didukung writable memory mapped regions. Kernel 2.0 sudah memberikan
kinerja TCP/IP yang lebih baik, ditambah dengan sejumlah protokol jaringan
baru. Kemampuan untuk memakai remote netware dan SMB (Microsoft
LanManager) network volumes juga telah ditambahkan pada versi terbaru
ini. Tambahan lain adalah dukungan internal kernel threads, penanganan dependencies
antara modul-modul loadable, dan loading otomatis modul
berdasarkan permintaan (on demand). Konfigurasi dinamis dari kernel pada run
time telah diperbaiki melalui konfigurasi interface yang baru dan
standar.
Fungsi
kernel :
1. melayani bermacam program aplikasi untuk
mengakses perangkat keras komputer secara aman.
2. 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.
3. membantu eksekusi aplikasi dan
mendukungnya dengan fitur abstraksi hardware.
Fungsi
utama kernel adalah untuk mengelola sumber daya komputer dan memungkinkan
program lain untuk menjalankan dan menggunakan sumber daya koputer tersebut.
Biasanya, sumber daya komputer terdiri dari:
a)Central
Processing Unit (CPU/prosesor)
Ini
adalah bagian paling sentral dari sebuah sistem komputer, bertanggung jawab
untuk menjalankan atau mengeksekusi program di atasnya. Kernel bertanggung
jawab untuk memutuskan setiap saat dimana banyak program yang berjalan serta
harus dialokasikan ke prosesor (yang biasanya masing-masing prosesor hanya
dapat menjalankan satu program pada satu waktu)
b)
Memori komputer.
Memori
digunakan untuk menyimpan instruksi program baik dan data. Biasanya, berdua
harus hadir dalam memori agar program untuk mengeksekusi. Seringkali beberapa
program akan menginginkan akses ke memori, sering menuntut memori lebih dari
komputer telah tersedia. Kernel bertanggung jawab untuk menentukan memori
memilih proses yang dapat menggunakan, dan menentukan apa yang harus dilakukan
bila tidak cukup kapasitas memori yang tersedia.
c)Input
/ Output (I / O)
Perangkat-perangkat
komputer I/O, seperti keyboard, mouse, disk drive, printer, monitor, dll kernel
mengalokasikan permintaan dari aplikasi untuk melakukan I/O ke perangkat yang
sesuai (atau pemilihan perangkat, misal dalam kasus pemilihan file pada disk
atau menampilakan windows pada monitor) dan memberikan metode mudah untuk
menggunakan perangkat (biasanya diabstraksikan ke titik di mana aplikasi tidak
perlu tahu rincian pelaksanaan perangkat).
Kernel
juga biasanya menyediakan metode untuk sinkronisasi dan komunikasi antara
proses (disebut antar-proses komunikasi atau IPC inter-process communication).
Kernel
dapat mengimplementasikan fitur-fitur ini sendiri, atau bergantung pada
beberapa proses dijalankan untuk menyediakan fasilitas untuk proses lainnya,
meskipun dalam hal ini harus menyediakan beberapa cara untuk memungkinkan
proses IPC untuk mengakses fasilitas yang disediakan oleh masing-masing lain.
Akhirnya,
kernel harus memberikan program yang berjalan dengan metode untuk membuat
permintaan untuk mengakses fasilitas ini.
Kernel
pun memiliki sifat Modular dan sifat Monolitik.
Berikut
adalah perbedaan dari sifat Modular dan Monolitik:
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,
gonta-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.
Comments
Post a Comment