Membedah cara kerja Linux dari dalam: lapisan arsitektur Hardware, Kernel, Shell, hingga aplikasi, lalu menjelajahi struktur direktori standar FHS beserta fungsi tiap direktori seperti /etc, /home, /var, dan /proc.

Setelah di episode 1 sebelumnya kita membahas sejarah dan filosofi Linux — dari era Unix di Bell Labs, proyek GNU, kernel Linux buatan Linus Torvalds, hingga prinsip "everything is a file" — pada episode kali ini kita akan membedah cara kerja internal sistem Linux: bagaimana lapisan-lapisannya tersusun, dan bagaimana file-file sistem diorganisir dalam struktur direktori standar.
Mengapa ini penting? Karena hampir setiap tugas administrasi Linux bermuara pada "menaruh atau membaca file di tempat yang tepat". Konfigurasi ada di /etc, data aplikasi di /var, program di /usr, dan log bisa memenuhi /var/log. DevOps Engineer yang tidak paham struktur ini akan kebingungan mencari file konfigurasi nginx, melihat log, atau menemukan mengapa disk server penuh. Pahami arsitektur dan FHS, dan separuh perjalanan kalian di series ini sudah terasa ringan.
Episode 2 ini akan membahas dua hal besar: pertama, empat lapisan arsitektur Linux (Hardware → Kernel → Shell → Applications); kedua, Filesystem Hierarchy Standard (FHS) beserta fungsi setiap direktori utama. Kita juga akan menjelajahi sistem kalian secara langsung untuk melihat struktur ini dalam praktik.
Linux dibangun seperti bangunan bertingkat. Setiap lapisan memiliki peran spesifik, dan program di lapisan atas tidak pernah berbicara langsung dengan hardware di lapisan paling bawah — mereka berkomunikasi lewat lapisan di bawahnya.
Lapisan paling bawah: CPU, RAM, disk, kartu jaringan, dan seluruh perangkat keras fisik. Hardware tidak memahami konsep "file" atau "proses" — ia hanya mengerti instruksi mesin dan sinyal elektronik.
Lapisan kernel adalah jembatan antara hardware dan software. Kernel adalah satu-satunya program yang boleh berkomunikasi langsung dengan hardware — mengelola CPU time, mengalokasikan memori, menangani I/O disk dan jaringan, serta menjadi "polisi lalu lintas" yang memastikan setiap proses mendapat bagian yang adil. Ketika sebuah program butuh menulis ke disk, ia tidak menulis langsung ke hardware; ia meminta kernel lewat system call.
Inilah mengapa saat kalian menjalankan uname -a di episode 0, output-nya adalah versi kernel — karena kernel adalah identitas sesungguhnya dari sistem Linux. Kernel bukan hanya satu; ia juga bisa di-load sebagai modul (seperti driver) sesuai kebutuhan.
Shell adalah penerjemah perintah yang berdiri di antara pengguna dan kernel. Kalian mengetik ls /home di terminal, shell menafsirkannya, lalu meminta kernel menjalankannya. Shell paling populer adalah Bash (Bourne Again Shell), tetapi ada juga zsh, fish, dan sh.
Analogi terbaik: shell adalah pelayan restoran antara tamu (pengguna) dan dapur (kernel). Tamu tidak perlu tahu cara memasak — cukup menyampaikan pesanan, dan pelayan yang menyampaikannya ke dapur lalu membawakan hasilnya. Shell melindungi kalian dari kerumitan system call, sekaligus memberi kalian bahasa (sintaks shell) untuk mengendalikan sistem.
Lapisan paling atas: semua program yang kalian jalankan — nginx, nginx, database, skrip bash, hingga aplikasi kantor. Program-program ini hidup di user space, dipisahkan dengan tegas dari kernel space. Pemisahan ini adalah fondasi keamanan Linux: jika sebuah aplikasi crash atau diretas, dampaknya terisolasi dan tidak merusak kernel.
┌─────────────────────────────────────────┐
│ User Space / Applications │ nginx, sshd, database, skrip
├─────────────────────────────────────────┤
│ Shell (Bash, zsh, fish) │ penerjemah perintah
├─────────────────────────────────────────┤
│ Linux Kernel │ manajer hardware & resource
├─────────────────────────────────────────┤
│ Hardware │ CPU, RAM, disk, NIC
└─────────────────────────────────────────┘| Lapisan | Peran | Contoh |
|---|---|---|
| Hardware | Perangkat fisik | CPU, RAM, disk, NIC |
| Kernel | Menjembatani hardware & software, mengelola resource | Linux 6.8 |
| Shell | Menerjemahkan perintah pengguna | Bash, zsh, fish |
| Applications | Program yang dipakai manusia | nginx, sshd, python |
Note
Karena semua aplikasi berjalan di user space dan berkomunikasi dengan kernel lewat system call, kalian bisa mematikan dan menghidupkan ulang hampir semua layanan tanpa me-restart sistem. Coba ingat di Windows: sering kali kalian harus reboot setelah instalasi. Di Linux, reboot jarang diperlukan — ini buah dari arsitektur berlapis yang rapi.
Sekarang kita masuk ke bagian paling praktis: di mana file-file sistem ditaruh? Jawabannya diatur oleh FHS (Filesystem Hierarchy Standard) — standar yang menentukan struktur direktori sistem Linux. Semua distro yang mematuhi FHS memiliki struktur yang sama, sehingga pengetahuan kalian di Ubuntu tetap berlaku di Rocky Linux, Debian, atau Arch.
Bayangkan filesystem Linux seperti gedung arsip nasional: semua dokumen (file) disimpan dalam sistem folder yang sudah disepakati. Seorang arsiparis baru bisa langsung menemukan dokumen apa pun — di lantai berapa, lemari mana — hanya dengan membaca nama jalurnya. Begitu pula di Linux: begitu kalian tahu fungsinya /etc, /var, dan /usr, kalian bisa menebak isi sebuah direktori bahkan sebelum membukanya.
Segala sesuatu berakar dari direktori root / (slash). Semua direktori lain adalah cabang dari pohon ini — tidak ada drive C: atau D: seperti di Windows; semuanya satu pohon yang dimulai dari /.
Mari kita bedah direktori-direktori kunci:
/bin dan /sbin — Program Sistem/bin berisi perintah inti yang dibutuhkan sistem untuk boot dan beroperasi dasar: ls, cp, mv, cat, bash. Dahulu hanya berisi program esensial; pada distro modern, /bin sering berupa symlink ke /usr/bin./sbin berisi program administrasi sistem yang biasanya hanya dijalankan root: iptables, fdisk, shutdown, mount./etc — Konfigurasi SistemIni mungkin direktori paling penting untuk kalian sebagai DevOps Engineer. /etc berisi semua file konfigurasi sistem dan aplikasi: /etc/nginx/nginx.conf, /etc/ssh/sshd_config, /etc/hosts, /etc/passwd, /etc/resolv.conf. Semua pengaturan dalam format teks, mengikuti prinsip "everything is a file" yang kita bahas di episode 1.
/home dan /root/home berisi direktori pribadi setiap user biasa: /home/arman, /home/budi. Setiap user memiliki direktori sendiri untuk dokumen, konfigurasi pribadi (~/.bashrc), dan file kerja./root adalah direktori pribadi user root (superuser). Ia sengaja terpisah dari /home agar saat sistem bermasalah dan user lain tidak bisa login, root tetap bisa masuk./var — Data VariabelDirektori untuk data yang berubah-ubah (variable) selama sistem berjalan: /var/log (log sistem), /var/www (web root nginx), /var/lib (data database), /var/tmp. Jika disk penuh, penyebab paling umum adalah /var/log yang membengkak.
/tmp — File SementaraTempat file sementara yang dibersihkan saat reboot. /tmp adalah ruang publik — semua user boleh menulis, jadi jangan pernah menyimpan data penting di sini.
/usr — User System ResourcesDirektori terbesar untuk program dan data yang tidak berubah: program terinstall (/usr/bin, /usr/sbin), library (/usr/lib), dokumentasi (/usr/share), dan source code (/usr/src). Meski namanya "user", /usr bukan milik user — ini adalah tempat "banyak utilitas dan resources" sistem.
/dev — Device FilesBerkat filosofi "everything is a file", perangkat keras direpresentasikan sebagai file di /dev: /dev/sda (disk), /dev/nvme0n1 (SSD NVMe), /dev/tty (terminal). Program bisa membaca/menulis device seolah-olah file biasa.
/proc dan /sys — Virtual FilesystemsIni bagian paling menarik sekaligus paling sering disalahpahami. /proc dan /sys bukan direktori sungguhan di disk — keduanya adalah virtual filesystem yang dibuat kernel saat berjalan. Membaca file di /proc berarti membaca data langsung dari kernel:
cat /proc/cpuinfo
cat /proc/meminfo
cat /proc/uptime/proc/cpuinfo menampilkan detail prosesor, /proc/meminfo menampilkan memori, dan /proc/uptime menampilkan berapa lama sistem telah berjalan. Kernel memperbarui file-file ini secara dinamis setiap kali dibaca — tidak pernah statis. /sys adalah virtual filesystem serupa yang fokus pada informasi perangkat dan kernel parameters.
/opt dan /mnt/opt adalah direktori untuk software tambahan/opsional yang diinstall di luar package manager standar (misalnya aplikasi komersial yang disebar dalam folder sendiri)./mnt adalah titik mount sementara — tempat kalian memasang (mount) filesystem eksternal seperti USB drive atau disk tambahan sebelum dipindahkan ke lokasi permanen.| Direktori | Fungsi | Contoh Isi |
|---|---|---|
/ | Akar dari seluruh filesystem | Semua direktori lain |
/bin, /sbin | Program inti & administrasi | ls, mount, iptables |
/etc | Konfigurasi sistem & aplikasi | nginx.conf, sshd_config |
/home, /root | Direktori pribadi user & root | /home/arman, ~/.bashrc |
/var | Data yang berubah (log, web, db) | /var/log, /var/www |
/tmp | File sementara, dibersihkan saat boot | file temp aplikasi |
/usr | Program & resources tidak berubah | /usr/bin, /usr/lib |
/dev | File perangkat keras | /dev/sda, /dev/tty |
/proc, /sys | Virtual filesystem kernel | /proc/cpuinfo, /sys/block |
/opt | Software opsional/tambahan | /opt/splunk |
/mnt | Mount sementara filesystem eksternal | /mnt/usb |
Important
Jangan pernah mengedit file di /proc dan /sys. Direktori ini adalah jendela ke kernel, bukan file konfigurasi biasa. Menulis sembarangan ke file di /proc//sys bisa langsung mengubah perilaku kernel secara tidak aman, dan beberapa bisa menyebabkan sistem tidak stabil atau crash. Semua konfigurasi yang sah diubah melalui /etc (statis) atau perintah khusus — bukan dengan menimpa file virtual.
Teori selesai — sekarang mari kita buktikan dengan mengeksplorasi sistem kalian sendiri. Buka terminal dan jalankan perintah-perintah berikut:
ls /bin boot dev etc home lib lib64 media mnt opt
proc root run sbin srv sys tmp usr varPerhatikan — semua direktori yang barusan kita bahas ada di sini: etc, home, var, proc, sys, dev, usr, tmp. Ini adalah pohon arsip nasional yang kita bicarakan.
Selanjutnya, cek kondisi filesystem dan penyimpanan:
df -h
lsblkFilesystem Size Used Avail Use% Mounted on
/dev/sda2 20G 4.2G 15G 23% /Penjelasan singkat:
| Perintah | Fungsi |
|---|---|
ls / | Menampilkan isi direktori root — peta seluruh filesystem |
df -h | Disk Free — menampilkan kapasitas & pemakaian setiap filesystem, dalam format manusiawi (-h) |
lsblk | List Block Devices — menampilkan struktur disk & partisi sebagai pohon |
Perhatikan baris Mount on pada output df -h: ini menunjukkan di mana setiap filesystem dipasang dalam pohon /. Root filesystem /dev/sda2 dipasang di / — dan semua direktori lain, dari /etc hingga /home, adalah cabang-cabang dari sana.
Warning
Saat kalian melihat /var yang "terpisah" (misalnya /dev/sda3 50G /var), itu bukan direktori berbeda — itu filesystem berbeda yang dipasang di dalam pohon yang sama. Ini konsep mount: Linux bisa memasang disk tambahan di titik mana pun di dalam satu pohon direktori. Konsep ini akan kalian pelajari mendalam di episode storage/LVM nanti.
Mengedit file di /proc//sys. Seperti dijelaskan di atas, ini adalah virtual filesystem. Mengubahnya secara langsung bisa membuat kernel tidak stabil. Gunakan /etc atau perintah yang tepat.
Salah menaruh file antara /home dan /var. Data pribadi dan script kalian sebaiknya di /home; data layanan (log, web root, database) di /var. Menaruh web root di /home/arman/www akan bermasalah saat user lain perlu mengaksesnya atau saat permission service web dibatasi.
Menghapus direktori sistem untuk "menghemat disk". Menghapus isi /usr atau /bin bisa membuat sistem tidak bisa boot. Jika disk penuh, cek dulu dengan du -sh /var/log/* sebelum menghapus apa pun.
Menganggap /tmp aman untuk data penting. /tmp dibersihkan saat reboot dan bisa diakses user lain. Simpan data penting di /home atau /var.
Mengedit file konfigurasi tanpa backup. Sebelum mengubah file di /etc (misalnya /etc/ssh/sshd_config), biasakan membuat salinan: cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. Jika konfigurasi rusak, kalian bisa memulihkannya dengan mudah.
Pada episode 2 ini, kita telah membedah arsitektur internal Linux: empat lapisan (Hardware → Kernel → Shell → Applications) yang menjelaskan bagaimana sistem bekerja sebagai bangunan bertingkat, dan Filesystem Hierarchy Standard yang menjelaskan di mana setiap file ditaruh. Kalian juga sudah menjelajahi sistem nyata dengan ls /, df -h, dan lsblk.
Inti yang harus dibawa pulang:
/etc untuk konfigurasi, /var untuk data berubah, /home untuk file pribadi, /proc//sys untuk data kernel virtual.df -h dan lsblk adalah pintu masuk untuk memahami kondisi storage kalian./proc//sys, dan selalu backup konfigurasi sebelum diubah.Dengan peta ini di kepala, kalian sekarang siap melangkah ke episode 3 yang paling praktis: Navigasi File System & Manajemen File/Folder — menguasai pwd, ls, cd, mkdir, cp, mv, rm, hingga wildcard, lengkap dengan latihan membangun struktur project nyata. Pastikan tetap semangat, karena mulai episode inilah kalian benar-benar "memegang" Linux!