Anda di halaman 1dari 18

Pengenalan Kernel

Asisten Sistem Operasi 2017/2018


Kernel Linux Saat Booting
Dalam sebuah perangkat komputer, kernel merupakan
komponen inti dari Sistem Operasi yang berjalan dalam
perangkat tersebut. Kernel bertugas untuk mengatur pembagian
sumber daya sistem; komunikasi antara komponen hardware dan
software. Kernel menghubungkan antara software aplikasi dan
hardware komputer. Ia menyediakan abstraction layer pada level
terendah untuk resource-resource seperti memori, prosesor dan
perangkat I/O di mana suatu software aplikasi harus mengontrol
resource-resource tersebut agar dapat berfungsi.
Gambar 1. Kernel merupakan penghubung
antara aplikasi dengan hardware
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.
Desain Kernel
Sebuah kernel sistem operasi tidak harus ada dan
dibutuhkan untuk menjalankan sebuah komputer. Program
dapat langsung dijalankan secara langsung di dalam sebuah
mesin (contohnya adalah CMOS Setup) sehingga para
pembuat program tersebut membuat program tanpa
adanya dukungan dari sistem operasi atau hardware
abstraction. Cara kerja seperti ini, adalah cara kerja yang
digunakan pada zaman awal-awal dikembangkannya
komputer (pada sekitar tahun 1950).
Kerugian dari diterapkannya metode ini adalah pengguna harus
melakukan reset ulang komputer tersebut dan memuatkan
program lainnya untuk berpindah program, dari satu program ke
program lainnya. Selanjutnya, para pembuat program tersebut
membuat beberapa komponen program yang sengaja
ditinggalkan di dalam komputer, seperti halnya loader atau
debugger, atau dimuat dari dalam ROM (Read-Only Memory).
Seiring dengan perkembangan zaman komputer yang
mengalami akselerasi yang signifikan, metode ini selanjutnya
membentuk apa yang disebut dengan kernel sistem operasi.
Pendekatan monolithic kernel didefinisikan sebagai sebuah antarmuka
virtual yang berada pada tingkat tinggi di atas perangkat keras, dengan
sekumpulan primitif atau system call untuk mengimplementasikan layanan-
layanan sistem operasi, seperti halnya manajemen proses, konkurensi
(concurrency), dan manajemen memori pada modul-modul kernel yang
berjalan di dalam mode supervisor. Pada sistem operasi modern yang
menggunakan monolithic kernel, seperti halnya Linux, FreeBSD, Solaris, dan
Microsoft Windows, dapat memuat modul-modul yang dapat dieksekusi
pada saat kernel tersebut dijalankan sehingga mengizinkan ekstensi
terhadap kemampuan kernel sesuai kebutuhan, dan tentu saja dapat
membantu menjaga agar kode yang berjalan di dalam ruangan kernel
(kernel-space) seminim mungkin.
Pendekatan Microkernel berisi sebuah abstraksi yang sederhana terhadap
hardware, dengan sekumpulan primitif atau system call yang dapat
digunakan untuk membuat sebuah sistem operasi agar dapat berjalan,
dengan layanan-layanan seperti manajemen thread, komunikasi antar
address space, dan komunikasi antar proses.
Contoh OS yang menggunakan Microkernel adalah Symbian OS, sebuah
sistem operasi yang populer digunakan pada hand phone, handheld
device, embedded device, dan PDA Phone.
Hybrid kernel aslinya adalah microkernel yang memiliki kode yang tidak
menunjukkan bahwa kernel tersebut adalah microkernel 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. Hal ini
dilakukan oleh para arsitek sistem operasi sebagai solusi awal terhadap
masalah yang terjadi di dalam microkernel: kinerja.
Contoh OS yang menggunakan Hybrid Kernel adalah Novell NetWare, sebuah
sistem operasi yang pernah populer sebagai sistem operasi jaringan berbasis
IBM PC dan kompatibelnya.
Sebenarnya, Exokernel bukanlah pendekatan kernel sistem operasi yang
umum— seperti halnya microkernel atau monolithic kernel yang populer,
melainkan sebuah struktur sistem operasi yang disusun secara vertikal.
Secara teori, sebuah sistem operasi berbasis Exokernel dapat membuat
sistem operasi yang berbeda seperti halnya Linux, UNIX, dan Windows dapat
berjalan di atas sistem operasi tersebut.
Anatomi Kernel Source
Dimana source code berada?
Mulai dari directory pada top-level di Linux source tree, biasanya (walaupun
belum tentu selalu) ada di bawah /usr/src/linux-<version>. Kita tidak akan
terlalu detail disini, karena source Linux selalu berubah, paling tidak informasi
yang akan diberikan cukup untuk mencari driver atau function tertentu berada.

[edit]Makefile
File ini adalah top-level Makefile untuk seluruh source tree. File ini
mendefinisikan banyak sekali variable dan rule, seperti flag kompilasi gcc dll.
[edit]Documentation/
Directory ini berisi banyak sekali informasi bermanfaat (walaupun kadang-
kadang kadaluarsa) tentang cara konfigurasi kernel, menjalankan dengan
ramdisk, dan banyak lagi. Informasi help yang berhubungan dengan berbagai
pilihan konfigurasi tidak dapat ditemukan disini - walaupun mereka dapat di
temukan pada file Kconfig di masing-masing directory source.
[edit]crypto/
Ini adalah API cryptographic untuk digunakan oleh kernel itu sendiri.
[edit]drivers/
Aturan umum, code untuk menjalankan device peripheral dapat di temukan di
subdirectory dari directory ini. Ini termasuk, driver video, driver network card,
driver SCSI low-level, dan berbagai hal sekitar itu. Contoh, kebanyakan driver
network card dapat ditemukan di drivers/net. Beberapa higher level code
digunakan untuk menempelkan semua tipe driver, yang mungkin tidak berada
di directory yang sama seperti low level driver itu sendiri, menjadi satu
kesatuan.
[edit]fs/
Baik code file sistem generik (dikenal sebagai VFS, atau Virtual File System) dan
code untuk berbagai file sistem yang berbeda dapat di temukan pada directory
ini. Root file sistem yang kita gunakan mungkin ext2; code untuk membaca
format ext2 dapat di temukan dalam fs/ext2. Tidak semua file sistem dapat di
compile dan di run, file system yang baru dan aneh adalah contoh yang baik
bagi mereka yang ingin mencari proyek baru untuk kernel.
[edit]include/
Sebagian besar file header yang di include di awal file source code .c dapat di
temukan di directory ini. Arsitektur spesifik dari include file biasanya di asm-
<arch>. Bagian dari proses kernel build adalah membuat link simbolik dari
asm ke asm-<arch>, sehingga #include <asm/file.h> dapat memperoleh file
yang benar untuk arsitektur tersebut tanpa harus melakukan hard code ke
dalam file .c. Directory lain berisi header yang non-arsitektur spesifik. Jika
sebuah struktur, konstanta, atau variable digunakan di lebih dari satu file .c,
maka kemungkinan besar itu akan ada dalam salah satu file header ini.
[edit]init/
Directory ini berisi file main.c, version.c, dan code untuk membuat "early
userspace". version.c mendefinisikan string Linux version. main.c dapat
dilihat sebagai "lem" kernel. kita akan membicarakan lebih dalam tentang
main.c di bagian selanjutnya. Userspace awal akan memberikan
fungsionalitas yang dibutuhkan saat Linux kernel nyala, tapi tidak perlu
berada / berjalan dalam kernel itu sendiri.
[edit]ipc/
"IPC" singkatan dari "Inter-Process Communication". Ini berisi code untuk
shared memory, semaphores, dan berbagai bentuk IPC.
KONFIGURASI KERNEL :

Bila perlu sempatkan membaca file /usr/src/linux/README.

Konfigurasi dimulai dari direktori /usr/src/linux. Ada tiga cara:

make config, berupa text base interface, cocok untuk user yang memiliki
terminal model lama dan tidak memiliki seting termcap.
make menuconfig, berupa text base juga tapi memiliki puldown menu
berwarna, digunakan untuk user yang memiliki standar console.
make xconfig, interface menggunakan layar grafik penuh, untuk user yang
sudah memiliki X Window.
TERIMA KASIH

Anda mungkin juga menyukai