OS: Konsep Inti

From OnnoWiki
Revision as of 10:36, 13 February 2026 by Onnowpurbo (talk | contribs) (→‎Thread)
Jump to navigation Jump to search

BAB 2. Konsep Inti Sistem Operasi (Teori Inti)

Bab ini memberikan kerangka mental (mental model) tentang bagaimana sistem operasi modern bekerja. Tujuannya bukan hafalan, melainkan agar mahasiswa paham apa yang sebenarnya terjadi “di balik layar” saat melakukan praktek pada bab-bab berikutnya.

Arsitektur Sistem Operasi Modern

Sistem operasi modern dirancang sebagai suatu lapisan abstraksi yang berfungsi menjembatani interaksi antara perangkat keras (hardware) dan perangkat lunak aplikasi. Melalui mekanisme ini, kompleksitas perangkat keras disembunyikan dari aplikasi, sehingga pengembangan dan eksekusi perangkat lunak dapat dilakukan secara lebih terstruktur, aman, dan efisien.

Secara konseptual, arsitektur sistem operasi modern tersusun atas beberapa lapisan utama, yaitu:

Aplikasi Pengguna
-----------------
User Space (Library, Runtime, Framework)
-----------------
Kernel Space (Core Operating System)
-----------------
Perangkat Keras (CPU, Memori, Disk, Jaringan, Perangkat I/O)

Arsitektur berlapis tersebut dirancang untuk memenuhi sejumlah prinsip fundamental, antara lain:

  • Abstraksi, yaitu penyediaan antarmuka standar yang memungkinkan perangkat keras digunakan tanpa harus memahami detail implementasi fisiknya.
  • Isolasi, yang menjamin bahwa kegagalan atau kesalahan pada satu aplikasi tidak berdampak langsung terhadap aplikasi lain maupun stabilitas sistem secara keseluruhan.
  • Efisiensi, melalui pengelolaan sumber daya sistem seperti prosesor, memori, dan mekanisme input/output secara optimal oleh kernel.
  • Keamanan, dengan menerapkan kontrol akses terpusat pada kernel untuk membatasi interaksi langsung aplikasi terhadap perangkat keras.

Berbagai sistem operasi kontemporer, seperti Linux, Android, dan OpenWRT, mengadopsi pola arsitektur ini sebagai fondasi desainnya, meskipun masing-masing dikembangkan dengan penekanan dan tujuan penggunaan yang berbeda.

Kernel Space dan User Space

Dalam sistem operasi modern, arsitektur eksekusi perangkat lunak dibagi ke dalam dua domain utama, yaitu kernel space dan user space, yang masing-masing memiliki tingkat hak akses dan tanggung jawab yang berbeda.

Kernel Space

Kernel merupakan komponen inti dari sistem operasi yang beroperasi dengan hak akses tertinggi terhadap perangkat keras. Kernel bertanggung jawab secara langsung terhadap pengelolaan seluruh sumber daya sistem serta penyediaan layanan dasar yang dibutuhkan oleh perangkat lunak tingkat pengguna.

Fungsi utama kernel meliputi:

  • Manajemen proses dan thread
  • Manajemen memori, termasuk mekanisme virtual memory
  • Pengendalian perangkat keras melalui device driver
  • Penjadwalan eksekusi prosesor (CPU scheduler)
  • Pengelolaan networking stack
  • Implementasi mekanisme keamanan dan kontrol akses

Karena kernel beroperasi pada tingkat privilese tertinggi, kesalahan atau kegagalan yang terjadi pada kernel umumnya berdampak serius terhadap stabilitas sistem, yang dapat menyebabkan kondisi kernel panic atau system crash.

User Space

User space merupakan lingkungan eksekusi bagi perangkat lunak tingkat pengguna, termasuk:

  • Aplikasi pengguna
  • Shell dan command-line interpreter (misalnya bash dan zsh)
  • Layanan sistem (services) seperti web server dan database
  • Pustaka dan framework sistem, termasuk standard C library dan Android framework

Aplikasi yang berjalan pada user space tidak diperkenankan mengakses perangkat keras secara langsung. Seluruh interaksi dengan sumber daya sistem dilakukan melalui mekanisme system call, yang berfungsi sebagai antarmuka terkontrol antara user space dan kernel space.

Konsep kunci:

Kernel berperan sebagai pengawas utama yang melindungi sistem secara keseluruhan dari kesalahan, kegagalan, maupun perilaku berbahaya yang dapat ditimbulkan oleh aplikasi yang berjalan di user space.

Proses, Thread, Memori, dan Mekanisme Input/Output

Sistem operasi modern menyediakan sejumlah abstraksi fundamental untuk mengelola eksekusi program dan pemanfaatan sumber daya sistem, diantaranya proses (process), thread, memori, dan mekanisme input/output (I/O).

Proses (Process)

Proses merupakan representasi aktif dari sebuah program yang sedang dieksekusi oleh sistem operasi. Setiap proses dikelola secara independen oleh kernel dan memiliki karakteristik sebagai berikut:

  • Identitas unik berupa Process Identifier (PID)
  • Ruang alamat memori tersendiri
  • Alokasi sumber daya sistem yang terpisah

Sebagai contoh, ketika pengguna menjalankan program seperti python, nginx, atau ssh, sistem operasi akan membuat satu atau lebih proses yang merepresentasikan eksekusi program tersebut.

Thread

Thread merupakan unit eksekusi yang lebih ringan dibandingkan proses dan berada di dalam konteks suatu proses. Sebuah proses dapat terdiri atas satu atau lebih thread yang dieksekusi secara paralel atau konkuren. Karakteristik utama thread meliputi:

  • Beberapa thread dapat berjalan dalam satu proses
  • Thread berbagi ruang memori dan sumber daya proses yang sama
  • Penggunaan thread memungkinkan implementasi concurrency yang lebih efisien dibandingkan dengan pembuatan banyak proses terpisah

Memori

Sistem operasi modern menerapkan mekanisme memori virtual untuk mengelola penggunaan memori secara efisien dan aman. Melalui pendekatan ini:

  • Program seolah-olah memiliki kapasitas memori yang lebih besar dari memori fisik yang tersedia
  • Kernel mengatur pemetaan memori melalui mekanisme paging, caching, dan swapping
  • Isolasi antar proses tetap terjaga, sehingga satu proses tidak dapat mengakses memori proses lain secara langsung

Input/Output (I/O)

Seluruh aktivitas input dan output pada sistem operasi, termasuk akses terhadap:

  • Media penyimpanan (disk)
  • Jaringan (network)
  • Perangkat input seperti keyboard
  • Antarmuka serial dan USB

dikendalikan secara terpusat oleh kernel melalui device driver serta mekanisme buffering untuk menjamin kinerja dan konsistensi sistem.

Prinsip dasar Unix/Linux:

Dalam sistem Unix dan turunannya, hampir seluruh sumber daya sistem diperlakukan sebagai berkas (file). Oleh karena itu, operasi I/O diakses secara seragam melalui mekanisme file descriptor, yang menyederhanakan pemrograman dan pengelolaan perangkat.

Filesystem dan Virtual Filesystem (VFS)

Filesystem merupakan komponen fundamental dalam sistem operasi yang berfungsi untuk mengelola penyimpanan dan pengorganisasian data pada media penyimpanan. Melalui file system, sistem operasi menyediakan mekanisme terstruktur untuk menyimpan, mengakses, dan memelihara data secara konsisten dan aman. Secara umum, filesystem bertanggung jawab terhadap:

  • Penyimpanan data pada media penyimpanan
  • Struktur direktori yang mengatur hirarki berkas
  • Metadata berkas, termasuk permission, owner, dan timestamp

Berbagai jenis file system digunakan sesuai dengan kebutuhan dan karakteristik sistem, di antaranya:

  • ext4
  • xfs
  • btrfs
  • squashfs (umumnya digunakan pada sistem embedded seperti OpenWRT)
  • overlayfs (banyak dimanfaatkan pada lingkungan container dan sistem embedded)

Virtual Filesystem (VFS)

Virtual Filesystem (VFS) merupakan suatu lapisan abstraksi file system yang diimplementasikan di dalam kernel. Lapisan ini memungkinkan sistem operasi menyediakan antarmuka yang seragam terhadap berbagai jenis file system, tanpa bergantung pada detail implementasi masing-masing file system yang digunakan.

Keberadaan VFS memberikan sejumlah keuntungan utama, antara lain:

  • Aplikasi tidak bergantung pada jenis file system tertentu, karena seluruh akses dilakukan melalui antarmuka yang sama
  • Kemampuan untuk melakukan mount berbagai filesystem secara bersamaan dalam satu pohon direktori
  • Dukungan terhadap berbagai tipe file system, termasuk network file system, virtual file system, dan pseudo filesystem

Sebagai contoh implementasi virtual dan pseudo filesystem dalam sistem Unix/Linux:

  • /proc → menyediakan informasi internal kernel dan proses
  • /sys → menyediakan antarmuka kontrol dan konfigurasi perangkat
  • /dev → merepresentasikan perangkat keras sebagai device file

Networking Stack

Networking stack merupakan subsistem inti dalam kernel yang bertanggung jawab terhadap pengelolaan komunikasi jaringan pada sistem operasi. Subsistem ini mengatur alur pengiriman dan penerimaan data antar perangkat, baik dalam jaringan lokal maupun jaringan luas, dengan menerapkan model berlapis agar komunikasi dapat berlangsung secara terstruktur dan efisien.

Secara konseptual, networking stack tersusun atas beberapa lapisan utama, yaitu:

  • Network interface, yang diimplementasikan melalui driver untuk berinteraksi langsung dengan perangkat jaringan
  • Link layer, yang menangani komunikasi pada tingkat fisik dan data-link, seperti Ethernet dan WiFi
  • Network layer, yang berfungsi mengelola pengalamatan dan perutean paket berbasis Internet Protocol (IP)
  • Transport layer, yang menyediakan mekanisme komunikasi end-to-end menggunakan protokol seperti Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP)
  • Socket interface, yang menjadi antarmuka antara kernel dan user space agar aplikasi dapat memanfaatkan layanan jaringan

Pada sistem operasi Linux, berbagai fungsi jaringan tingkat lanjut dikelola secara terpusat oleh kernel, termasuk:

  • Routing
  • Firewall
  • Network Address Translation (NAT)
  • Traffic shaping dan pengendalian kualitas layanan

Karakteristik khusus OpenWRT:

OpenWRT memiliki keunikan karena networking stack bukan sekadar fitur pendukung, melainkan fokus utama sistem operasi, sehingga arsitektur, konfigurasi, dan optimalisasi jaringan menjadi bagian sentral dari desain dan penggunaannya.

Security dan Isolation

Keamanan pada sistem operasi modern dirancang melalui pendekatan berlapis (layered security), yang bertujuan untuk melindungi sistem dari kesalahan, penyalahgunaan, maupun aktivitas berbahaya, baik yang bersifat tidak disengaja maupun disengaja. Pendekatan ini memastikan bahwa kegagalan pada satu lapisan tidak secara langsung mengancam integritas sistem secara keseluruhan.

Beberapa mekanisme utama yang membentuk arsitektur keamanan dan isolasi sistem operasi modern meliputi:

Privilege Separation

Pemisahan hak akses diterapkan untuk membatasi kemampuan perangkat lunak dalam berinteraksi dengan sumber daya sistem. Pemisahan ini diwujudkan melalui:

  • Kernel mode dan user mode
  • Akun root dan pengguna biasa

Dengan mekanisme ini, hanya komponen tertentu yang memiliki kewenangan penuh untuk mengakses perangkat keras secara langsung.

Process Isolation

Setiap proses dijalankan dalam ruang alamat (address space) yang terpisah. Isolasi ini didukung oleh mekanisme perlindungan memori yang disediakan oleh Memory Management Unit (MMU), sehingga satu proses tidak dapat membaca atau memodifikasi memori proses lain tanpa izin yang sah.

Filesystem Permission

Sistem operasi menerapkan kontrol akses berbasis file system untuk membatasi interaksi pengguna dan aplikasi terhadap berkas. Mekanisme ini mencakup:

  • Hak akses read, write, dan execute
  • Ownership berkas
  • Access Control List (ACL) untuk pengaturan hak akses yang lebih rinci

Namespace dan Cgroups

Namespace dan control groups (cgroups) merupakan mekanisme isolasi tingkat lanjut yang digunakan untuk:

  • Implementasi container
  • Isolasi sumber daya seperti CPU, memori, dan jaringan
  • Mendukung sistem Android dan arsitektur cloud-native

Mandatory Access Control (MAC)

Selain kontrol akses tradisional, sistem operasi modern juga mendukung mandatory access control, yang menerapkan kebijakan keamanan secara ketat dan terpusat. Contoh implementasi MAC antara lain:

  • Security-Enhanced Linux (SELinux)
  • AppArmor

Inti keamanan sistem operasi:

Kernel berperan sebagai satu-satunya penjaga gerbang yang mengatur dan membatasi seluruh akses terhadap perangkat keras, sehingga menjadi fondasi utama dalam menjaga keamanan dan stabilitas sistem.

Penutup

Bab ini cukup sebagai fondasi, bukan tujuan akhir. Pemahaman konsep ini akan langsung diuji dan diperdalam melalui:

  • Praktik Ubuntu 24.04
  • Compile kernel
  • OpenWRT routing & mesh
  • Android x86
  • Kernel tuning & security lab
➡️ Setelah ini, mahasiswa tidak hanya “menggunakan OS”, tapi mulai “mengutak-atik OS”.


Pranala Menarik

Pranala Menarik