Difference between revisions of "OS: Arsitektur Kernel Linux"

From OnnoWiki
Jump to navigation Jump to search
 
Line 1: Line 1:
 +
==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 .
  
BAGIAN E — KERNEL & SISTEM LOW-LEVEL
 
BAB 6. Arsitektur Kernel Linux
 
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.
 
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)
+
==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.
 
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:
 
Ciri utama:
Performa tinggi karena komunikasi antar komponen terjadi langsung.
+
* Performa tinggi karena komunikasi antar komponen terjadi langsung.
System call lebih cepat, tanpa overhead message passing.
+
* System call lebih cepat, tanpa overhead message passing.
Kernel Linux tetap fleksibel melalui loadable kernel module (LKM).
+
* Kernel Linux tetap fleksibel melalui loadable kernel module (LKM).
 +
 
 
Contoh nyata:
 
Contoh nyata:
 +
 
Driver NIC, filesystem ext4, dan TCP/IP stack semuanya aktif di kernel.
 
Driver NIC, filesystem ext4, dan TCP/IP stack semuanya aktif di kernel.
 
Mahasiswa dapat memuat modul dengan:
 
Mahasiswa dapat memuat modul dengan:
 
+
sudo lsmod
sudo lsmod
+
sudo modprobe loop
sudo modprobe loop
 
 
Pendekatan ini konsisten dengan filosofi Linux sebagai general-purpose OS yang efisien untuk server, desktop, dan embedded system .
 
Pendekatan ini konsisten dengan filosofi Linux sebagai general-purpose OS yang efisien untuk server, desktop, dan embedded system .
  
Microkernel
+
===Microkernel====
 
Berbeda dengan Linux, microkernel hanya menyimpan fungsi paling minimal di kernel:
 
Berbeda dengan Linux, microkernel hanya menyimpan fungsi paling minimal di kernel:
IPC (inter-process communication)
+
* IPC (inter-process communication)
Scheduler dasar
+
* Scheduler dasar
Memory management minimum
+
* Memory management minimum
 
Layanan lain (driver, file system, network stack) dijalankan di user space.
 
Layanan lain (driver, file system, network stack) dijalankan di user space.
 +
 
Kelebihan:
 
Kelebihan:
Fault isolation lebih baik
+
* Fault isolation lebih baik
Kernel lebih kecil dan formal-verifiable
+
* Kernel lebih kecil dan formal-verifiable
 +
 
 
Kekurangan:
 
Kekurangan:
Overhead IPC tinggi
+
* Overhead IPC tinggi
Performa sering kalah dibanding monolithic kernel
+
* Performa sering kalah dibanding monolithic kernel
 +
 
 
Catatan penting:
 
Catatan penting:
 +
 
Linux tidak menggunakan microkernel karena trade-off performa dianggap terlalu mahal untuk kebutuhan nyata.
 
Linux tidak menggunakan microkernel karena trade-off performa dianggap terlalu mahal untuk kebutuhan nyata.
Ringkasan Perbandingan
+
 
Linux → Monolithic (modular)
+
===Ringkasan Perbandingan===
QNX / Minix → Microkernel
+
* Linux → Monolithic (modular)
Android / Windows NT → Hybrid (konseptual)
+
* QNX / Minix → Microkernel
 +
* Android / Windows NT → Hybrid (konseptual)
 
Pendekatan Linux terbukti scalable dan tahan uji dari embedded router (OpenWRT) hingga supercomputer.
 
Pendekatan Linux terbukti scalable dan tahan uji dari embedded router (OpenWRT) hingga supercomputer.
  
Boot Process Linux
+
==Boot Process Linux==
 
Boot process menggambarkan perjalanan sistem dari kondisi mati hingga siap menerima login user.
 
Boot process menggambarkan perjalanan sistem dari kondisi mati hingga siap menerima login user.
Tahapan Boot Linux
+
 
Firmware (UEFI/BIOS)
+
===Tahapan Boot Linux===
Melakukan POST dan mencari bootloader.
+
* Firmware (UEFI/BIOS) - Melakukan POST dan mencari bootloader.
Bootloader (GRUB)
+
* Bootloader (GRUB)
Memuat kernel image (vmlinuz)
+
** Memuat kernel image (vmlinuz)
Memuat initramfs
+
** Memuat initramfs
Kernel Initialization
+
* Kernel Initialization
Deteksi CPU
+
** Deteksi CPU
Inisialisasi memory
+
** Inisialisasi memory
Load driver awal
+
** Load driver awal
Mount temporary root filesystem
+
** Mount temporary root filesystem
Init System (systemd)
+
* Init System (systemd)
Menjalankan service
+
** Menjalankan service
Menyiapkan network
+
** Menyiapkan network
Menyajikan login prompt
+
** Menyajikan login prompt
 
Contoh observasi praktis:
 
Contoh observasi praktis:
dmesg | less
+
dmesg | less
systemd-analyze blame
+
systemd-analyze blame
  
 
Insight penting:
 
Insight penting:
 +
 
Boot process adalah titik temu hardware–kernel–user space dan menjadi lokasi favorit debugging jika sistem gagal menyala.
 
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: Gerbang ke Kernel==
 
System call adalah mekanisme resmi agar program di user space dapat meminta layanan kernel.
 
System call adalah mekanisme resmi agar program di user space dapat meminta layanan kernel.
 +
 
Contoh system call penting:
 
Contoh system call penting:
read(), write()
+
read(), write()
fork(), execve()
+
fork(), execve()
open(), close()
+
open(), close()
socket()
+
socket()
 +
 
 
Alur Konseptual
 
Alur Konseptual
User Program
+
User Program
→ system call
+
  → system call
→ kernel mode
+
  → kernel mode
→ kernel service
+
  → kernel service
→ return ke user space
+
  → return ke user space
  
 
Contoh observasi real:
 
Contoh observasi real:
strace ls
+
strace ls
 
Mahasiswa akan melihat bahwa perintah sederhana memicu puluhan system call, menegaskan bahwa kernel adalah pusat semua aktivitas OS .
 
Mahasiswa akan melihat bahwa perintah sederhana memicu puluhan system call, menegaskan bahwa kernel adalah pusat semua aktivitas OS .
Scheduler: Mengatur Waktu CPU
+
 
 +
==Scheduler: Mengatur Waktu CPU==
 
Scheduler menentukan siapa mendapat CPU, kapan, dan berapa lama.
 
Scheduler menentukan siapa mendapat CPU, kapan, dan berapa lama.
 +
 
Linux modern menggunakan Completely Fair Scheduler (CFS) yang bertujuan:
 
Linux modern menggunakan Completely Fair Scheduler (CFS) yang bertujuan:
Memberikan fair share CPU
+
* Memberikan fair share CPU
Meminimalkan latency
+
* Meminimalkan latency
Menjaga respons sistem tetap interaktif
+
* Menjaga respons sistem tetap interaktif
 
Jenis workload:
 
Jenis workload:
CPU-bound
+
* CPU-bound
I/O-bound
+
* I/O-bound
Interactive process
+
* Interactive process
Batch job
+
* Batch job
 
Observasi praktis:
 
Observasi praktis:
top
+
top
htop
+
htop
cat /proc/sched_debug
+
cat /proc/sched_debug
 +
Kunci konsep:Scheduler bukan hanya soal kecepatan, tapi keadilan dan pengalaman pengguna.
  
Kunci konsep:Scheduler bukan hanya soal kecepatan, tapi keadilan dan pengalaman pengguna.
+
==Memory Management==
Memory Management
 
 
Kernel Linux bertanggung jawab penuh atas alokasi, proteksi, dan optimalisasi memori.
 
Kernel Linux bertanggung jawab penuh atas alokasi, proteksi, dan optimalisasi memori.
 +
 
Komponen utama:
 
Komponen utama:
Virtual Memory
+
* Virtual Memory
Paging
+
* Paging
Swapping
+
* Swapping
Page Cache & Buffer Cache
+
* Page Cache & Buffer Cache
 
Jika program mengakses memori ilegal → segmentation fault, kernel akan menghentikan proses demi stabilitas sistem.
 
Jika program mengakses memori ilegal → segmentation fault, kernel akan menghentikan proses demi stabilitas sistem.
 +
 
Contoh observasi:
 
Contoh observasi:
free -h
+
free -h
vmstat 1
+
vmstat 1
cat /proc/meminfo
+
cat /proc/meminfo
 
Virtual memory memungkinkan sistem dengan RAM terbatas tetap menjalankan banyak proses — ilusi memori besar yang dikelola kernel .
 
Virtual memory memungkinkan sistem dengan RAM terbatas tetap menjalankan banyak proses — ilusi memori besar yang dikelola kernel .
I/O Management & Device Driver
+
 
 +
==I/O Management & Device Driver==
 
Kernel menangani I/O melalui:
 
Kernel menangani I/O melalui:
Interrupt
+
* Interrupt
Device driver
+
* Device driver
I/O scheduler
+
* I/O scheduler
 
Semua perangkat diperlakukan sebagai file abstrak:
 
Semua perangkat diperlakukan sebagai file abstrak:
ls /dev
+
ls /dev
 
Driver bertugas:
 
Driver bertugas:
Menerjemahkan perintah kernel → hardware
+
* Menerjemahkan perintah kernel → hardware
Menangani interrupt
+
* Menangani interrupt
Menyediakan antarmuka standar
+
* Menyediakan antarmuka standar
 
Inilah sebabnya Linux dapat berjalan di ribuan jenis hardware tanpa mengubah aplikasi user.
 
Inilah sebabnya Linux dapat berjalan di ribuan jenis hardware tanpa mengubah aplikasi user.
  
Refleksi Akademik
+
==Refleksi Akademik==
 
Pada bab ini mahasiswa diharapkan memahami bahwa:
 
Pada bab ini mahasiswa diharapkan memahami bahwa:
Kernel adalah pusat kekuasaan sistem operasi
+
* Kernel adalah pusat kekuasaan sistem operasi
Arsitektur Linux dipilih karena efisiensi nyata, bukan teori semata
+
* Arsitektur Linux dipilih karena efisiensi nyata, bukan teori semata
Semua praktik berikutnya (compile kernel, module, tuning) berakar pada arsitektur ini
+
* Semua praktik berikutnya (compile kernel, module, tuning) berakar pada arsitektur ini
“Jika user space adalah panggung, maka kernel adalah sutradaranya.”
+
“Jika user space adalah panggung, maka kernel adalah sutradaranya.”
  
 
==Pranala Menarik==
 
==Pranala Menarik==
  
 
* [[Sistem operasi]]
 
* [[Sistem operasi]]

Latest revision as of 05:52, 14 February 2026

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