Pengertian Kernel
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).
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).
Komentar
Posting Komentar