Pengertian Tentang 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. 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).
Tidak ada komentar:
Posting Komentar