OS: Arsitektur Kernel Linux

From OnnoWiki
Revision as of 05:52, 14 February 2026 by Onnowpurbo (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Peran Kernel dalam Sistem Operasi Linux

Kernel merupakan inti (core) dari sistem operasi Linux yang bertugas sebagai penghubung langsung antara hardware dan user space. Semua akses ke CPU, memory, disk, dan perangkat jaringan harus melalui kernel. Prinsip ini menjadikan kernel sebagai penjaga gerbang tunggal (single authority) yang menjamin keamanan, isolasi, dan efisiensi sistem .

Dalam praktik sehari-hari di Ubuntu 24.04, ketika mahasiswa menjalankan perintah sederhana seperti ls, ping, atau apt install, sesungguhnya mereka sedang memicu system call yang mengalihkan eksekusi dari user mode ke kernel mode. Dari sinilah terlihat bahwa kernel bukan konsep abstrak, melainkan komponen aktif yang bekerja setiap detik.

Monolithic Kernel vs Microkernel

Monolithic Kernel (Linux)

Linux menggunakan arsitektur monolithic kernel, di mana sebagian besar layanan inti (scheduler, memory manager, file system, networking, device driver) berjalan di dalam kernel space.

Ciri utama:

  • Performa tinggi karena komunikasi antar komponen terjadi langsung.
  • System call lebih cepat, tanpa overhead message passing.
  • Kernel Linux tetap fleksibel melalui loadable kernel module (LKM).

Contoh nyata:

Driver NIC, filesystem ext4, dan TCP/IP stack semuanya aktif di kernel. Mahasiswa dapat memuat modul dengan:

sudo lsmod
sudo modprobe loop

Pendekatan ini konsisten dengan filosofi Linux sebagai general-purpose OS yang efisien untuk server, desktop, dan embedded system .

Microkernel=

Berbeda dengan Linux, microkernel hanya menyimpan fungsi paling minimal di kernel:

  • IPC (inter-process communication)
  • Scheduler dasar
  • Memory management minimum

Layanan lain (driver, file system, network stack) dijalankan di user space.

Kelebihan:

  • Fault isolation lebih baik
  • Kernel lebih kecil dan formal-verifiable

Kekurangan:

  • Overhead IPC tinggi
  • Performa sering kalah dibanding monolithic kernel

Catatan penting:

Linux tidak menggunakan microkernel karena trade-off performa dianggap terlalu mahal untuk kebutuhan nyata.

Ringkasan Perbandingan

  • Linux → Monolithic (modular)
  • QNX / Minix → Microkernel
  • Android / Windows NT → Hybrid (konseptual)

Pendekatan Linux terbukti scalable dan tahan uji dari embedded router (OpenWRT) hingga supercomputer.

Boot Process Linux

Boot process menggambarkan perjalanan sistem dari kondisi mati hingga siap menerima login user.

Tahapan Boot Linux

  • Firmware (UEFI/BIOS) - Melakukan POST dan mencari bootloader.
  • Bootloader (GRUB)
    • Memuat kernel image (vmlinuz)
    • Memuat initramfs
  • Kernel Initialization
    • Deteksi CPU
    • Inisialisasi memory
    • Load driver awal
    • Mount temporary root filesystem
  • Init System (systemd)
    • Menjalankan service
    • Menyiapkan network
    • Menyajikan login prompt

Contoh observasi praktis:

dmesg | less
systemd-analyze blame

Insight penting:

Boot process adalah titik temu hardware–kernel–user space dan menjadi lokasi favorit debugging jika sistem gagal menyala.

System Call: Gerbang ke Kernel

System call adalah mekanisme resmi agar program di user space dapat meminta layanan kernel.

Contoh system call penting:

read(), write()
fork(), execve()
open(), close()
socket()

Alur Konseptual

User Program
 → system call
 → kernel mode
 → kernel service
 → return ke user space

Contoh observasi real:

strace ls

Mahasiswa akan melihat bahwa perintah sederhana memicu puluhan system call, menegaskan bahwa kernel adalah pusat semua aktivitas OS .

Scheduler: Mengatur Waktu CPU

Scheduler menentukan siapa mendapat CPU, kapan, dan berapa lama.

Linux modern menggunakan Completely Fair Scheduler (CFS) yang bertujuan:

  • Memberikan fair share CPU
  • Meminimalkan latency
  • Menjaga respons sistem tetap interaktif

Jenis workload:

  • CPU-bound
  • I/O-bound
  • Interactive process
  • Batch job

Observasi praktis:

top
htop
cat /proc/sched_debug

Kunci konsep:Scheduler bukan hanya soal kecepatan, tapi keadilan dan pengalaman pengguna.

Memory Management

Kernel Linux bertanggung jawab penuh atas alokasi, proteksi, dan optimalisasi memori.

Komponen utama:

  • Virtual Memory
  • Paging
  • Swapping
  • Page Cache & Buffer Cache

Jika program mengakses memori ilegal → segmentation fault, kernel akan menghentikan proses demi stabilitas sistem.

Contoh observasi:

free -h
vmstat 1
cat /proc/meminfo

Virtual memory memungkinkan sistem dengan RAM terbatas tetap menjalankan banyak proses — ilusi memori besar yang dikelola kernel .

I/O Management & Device Driver

Kernel menangani I/O melalui:

  • Interrupt
  • Device driver
  • I/O scheduler

Semua perangkat diperlakukan sebagai file abstrak:

ls /dev

Driver bertugas:

  • Menerjemahkan perintah kernel → hardware
  • Menangani interrupt
  • Menyediakan antarmuka standar

Inilah sebabnya Linux dapat berjalan di ribuan jenis hardware tanpa mengubah aplikasi user.

Refleksi Akademik

Pada bab ini mahasiswa diharapkan memahami bahwa:

  • Kernel adalah pusat kekuasaan sistem operasi
  • Arsitektur Linux dipilih karena efisiensi nyata, bukan teori semata
  • Semua praktik berikutnya (compile kernel, module, tuning) berakar pada arsitektur ini
“Jika user space adalah panggung, maka kernel adalah sutradaranya.”

Pranala Menarik