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. Sebuah program dapat saja
langsung di- load dan dijalankan diatas mesin 'telanjang' komputer, 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.
Ada 4 kategori kernel:
1. Monolithic kernel. Kernel yang
menyediakan abstraksi perangkat keras yang kaya dan tangguh.
2. Microkernel. Kernel yang
menyediakan hanya sekumpulan kecil abstraksi perangkat keras sederhana, dan
menggunakan aplikasi-aplikasi yang disebut sebagai server untuk menyediakan
fungsi-fungsi lainnya.
3. Hybrid (modifikasi dari
microkernel). Kernel yang mirip microkernel, tetapi ia juga memasukkan beberapa
kode tambahan di kernel agar ia menjadi lebih cepat.
4. Exokernel. Kernel yang tidak
menyediakan sama sekali abstraksi hardware, tapi ia menyediakan sekumpulan
pustaka yang menyediakan fungsi-fungsi akses ke perangkat keras secara langsung
atau hampir-hampir langsung.
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. Versi 1.0 mampu mendukung protokol standar
jaringan TCP/IP. 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.
Semenjak Desember 2003, telah
diluncurkan Kernel versi 2.6, yang dewasa ini (2008) telah mencapai patch versi
2.6.26.1 ( http://kambing.ui.edu/kernel-linux/v2.6/). Hal-hal yang berubah dari
versi 2.6 ini ialah:
* Subitem M/K yang dipercanggih.
* Kernel yang pre-emptif.
* Penjadwalan Proses yang
dipercanggih.
* Threading yang dipercanggih.
* Implementasi ALSA (Advanced Linux
Sound Architecture) dalam kernel.
* Dukungan sistem berkas seperti:
ext2, ext3, reiserfs, adfs, amiga ffs, apple macintosh hfs, cramfs, jfs,
iso9660, minix, msdos, bfs, free vxfs, os/2 hpfs, qnx4fs, romfs, sysvfs, udf,
ufs, vfat, xfs, BeOS befs (ro), ntfs (ro), efs (ro).
sumber:
http://denaydeni.blogspot.com/2013/01/pengertian-kernel.html

0 komentar:
Posting Komentar