Kernel Sistem Operasi LINATI IFFAH (151100098) STMIK Indonesia Padang Yayasan Amal Bakti Mukmin 2016 Kernel A. Pengertian Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi komputer, tugasnya yaitu melaani bermacam-macam program aplikasi untuk mengakses perangkat keras (hardware) komputer secara aman. Ada juga definisi kernel yang lainnya adalah suatu perangkat lunak yang membuat komunikasi atau mediator antara aplikasi dan perangkat keras (hardware), yang menyediakan pelayanan sistem seperti pengaturan memori untuk proses yang sedang berjalan, pengaturan file, pengaturan input-output dan masih banyak lagi fungsi tambahan yang lainnya. Pada intinya juga bisa disebut bahwa kernel merupakan suatu penghubung antara sofware dan hardware. Dalam beberapa pengertian yang lain, Kernel juga disebutkan merupakan program komputer yang mengatur permintaan akan input-output dari perangkat lunak, dan menerjemahkannya ke dalam intruksi-intruksi pada CPU, ataupun komponen eletronik lainnya dalam sebuah komputer. B. Tujuan Kernel merupakan bagian yang sangat mendasar pada sistem operasi komputer masa kini seperti pada sistem operasi Windows. Bahkan bukan hanya untuk komputer, sistem operasi iOS dan Android yang umumnya berada pada Smartphone juga mempunyai kernel agar perangkat bisa berjalan dengan baik. Kernel berada pada sebuah sistem operasi, bertujuan agar bisa melayani bermacammacam program aplikasi untuk mengakses perangkat keras (hardware) secara aman. Karena akses terhadap perangkat keras terbatas, sedangkan terdapat lebih dari satu program yang harus dilayani dalam waktu yang bersamaan, maka kernel juga mempunyai tugas untuk mengatur kapan serta berapa lama suatu program dapat menggunakan suatu bagian perangkat keras tersebut. Dan kernel juga bertujuan agar bisa membantu mengeksekusi aplikasi dan mendukungnya dengan fitur abstraksi perangkat keras. 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 untumk menyembunyikan kompleksitas, dan memungkinkan akses kepada perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada akhirnya memudahkan pekerjaan programmer. Pada dasarnya untuk menjalankan sebuah komputer tidak harus menggunakan kernel sistem operasi. Program dapat langsung dijalankan secara langsung di dalam sebuah mesin. Sehingga para prorgammer membuat program tanpa dukungan dari sistem operasi. Cara kerja seperti ini, digunakan pada awal-awal dikembangkannya komputer sekitar tahun 1950. Kerugian metode ini membuat pengguna boros waktu, tidak bisa menjalankan program-program yang lain saat program sebelumnya masih berjalan. Pengguna harus mereset ulang komputer dan memuatkan program lain untuk berpindah program, dari satu program ke program lain. Seiring perkembangan, komputer mengalami akselerasi signifikan, metode ini selanjutnya membentuk apa yang disebut dengan kernel sistem operasi. C. Kategori Kernel Setelah kernel sistem operasi dibentuk, para arsitek sistem operasi mengembangkan kernel yang akhirnya dibagi menjadi empat bagian yang secara desain berbeda, sebagai berikut: a. Kernel Monolitik Pendekatan kernel monolitik didefinisikan sebagai sebuah antarmuka virtual yang berada di tingkat yang tinggi di atas perangkat keras, dengan system call untuk mengimplementasikan layanan-layanan sistem operasi, seperti halnya manajemen proses dan memanajemen memori. Kernel ini populer digunakan pada sistem operasi pada smartphone saat sekarang, yaitu Android. b. Mikrokernel Mikrokernel menyediakan sedikit saja dari abstrak perangkat keras dan menggunakan aplikasi yang berjalan di atasnya yang disebut dengan server untuk melakukan beberapa fungsionalitas lainnya. Sistem operasi yang menggunakan mikrokernel umumnya secara dramatis memliki kinerja di bawah kinerja sistem operasi yang menggunakan kernel monolitik. Kernel ini biasanya digunakan pada sistem operasi yang bersifat edukasi, dan sistem operasi yang tidak terlalu besar dalam artian sistem operasi yang tidak terlalu kompleks. Contohnya mikrokernel ada pada sistem operasi Symbian OS, sebuah sistem operasi populer yang digunakan pada handphone. c. Kernel Hybrid Kernel Hybrid adalah pendekatan desain mikrokernel yang dimodifikasi. Aslinya adalah mikrokernel yang memiliki kode yang tidak menunjukan bahwa kernel tersebut adalah mikrokernel di dalam ruangan kernel-nya. Kode kode tersebut ditaruh di dalam ruangan kernel agar dapat dieksekusi lebih cepat dibandingkan jika ditaruh di dalam ruangan user. Ini dilakukan oleh para arsitek sistem operasi sebagai solusi awal terhadap masalah yang terjadi di dalam kinerja mikrokernel. Kernel ini populer digunakan untuk lawan dari pada sistem operasi yang ada pada smartphone Android, yaitu iOS. Dan kernel Hybrid ini juga populer digunakan pada sistem operasi Windows, contohnya Windows NT sampai versi Windows saat ini yaitu Windows 10. d. Exokernel Exokernel menyediakan hardware abstraction secara minimal, sehingga program dapat mengakses hardware secara langsung. Dalam pendekatan desain exokernel, library yang dimiliki oleh sistem operasi dapat melakukan abstraksi yang mirip dengan abstraksi yang dilakukan dalam desain kernel monolitik. Sistem operasi yang menggunakan kernel ini. D. Modul Kernel Apa sebenarnya adalah modul kernel? Modul adalah bagian dari kode yang dapat dimuat dan dibongkar ke dalam kernel atas permintaan. Mereka memperluas fungsionalitas dari kernel tanpa perlu reboot sistem. Misalnya, salah satu jenis modul adalah driver perangkat, yang memungkinkan kernel untuk mengakses perangkat keras yang terhubung ke sistem. Tanpa modul, kita harus membangun kernel monolitik dan menambahkan fungsi baru langsung ke gambar kernel. Selain memiliki kernel yang lebih besar, ini memiliki kelemahan yang memerlukan kita untuk membangun kembali dan reboot kernel setiap kali kita ingin fungsi baru. Contohnya pada komputer, mengganti atau menambah sebuah Video card pada mainboard. Maka driver baru diperlukan yakninya itu adalah sebuah modul baru. Modul baru tersebut perlu ditambahkan ke dalam kernel. Dan memerlukan reboot agar modul baru tersebut berfungsi untuk kinerja Video card tersebut. E. Kompilasi dan Konfigurasi Kernel Kernel adalah program yang dimuat saat boot yang berfungsi sebagai interface antara user-level program dengan hardware. Fungsinya seperti layaknya sistem operasi, menangani task switching dalam multitasking, menangani permintaan membaca atau menulis peralatan disk, melakukan tugas-tugas network serta mengatur penggunaan memori. Secara teknisnya Linux hanyalah sebuah kernel. Program lain seperti kompiler, editor, window manager dan lain-lain sebagainya yang disertakan dalam paket hanyalah sebuah distribusi (RedHat, SuSE, Ubuntu, Mint, Debian, CentOS dsb) yang melengkapi kernel menjadi sebuah sistem operasi yang lengkap. Sebuah kernel memerlukan konfigurasi agar bisa bekerja optimal pada sebuah mesin. Atau kernel memerlukan konfigurasi baru saat ada perangkat keras yang ingin difungsikan. Tidak sama seperti sistem operasi Windows, yang menggunakan Kernel Hibrida akan sangat mudah untuk menkonfigurasi modul baru atau yang lebih populer yaitu driver yang akan di Install untuk memperpanjang fitur kernel dan dengan user-mode tanpa harus masuk ke sistem kernel yang ada resiko jika terjadi kesalahan yang berdampak pada booting. Linux juga seperti itu jika ada tambahan perangkat baru, apabila tidak ada pada dalam kernelnya. Pada umumnya Kernel linux bisa langsung bekerja pada banyak perangkat komputer karena telah dimuat di dalam kernel dukungan untuk beberapa device. Konfigurasi ulang atau membangun kernel monolitik lagi akan terjadi jika ada modul hardware yang tidak cocok atau tidak ada untuk hardware dan perangkat-perangkat baru lainnya. Tahap kompilasi ini seperti yang telah dijelaskan di awal, memiliki potensial menimbulkan kesalahan yang pada umumnya akan berdampak pada booting. a. Download Kernel Umumnya Distro Linux yang baru juga telah menyediakan sumber kernel yang baru juga. Tapi pengguna masih tetap bisa mendapatkan versi yang lebih baru di website pada beberapa distributor, atau yang lebih populer pada www.kernel.org Source atau sumber kernel tersebut biasanya dalam format linux-A.B.CC.tar.gz Contohnya 4.8.2 Angka 4 menunjukkan angka major. Angka ini biasanya menandakan adanya perubahan besar atau upgrade terhadap kernel. Angka 8 menunjukkan nomor stabilitas. Angka genap menandakan kernel sudah stabil. Angka Ganjil menandakan kernel dalam tahap pengembangan. Kernel dengan angka ganjil ini mengandung eksperimental atau bersifat cobacoba oleh para developer untuk menambahkan fitur baru. Angka 2 menunjukkan angka revisi. b. Konfigurasi Kernel Masuk ke direktori root, pada command line. Membuka command line pada setiap distro linux, mungkin akan berbeda. # su Jika ada passoword, masukkan. Masuk ke direktori download, untuk menuju file yang telah diunduh. Contohnya kernel linux-4.8.2.tar.xz yang berada pada folder /home/unduhan # cd /home/unduhan Lalu uraikan / ekstrak file kernel tersebut # tar xfj linux-4.8.2.tar.xz File kernel yang di ekstrak tadi akan berada pada folder /usr/src/linux-4.8.2 Konfigurasi akan dimulai, dengan tiga cara: # make config , berupa text base interface, cocok untuk user yang memiliki terminal model yang lama. # make menuconfig, digunakan untuk user yang memiliki standar console. # make xconfig, interface menggunakan layar grafik penuh, atau grafik interface, untuk user yang sudah memiliki X Window. Bila berhasil, layar Linux Kernel Configuration akan ditampilkan setelah perintah di atas dijalankan. Ada sekitar 14 menu pilihan atau tambahan menu lain tergantung kernel. Digunakan untuk konfigurasi kernel sebelum instalasi. Masing-masing memiliki sub-menu yang dipilih dan pilihan Yes (y), Module(m), No(n). Setiap pilihan untuk dimuat/kompile ke dalam kernel atau y akan memperbesar ukuran kernel nantinya. Jadi pilih feature-feature yang sering di gunakan yang di muat ke dalam kernel atau jadikan module untuk feature yang tidak sering di gunakan, misalnya PPP support. Atau jika ingin config secara default cukup dengan perintah # make defconfig c. Kompilasi dan Instalasi Jalankan perintah berikut Kompile kernel # make Kompile modul kernel # make modules Install modul kernel # make install_modules Lalu install kernel baru # make install Ini akan memakan waktu, tergantung pada kecepatan processor komputer. Lalu reboot, untuk menggunakan kernel baru tersebut # reboot