Sekilas Pemahaman Tentang Kernel Linux

Kernel dan Linux merupakan dua istilah yang sepertinya melekat satu sama lain. Setiap kali berbicara tentang Distribusi Linux bahwa hampir dapat dipastikan istilah Kenel selalu dikaitkan didalalmnya. Lantas yang menjadi pertanyaan kita, apa sebenarnya yang dimaksud dengan Kernel tersebut dan bagaimana hubungannya dengan distribusi Linux yang jumlahnya banyak? Suatu pertanyaan yang jenius kawan. Oke, sedikit penjelasan dari saya. Kernel merupakan bagian dari software yang menyediakan sebuah lapisan antara hardware dan aplikasi yang berjalan pada computer. Dalam ilmu computer, istilah Linux hanya mengacu pada kernel yang ditulis oleh Linus Torvalds pada awal tahun 1990.



Semua bagian lain yang ada pada distribusi Linux seperti Bash Shell, KDE, Windows Manage,  Web Browser, X Server dan lain-lain hanyalah aplikasi yang berjalan diLinux dan bukan bagian dari system operasi tersebut. Misal, intalasi baru RHEL5 (RedHat Enterprise Linux Versi 5) menempati sekitar 2,5GB ruang harddisk dan tentunya tegantung pada pilihan aplikasi apa saja yang anda sertakan. Dari keseluruhan jumlah tersebut, Kernel serta termasuk semua modulnya hanya menempati ruang sekitar 47MB atau sekitar 2%.

Lantas apa sebenarnya yang dilakukan oleh Kernel? Kernel membuat layanan-layanan yang ada didalamnya tersedia untuk aplikasi yang berjalan melalui sekumpulan besar entry point dan secara tekhnis dikenal dengan System Call. Kernel menggunakan system Call sebagai read dan write untuk memberikan abstraksi hardware pokok. Salah satu abstraksi yang disediakan oleh Kernel adalah File System. Lantas apa yang dimaksud dengan Abstraksi tersebut? Abstraksi adalah, yakni ketika anda membuka sebuah file serangkaian Byte data yang memiliki nama, maka Kernel akan membuatkan ilusi(bayangan) dari file tersebut dan menampilkannya untuk anda. Dengan demikian, anda terhindar dari track, sector, head dan free block list, yang harus dilalui bila ingin berbicara langsung dengan hardware.

Filesystem merupakan salah satu abstraksi yang disediakan oleh Kernel. Ada pula beberapa fitur tidak begitu jelas terlihat, misalnya Kernel bertanggung jawab untuk proses penjadwalan. Dalam satu waktu, kemungkinan terdapat beberapa proses (program) yang menunggu untuk dijalankan. Kernel yang mengatur penjadwalan mengalokasikan waktu CPU untuk setiap proses. Hailnya anda akan melihat ilusi dan seolah-olah CPU menjalankan beberapa aplikasi pada saat bersamaan. Memory management merupakan fungsi lain dari Kernel yang tidak terlihat dan bahkan oleh seorang programmer seklaipun. Setiap proses berjalan dibawah ilusi yang memiliki address space (ruang space) range memory address yang valid sendiri-sendiri. Padahal dalam kenyataannya setiap proses berbagi memory fisik dengan proses lain kemudian bila system mengalami low memory, maka sebagian address space akan diparkir di area swap didalam harddisk. Aspek lain dari memory management yakni untuk mencegah sebuah proses mengakses address space proses lain. Tindakan pencegahan tersebut diperlukan untuk menjaga integritas dari sebuah OS yang Multi-Processing.

Kernel juga menerapkan protocol jaringan seperti IP, TCP, dan UDP yang menyediakan komunikasi Machine to Machine dan Process to Process melalui jaringan. Sekali lagi, semua hal tersebut merupakan Ilusi. TCP tersebut memberikan Ilusi dari sambungan permanen antara dua proses sepotong kawat tembaga yang menghubungkan dua telepon tetapi pada kenyataanya tidak pernah ada sambungan permanen. Perlu diketahui bahwa aplikasi spesifik protocol seperti, FTP, DNS atau HTTP diimplementasikan oleh user level program dan bukan merupakan bagian dari Kernel.  Nah, sekarang kita telah mendapatkan gambaran bagaimana Kernel tersebut bekerja. Pada tahap selanjutnya mari kita lihat organisasi fisik Kernel dan silahkan anda lanjutkan membacanya sampai penjelasan dibawah.

Pada generasi pertama, Kernel Linux bersifat Monolitik yakni semua bit dan bagian terhubung secara statis dengan file executable dan biasanya berukuran cukup besar. Namun, kini Kernel Linux modern yelah bersifat modular. Banyan fungsionalitas didalam modul yang diloading didalam Kernel secara dinamis. Hal tersebut menjaga inti dari Kernel agar tetap kecil dan memungkinkan untuk meloading atau mengganti modul ke dalam Kernel yang sedang berjalan tanpa harus melakukan Rebooting. Inti dari Kernel diloading ke dalam memory pada saat booting dari sebuah file bernama umlinuz(versi kernel) didirektory /boot. Sementara modul-modulnya tersimpan dalam directory /lib/modules/ (versi Kernel). Semua bagian modul tersebut akan disalin ke tempatnya ketika kernel telah terinstall.

Reactions:

0 comments:

Posting Komentar