kernel-sistem

advertisement
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
Download