Komponen Sistem Linux

Komponen Sistem Linux

Bitnesia Apr 19, 2026 26 EN

Bab sebelumnya telah menyinggung bahwa Linux secara teknis hanyalah sebuah kernel, inti sistem operasi yang berinteraksi langsung dengan perangkat keras (hardware). Agar menjadi sistem operasi yang fungsional, kernel membutuhkan berbagai komponen perangkat lunak yang masing-masing memiliki peran spesifik.

Memahami komponen-komponen ini sangat penting karena akan membantu Anda membaca pesan galat (error) secara lebih tepat, memahami cara kerja sistem, dan menavigasi Linux dengan lebih percaya diri tanpa sekadar menghafal perintah.

Bayangkan sistem Linux seperti sebuah restoran. Kernel adalah dapur: tempat semua kerja keras terjadi dan tersembunyi dari tamu. Shell adalah pelayan yang menerima pesanan Anda lalu menyampaikannya ke dapur. Lingkungan desktop (desktop environment) adalah ruang makan yang Anda lihat dan rasakan. Setiap bagian memiliki fungsinya sendiri, tetapi semua harus bekerja sama agar restoran bisa berjalan.

Mari kita bahas komponen tersebut satu per satu.

Lapisan-lapisan Sistem Linux

Mari kita lihat gambaran besar bagaimana komponen-komponen Linux tersusun sebelum masuk ke detail. Sistem Linux bisa dibayangkan sebagai tumpukan lapisan (layers). Lapisan paling bawah adalah hardware fisik, sementara lapisan paling atas adalah aplikasi yang Anda gunakan sehari-hari. Di antaranya terdapat kernel, berbagai library dan utilitas GNU, display server, serta desktop environment (atau shell jika Anda bekerja tanpa antarmuka grafis).

linux-layers.webp

Setiap lapisan hanya berkomunikasi langsung dengan lapisan di bawah dan di atasnya. Aplikasi tidak perlu mengetahui detail hardware karena hal itu merupakan urusan kernel. Kernel tidak perlu mengetahui cara menampilkan jendela karena hal itu menjadi urusan display server dan desktop environment.

Kernel Linux

Kernel adalah jantung dari seluruh sistem. Komponen ini merupakan satu-satunya bagian sistem operasi yang berjalan di level hardware secara langsung, di ruang yang disebut kernel space, area memori yang dilindungi dan hanya bisa diakses oleh kernel sendiri.

linux-architecture.webp

Semua program yang kita jalankan, seperti browser, terminal, atau text editor, beroperasi di user space. Program yang membutuhkan akses ke hardware seperti membaca file, mengirim data lewat jaringan, atau menampilkan sesuatu di layar, harus meminta izin kernel melalui mekanisme yang disebut system call (syscall).

Pemisahan antara kernel space dan user space ini merupakan fondasi keamanan sistem Linux. Program yang mengalami kegagalan (crash) di user space tidak bisa langsung merusak seluruh sistem karena program tersebut tidak memiliki akses langsung ke hardware atau ke memori program lain. Kernel bertugas mengatur segala sesuatunya.

Kernel Linux: Monolithic dengan Modul

Linux menggunakan arsitektur monolithic kernel. Sebagian besar fungsi inti, manajemen proses, manajemen memori, driver perangkat, dan manajemen filesystem, dikompilasi dan berjalan dalam satu blok kode di kernel space.

Arsitektur monolithic kernel lebih efisien dibandingkan microkernel (yang digunakan sistem seperti MINIX atau QNX) karena komponen-komponennya bisa berkomunikasi langsung tanpa overhead pergantian konteks (context switching).

Kernel Linux juga mendukung loadable kernel modules (LKM), potongan kode yang bisa dimuat (load) ke dalam kernel saat dibutuhkan dan dilepas (unload) saat tidak diperlukan tanpa perlu melakukan reboot. Hampir semua driver perangkat di Linux diimplementasikan sebagai module. Anda bisa melihat module yang sedang dimuat dengan perintah:

lsmod

Manajemen Proses

Setiap program yang berjalan di Linux adalah sebuah process (proses). Kernel membuat sebuah proses baru saat Anda membuka browser. Browser mungkin membuat proses tambahan saat membuka tab baru. Sistem yang baru saja dinyalakan bahkan sudah memiliki puluhan hingga ratusan proses yang berjalan di background.

Kernel bertanggung jawab penuh atas manajemen proses melalui beberapa mekanisme:

Process scheduling (penjadwalan proses)

CPU fisik hanya bisa mengeksekusi satu instruksi pada satu waktu per core. Namun, kita bisa menjalankan ratusan program secara bersamaan. Kernel menggunakan scheduler untuk membagi waktu CPU di antara semua proses yang aktif. Setiap proses mendapatkan giliran menggunakan CPU dalam slot waktu yang sangat singkat, biasanya beberapa milidetik. Pergantian ini terjadi begitu cepat sehingga manusia merasakannya sebagai multitasking sejati.

Kernel Linux menggunakan Completely Fair Scheduler (CFS) sebagai default scheduler sejak kernel versi 2.6.23. CFS mendistribusikan waktu CPU secara adil di antara semua proses yang aktif dengan mempertimbangkan prioritas (niceness) masing-masing proses. Sejak kernel 6.6 tahun 2023, Linux menyertakan EEVDF (Earliest Eligible Virtual Deadline First) scheduler sebagai penyempurnaan dari CFS yang memberikan latensi lebih rendah dan distribusi waktu yang lebih presisi. Kernel 7.0, yang menjadi basis Ubuntu 26.04 LTS dan tersedia bagi Fedora Workstation 44 melalui pembaruan reguler, menambahkan kerangka kerja sched_ext yang memungkinkan scheduler khusus berbasis eBPF dipasang dan diganti secara langsung tanpa perlu mengompilasi ulang kernel, sementara EEVDF tetap menjadi scheduler default.

Process states (status proses)

StateKeterangan
RunningProses sedang aktif menggunakan CPU
Sleeping (Interruptible)Proses menunggu suatu event (I/O, sinyal) dan bisa diinterupsi
Sleeping (Uninterruptible)Proses menunggu I/O hardware dan tidak bisa diinterupsi
StoppedProses dihentikan sementara (biasanya oleh sinyal SIGSTOP)
ZombieProses sudah selesai tetapi belum dibersihkan oleh proses induknya
linux-process-state.webp

Process hierarchy (hierarki proses)

Setiap proses di Linux, kecuali proses yang pertama, memiliki parent process, proses yang melahirkannya. Hal ini menciptakan hierarki pohon. Proses pertama yang dijalankan kernel saat boot adalah systemd (PID 1) yang menjadi nenek moyang dari semua proses lainnya. Anda bisa melihat seluruh pohon proses dengan perintah:

pstree

Inter-Process Communication (IPC)

Proses-proses perlu berkomunikasi satu sama lain. Kernel menyediakan berbagai mekanisme IPC:

  • Pipe: aliran data satu arah antara dua proses.
  • Signal: notifikasi asinkron, misalnya SIGTERM untuk meminta proses berhenti.
  • Shared memory: area memori yang bisa diakses oleh beberapa proses.
  • Socket: komunikasi dua arah, termasuk antar mesin yang berbeda.

Manajemen Memori

Manajemen memori adalah salah satu fungsi paling kritis dalam kernel. Kernel harus memastikan setiap proses mendapatkan memori yang dibutuhkan dan tidak bisa mengakses memori proses lain.

Virtual memory (memori virtual)

Setiap proses di Linux tidak bekerja langsung dengan alamat memori fisik (RAM). Sebaliknya, kernel memberikan setiap proses ilusi bahwa ia memiliki ruang memori sendiri yang besar dan kontinyu, yang disebut virtual address space. Kernel mengelola pemetaan antara virtual address yang dilihat proses dan physical address atau lokasi sebenarnya di RAM melalui tabel yang disebut page table. Unit terkecil dari pemetaan ini disebut page, yang biasanya berukuran 4 KB.

linux-virtual-memory.webp

Virtual memory memberikan beberapa keuntungan:

  • Isolasi proses: proses tidak bisa mengakses memori proses lain meskipun berbagi RAM fisik yang sama.
  • Fleksibilitas: program bisa menganggap ia memiliki lebih banyak RAM dari kapasitas fisik yang tersedia.
  • Keamanan: eksploitasi memori menjadi lebih sulit dilakukan.

Demand paging

Kernel tidak selalu langsung mengalokasikan RAM fisik ketika proses meminta blok memori. Kernel mencatat permintaan tersebut dan baru mengalokasikan halaman (page) fisik saat proses benar-benar mengakses memori tersebut. Mekanisme ini disebut demand paging, cara efisien untuk mengelola memori tanpa membuang RAM.

Swap

Kernel bisa memindahkan halaman memori yang tidak aktif ke area khusus yang disebut swap saat RAM fisik penuh. Halaman tersebut akan dipindahkan kembali ke RAM saat dibutuhkan kembali. Mekanisme ini memungkinkan sistem menjalankan lebih banyak program dari kapasitas RAM fisik, meskipun dengan konsekuensi kecepatan yang lebih lambat jika swap berada di disk, karena performa disk jauh di bawah RAM. Di Ubuntu 26.04 LTS, swap tetap diimplementasikan sebagai swapfile di disk yang dibuat otomatis saat instalasi; dukungan zswap (kompresi swap di kernel) sudah tersedia tetapi tidak diaktifkan secara default. Fedora Workstation, termasuk versi 44, mengambil pendekatan berbeda: secara default ia menggunakan swap-on-zram, yaitu perangkat blok terkompresi di RAM (/dev/zram0) yang jauh lebih cepat daripada swap berbasis disk karena tidak melibatkan I/O ke storage sama sekali. Swapfile berbasis disk di Fedora baru dibuat secara manual, misalnya saat pengguna ingin mengaktifkan fitur hibernasi.

OOM Killer

Kernel akan mengaktifkan OOM Killer (Out-Of-Memory Killer) dalam kondisi ekstrem ketika RAM dan swap habis. Ini merupakan mekanisme yang secara otomatis menghentikan proses tertentu untuk membebaskan memori dan mencegah sistem dari crash total.

Manajemen Hardware dan Driver

Kernel Linux mendukung ribuan jenis perangkat keras yang berbeda mulai dari berbagai arsitektur CPU, kartu grafis, perangkat audio, USB, Bluetooth, hingga sensor suhu laptop. Semua ini dimungkinkan melalui sistem device driver.

Device driver

Device driver adalah perangkat lunak yang menjadi penerjemah antara kernel dan perangkat keras. Driver memahami cara berkomunikasi dengan hardware tertentu, seperti protokol komunikasinya, register yang harus diakses, serta cara mengirim dan menerima data, kemudian mengeksposnya ke kernel dalam bentuk antarmuka yang standar.

Hampir semua driver di Linux disertakan langsung dalam source code kernel (in-tree driver), meskipun ada juga driver out-of-tree yang dimuat terpisah seperti driver NVIDIA proprietary. Hal ini menjadi salah satu alasan kernel Linux berukuran besar karena membawa dukungan untuk ribuan perangkat sekaligus.

Device file (file perangkat)

Linux menerapkan filosofi "segalanya adalah file" (everything is a file). Perangkat keras direpresentasikan sebagai file khusus di direktori /dev/:

  • /dev/sda: disk SATA atau SCSI pertama.
  • /dev/nvme0n1: NVMe SSD pertama.
  • /dev/tty1: terminal pertama.
  • /dev/input/mouse0: perangkat mouse.
  • /dev/null: lokasi yang membuang semua input.

Terdapat dua jenis utama device file:

  • Block device: perangkat yang membaca atau menulis dalam blok seperti disk dan USB flashdisk.
  • Character device: perangkat yang membaca atau menulis per karakter seperti keyboard dan port serial.

udev: Device manager

udev adalah device manager untuk kernel Linux yang berjalan di user space. Kernel mendeteksi perangkat baru dan memberi tahu udev saat Anda mencolokkan USB flashdisk. udev kemudian secara otomatis membuat file di /dev/, memanggil skrip yang tepat, dan memberi tahu sistem tentang perangkat baru tersebut. udev terintegrasi dengan systemd melalui komponen systemd-udevd di Ubuntu dan Fedora.

Kernel parameter dan /proc, /sys

Kernel mengekspos informasi tentang dirinya dan sistem melalui dua virtual filesystem yang bisa dibaca seperti file biasa:

  • /proc/: berisi informasi tentang proses yang berjalan, parameter kernel, dan statistik sistem.
  • /sys/ (sysfs): berisi informasi dan antarmuka konfigurasi untuk perangkat keras dan driver.

File-file di direktori tersebut dibuat secara dinamis oleh kernel saat diakses dan tidak benar-benar tersimpan di disk.

Manajemen Filesystem

Filesystem adalah sistem yang mengorganisasi cara data disimpan dan diakses di storage. Kernel Linux mendukung puluhan jenis filesystem yang berbeda melalui lapisan abstraksi yang disebut Virtual File System (VFS).

VFS mendefinisikan antarmuka standar seperti operasi open, read, write, dan close yang harus diimplementasikan oleh setiap filesystem. Aplikasi bisa membaca dan menulis file tanpa perlu mengetahui apakah data disimpan dalam format ext4, XFS, Btrfs, atau sistem file jaringan berkat adanya VFS.

Filesystem yang umum di Linux:

FilesystemKeterangan
ext4Default di sebagian besar distro turunan Debian, termasuk Ubuntu 26.04 LTS: matang, stabil, dan cepat.
BtrfsDefault di Fedora Workstation, termasuk Fedora 44, sejak Fedora 33 (2020): mendukung snapshot, compression, serta manajemen volume bawaan tanpa perlu LVM terpisah.
XFSPerforma tinggi terutama untuk file besar; menjadi default di Fedora Server, bukan di Fedora Workstation.
FAT32 / exFATKompatibilitas dengan Windows dan perangkat lama.
NTFSFilesystem Windows yang bisa diakses via driver ntfs3 atau NTFS-3G.
tmpfsFilesystem di RAM untuk /tmp dan /run: data hilang saat reboot.

ext4 dan XFS adalah journaling filesystem: keduanya mencatat perubahan yang akan dilakukan ke area khusus (journal) sebelum benar-benar menerapkannya, sehingga filesystem bisa pulih ke kondisi konsisten dengan memutar ulang journal jika sistem mati tiba-tiba. Btrfs mencapai ketahanan yang serupa dengan pendekatan yang berbeda, yaitu copy-on-write (COW): alih-alih menimpa data lama secara langsung, Btrfs selalu menulis perubahan ke lokasi baru terlebih dahulu dan baru memperbarui metadata setelah penulisan selesai, sehingga filesystem tidak pernah berada dalam kondisi setengah tertulis meski terjadi mati listrik mendadak. Pendekatan COW inilah yang juga menjadi dasar fitur snapshot instan pada Btrfs.

GNU Utilities: Tools Dasar Sistem

Kernel yang berdiri sendiri tidak bisa melakukan banyak hal dari sudut pandang pengguna. Kumpulan program dasar diperlukan untuk membuat sistem yang benar-benar bisa dipakai. Di sinilah GNU Utilities berperan.

GNU Project yang dimulai oleh Richard Stallman pada 1983 menghasilkan ratusan program yang menjadi fondasi sistem Linux. Berikut adalah kelompok terpenting di antaranya:

GNU Coreutils

GNU Coreutils adalah paket yang berisi perintah-perintah paling fundamental yang Anda gunakan setiap hari di terminal. Tanpanya, sistem tidak bisa berfungsi:

PerintahFungsi
lsMenampilkan isi direktori
cpMenyalin file
mvMemindahkan atau mengganti nama file
rmMenghapus file
mkdirMembuat direktori
catMenampilkan isi file

Perintah-perintah di atas serta puluhan perintah sejenis lainnya selalu tersedia di semua distro Linux sebagai ketergantungan fundamental sistem, tetapi tidak semua distro lagi menjalankan implementasi asli dari proyek GNU untuk mengeksekusinya. Ubuntu 26.04 LTS adalah contoh nyata: sejak Ubuntu 25.10, Canonical menjadikan uutils, sebuah penulisan ulang coreutils dalam bahasa Rust yang bertujuan menjadi pengganti langsung (drop-in replacement) GNU Coreutils, sebagai implementasi default untuk sekitar seratus perintah seperti ls, cat, mkdir, chmod, dan sort. Tujuannya adalah keamanan memori (memory safety) yang lebih baik dibanding kode C lama. Tiga perintah, yaitu cp, mv, dan rm, untuk sementara tetap memakai versi GNU karena ditemukan celah keamanan jenis TOCTOU (time-of-check to time-of-use) pada implementasi Rust-nya. Kedua versi tetap terpasang berdampingan, dan pengguna yang ingin kembali sepenuhnya ke GNU Coreutils bisa melakukannya lewat manajer paket. Fedora Workstation, sejauh ini, belum mengikuti langkah tersebut dan tetap menggunakan GNU Coreutils asli.

GNU Binutils

GNU Binutils adalah koleksi alat untuk bekerja dengan kode binary dan object files yang penting untuk proses kompilasi perangkat lunak. Koleksi ini mencakup ld (linker), as (assembler), dan berbagai utilitas lainnya.

GNU C Library (glibc)

glibc adalah implementasi standard C library yang digunakan di Linux. Komponen ini sangat kritis karena hampir setiap program yang berjalan di Linux terhubung ke glibc. Komponen tersebut menyediakan fungsi-fungsi dasar seperti printf(), malloc(), manajemen file, serta antarmuka ke system call kernel.

glibc berperan sebagai jembatan antara program dan kernel. Library ini membungkus system call dalam fungsi-fungsi C standar yang lebih mudah digunakan oleh programmer. Berbeda dengan Coreutils, glibc belum tersentuh oleh tren penggantian komponen sistem dengan Rust dan tetap menjadi implementasi GNU baik di Ubuntu maupun Fedora.

Bash (GNU Bourne Again Shell)

Bash merupakan shell default di banyak distro Linux termasuk Ubuntu 26.04 LTS. Program ini adalah bagian dari proyek GNU dan merupakan implementasi bebas dari Bourne Shell (sh) yang asli.

Systemd

Systemd adalah komponen fundamental yang ada di distro Linux modern, meskipun secara formal bukan bagian dari GNU. Systemd berperan sebagai init system, program pertama yang dijalankan kernel setelah boot (PID 1). Program ini juga menjadi manajer layanan, logging, perangkat, dan banyak fungsi sistem lainnya.

Kehadiran systemd sempat kontroversial di komunitas Linux karena filosofinya yang melakukan banyak hal dianggap bertentangan dengan tradisi UNIX yang lebih modular. Namun, saat ini systemd sudah menjadi standar de facto di hampir seluruh ekosistem distro Linux utama, termasuk versi terbaru yang dibawa Ubuntu 26.04 LTS dan Fedora Workstation 44.

Shell: Antarmuka Baris Perintah

Shell adalah program yang menerima perintah dari pengguna atau dari skrip, menginterpretasikannya, dan mengeksekusinya baik secara langsung maupun dengan memanggil program lain. Komponen ini merupakan antarmuka utama antara manusia dan sistem operasi.

Nama shell mengacu pada metafora: ia adalah cangkang yang membungkus kernel untuk melindungi pengguna dari kompleksitas kernel sambil tetap memberikan akses ke kemampuannya.

Cara Kerja Shell

Beberapa hal berikut terjadi ketika Anda mengetik perintah di terminal dan menekan Enter:

  1. Shell membaca input Anda.
  2. Shell melakukan parsing untuk memecah input menjadi perintah, opsi, dan argumen.
  3. Shell langsung mengeksekusi perintah jika bersifat built-in seperti cd atau echo.
  4. Shell mencari file executable yang sesuai di direktori yang terdaftar dalam $PATH jika bukan perintah built-in.
  5. Shell membuat proses baru (fork) dan menjalankan program tersebut (exec).
  6. Shell menunggu program selesai kemudian menampilkan prompt kembali.

Shell juga menyediakan berbagai fitur pendukung:

  • Redirection: mengarahkan output ke file atau input dari file (>, <, >>).
  • Pipe: menghubungkan output satu perintah ke input perintah lain (|).
  • Variables: menyimpan nilai.
  • Scripting: menulis urutan perintah dalam file yang bisa dieksekusi otomatis.
  • Tab completion: melengkapi nama perintah dan file secara otomatis.
  • History: mengingat perintah yang pernah diketik.

Shell yang Umum di Linux

ShellKeterangan
BashDefault di Ubuntu: populer dan kompatibel luas.
ZshPopuler dengan plugin seperti Oh My Zsh: interaktif dan canggih.
FishMemiliki syntax highlighting dan autosuggestion bawaan.
DashShell ringan yang digunakan sebagai /bin/sh di Ubuntu untuk scripting sistem.

Default login shell pengguna di Ubuntu adalah Bash, sementara /bin/sh diarahkan ke Dash untuk menjalankan skrip sistem karena performanya yang lebih cepat. Bash juga menjadi default di Fedora meskipun Zsh tersedia sebagai alternatif populer.

Shell Bukan Terminal

Perbedaan antara shell dan terminal harus dipahami dengan jelas:

  • Terminal emulator (seperti GNOME Terminal atau Konsole) adalah aplikasi grafis yang menyediakan jendela teks serta mengelola interaksi keyboard dan layar.
  • Shell adalah program yang berjalan di dalam terminal untuk menginterpretasikan perintah Anda.

Terminal hanyalah layar dan keyboard virtual. Shell adalah komponen yang melakukan pekerjaan sesungguhnya. Anda bisa mengganti shell yang berjalan di dalam terminal yang sama.

Desktop Environment: Antarmuka Grafis

Desktop Environment (DE) menyediakan antarmuka grafis (Graphical User Interface) yang lengkap bagi pengguna yang merasa tidak nyaman berinteraksi melalui teks saja. DE mencakup window, ikon, menu, taskbar, panel notifikasi, dan elemen visual lainnya.

DE bukanlah satu program tunggal, melainkan sekumpulan perangkat lunak yang bekerja bersama yang terdiri dari:

  • Window manager: mengelola posisi, ukuran, dan dekorasi jendela.
  • Panel / taskbar: menampilkan menu, jam, notifikasi, dan aplikasi terbuka.
  • File manager: antarmuka grafis untuk menjelajahi folder.
  • Settings manager: pusat pengaturan sistem.
  • Session manager: mengelola login, logout, dan penyimpanan sesi.
  • Berbagai aplikasi pendukung: text editor, image viewer, calculator, dan lainnya.

Desktop Environment Utama di Linux

GNOME

GNOME merupakan DE bawaan yang digunakan oleh Ubuntu dan Fedora Workstation. GNOME mengutamakan desain yang bersih dan sederhana. Ciri khasnya meliputi Activities Overview untuk melihat jendela terbuka, Top bar untuk kontrol sistem, serta fokus pada penggunaan touchpad gesture dan keyboard.

KDE Plasma

KDE Plasma adalah DE yang sangat fleksibel untuk dikustomisasi dengan tampilan yang lebih mirip Windows. Distro seperti Kubuntu menggunakan DE ini secara default.

XFCE

XFCE merupakan DE yang ringan dan efisien sehingga cocok untuk komputer dengan spesifikasi rendah.

Desktop Environment di Ubuntu vs Fedora

AspekUbuntu 26.04 LTSFedora Workstation 44
DE bawaanGNOME 50GNOME 50
ModifikasiBanyak modifikasi (Ubuntu Dock, tema Yaru, App Center)Minimal (GNOME vanilla)
TampilanDock di kiri secara default, kini tampil opak (opaque)Tidak ada Dock permanen

Kedua distro kini sama-sama berada di GNOME 50, sehingga perbedaan pengalaman pengguna antara keduanya lebih banyak ditentukan oleh tingkat modifikasi dan aplikasi bawaan masing-masing, bukan oleh versi GNOME yang jauh berbeda seperti pada rilis-rilis sebelumnya.

Display Server: X11 dan Wayland

Display server merupakan perangkat lunak yang mengelola komunikasi antara aplikasi, window manager, dan hardware grafis. Komponen ini bertugas menampilkan jendela dan grafis di layar.

X Window System (X11)

X Window System atau X11 adalah display server yang telah digunakan Linux selama lebih dari tiga dekade. Arsitektur X11 menggunakan model client-server. X server mengelola input dan output pada mesin, sementara X client adalah aplikasi yang meminta tampilan. Desain X11 yang sudah tua membawa beban historis yang kompleks dan sulit untuk mengimplementasikan fitur modern seperti HDR secara bersih.

Wayland

Wayland adalah protokol display server modern yang dirancang sebagai pengganti X11. Peran server di Wayland digabungkan langsung ke dalam compositor. Compositor langsung berkomunikasi dengan hardware grafis melalui kernel interface yang disebut KMS (Kernel Mode Setting) dan DRM (Direct Rendering Manager).

Wayland menawarkan keamanan yang lebih baik, performa lebih mulus, serta dukungan fitur modern seperti variable refresh rate (VRR) dan fractional scaling.

Wayland kini bukan sekadar pilihan default, melainkan satu-satunya sesi GNOME yang tersedia di kedua distro. GNOME 50 pada Ubuntu 26.04 LTS menghapus opsi sesi X11 dari layar login (GDM), dan Fedora Workstation sudah lebih dulu melakukan hal serupa. Aplikasi lama berbasis X11 tetap bisa dijalankan berkat lapisan kompatibilitas Xwayland, tetapi Anda tidak lagi bisa memilih untuk login ke sesi X11 penuh di GNOME seperti pada rilis-rilis sebelumnya. Anda bisa memeriksa jenis sesi yang sedang aktif dengan perintah:

echo $XDG_SESSION_TYPE
display-server-architecture.webp

Package Manager: Sistem Instalasi Software

Package manager adalah sistem yang mengelola instalasi, pembaruan, konfigurasi, dan penghapusan perangkat lunak secara terpusat. Sistem ini mengunduh perangkat lunak dari repository: server resmi yang menyimpan ribuan paket yang sudah diverifikasi.

Keuntungan menggunakan package manager meliputi keamanan yang terjamin, manajemen dependensi otomatis, serta kemudahan dalam pembaruan sistem secara menyeluruh melalui satu perintah.

Ekosistem Package Manager

APT (Advanced Package Tool): Ubuntu

Ubuntu menggunakan sistem paket .deb dengan APT sebagai frontend utama.

sudo apt update
sudo apt install nama_paket
sudo apt upgrade

DNF (Dandified YUM): Fedora

Fedora menggunakan sistem paket .rpm dengan DNF sebagai frontend utama. Sejak Fedora 44, seluruh jalur instalasi software, termasuk aplikasi grafis GNOME Software, berjalan di atas backend DNF5 (libdnf5) yang sama dengan perintah dnf di terminal, sehingga perilakunya menjadi lebih konsisten di seluruh antarmuka.

sudo dnf check-update
sudo dnf install nama_paket
sudo dnf upgrade

Format Paket Universal

Flatpak dan Snap merupakan format paket universal yang bisa berjalan di berbagai distro. Flatpak memungkinkan aplikasi berjalan dalam sandbox yang terisolasi. Fedora 44 mengaktifkan Flathub secara default, sementara Ubuntu 26.04 LTS menggunakan Snap untuk banyak aplikasi bawaan. Ubuntu 26.04 LTS juga memperkenalkan App Center, yang menyatukan pengelolaan paket Deb, Snap, dan Flatpak dalam satu antarmuka grafis.

Semua Komponen Bekerja Bersama

Aksi sederhana seperti membuka browser Firefox melibatkan interaksi antar komponen sebagai berikut:

  1. Desktop Environment menerima klik pada ikon Firefox.
  2. GNOME meminta Shell untuk meluncurkan program.
  3. Kernel mengalokasikan memori dan membuat entri proses baru untuk Firefox.
  4. Firefox berkomunikasi dengan Wayland compositor untuk menampilkan jendela.
  5. Wayland compositor meminta Kernel untuk menggambar piksel ke layar melalui driver GPU.
  6. Firefox memanggil fungsi networking dari glibc yang kemudian melakukan system call ke Kernel untuk mengunduh data.
  7. Kernel menggunakan driver jaringan untuk menerima paket data dari internet.
  8. Firefox merender halaman web dan menampilkannya kembali melalui Wayland compositor.
component-interaction-sequence.webp

Ringkasan

  • Kernel Linux adalah inti sistem yang mengelola proses, memori, hardware, dan filesystem.
  • GNU Utilities melengkapi kernel agar menjadi sistem yang fungsional bagi pengguna, meskipun sebagian implementasinya kini mulai digantikan oleh penulisan ulang berbasis Rust di distro seperti Ubuntu.
  • Shell adalah antarmuka baris perintah untuk mengeksekusi perintah pengguna.
  • Desktop Environment menyediakan antarmuka grafis lengkap seperti GNOME.
  • Display Server mengelola tampilan grafis, dengan Wayland kini menjadi satu-satunya sesi GNOME di Ubuntu dan Fedora.
  • Package Manager mengelola perangkat lunak melalui repository resmi yang aman.

Memahami komponen-komponen ini bukan sekadar pengetahuan teoretis, melainkan sebuah peta navigasi. Ketika suatu program gagal berjalan, Anda kini tahu apakah masalahnya berada di kernel, library, shell, atau desktop environment. Saat muncul pesan galat (error) tentang dependensi yang hilang, Anda akan mengerti alasan manajer paket (package manager) itu ada. Pemahaman tentang lapisan-lapisan ini akan terus berguna seiring Anda menjelajahi Linux lebih dalam. Hal ini akan menjadi lensa yang membantu Anda membaca dokumentasi, memahami pesan galat, serta berpikir sistematis tentang cara kerja sistem yang digunakan.