Difference between revisions of "OS: Arsitektur Kernel Linux"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
| 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 . | ||
| − | |||
| − | |||
| − | |||
| − | |||
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 | |
| − | + | → kernel mode | |
| − | + | → kernel service | |
| − | + | → 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. | ||
| − | + | ==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.”