Laman

Artikel Lainnya...

Get your Money

Rabu, 28 Januari 2026

Apa itu SysVinit dan OpenRC pada Sistem Operasi Linux

👉 Link wiki sysVinit disini
👉 Link  web khusus 18+ disini
👉 Link wiki openRC disini







Kita akan membahas dua sistem init lainnya: SysVinit dan OpenRC. Keduanya adalah sistem init yang lebih tradisional dibandingkan systemd dan runit.


SysVinit
SysVinit (System V init) adalah sistem init klasik yang berasal dari System V Unix. Ini adalah sistem init tradisional yang digunakan oleh banyak distribusi Linux selama bertahun-tahun sebelum beralih ke systemd.


Arsitektur Dasar
text
Kernel → /sbin/init → /etc/inittab → runlevel scripts
                                              │
                                    ┌─────────┼─────────┐
                                    ▼         ▼         ▼
                              /etc/rc0.d/ /etc/rc1.d/ ... /etc/rc6.d/

Karakteristik
Berbasis skrip shell yang dijalankan secara berurutan (sequential).
Menggunakan runlevel (0-6) untuk mengelola status sistem.
Setiap runlevel memiliki kumpulan skrip yang dimulai atau dihentikan.

Skrip init terletak di /etc/init.d/ dan tautan simbolis di direktori seperti /etc/rc0.d/, /etc/rc1.d/, dll.


Runlevel
0: Halt
1: Single user mode
2: Multi-user tanpa network (berbeda-beda tergantung distro)
3: Multi-user dengan network (text mode)
4: Tidak digunakan (dapat dikustomisasi)
5: Multi-user dengan network dan GUI (X11)
6: Reboot


Keunggulan
Sederhana dan mudah dipahami.
Skrip init adalah skrip shell biasa, sehingga dapat dengan mudah ditulis dan diubah.
Stabil dan terprediksi karena berjalan secara berurutan.


Kekurangan
Boot yang lambat karena berurutan.
Kurang fitur dibandingkan systemd (seperti socket activation, cgroups, dll).
Tidak mendukung paralelisasi.


Status Sekarang
Sudah banyak ditinggalkan oleh distribusi besar (seperti Debian, Ubuntu, Fedora) yang beralih ke systemd. Namun, masih digunakan di beberapa distro tua atau yang mengutamakan kesederhanaan.



OpenRC
OpenRC adalah sistem init yang dikembangkan untuk Gentoo Linux, tetapi juga digunakan oleh distro lain. OpenRC adalah pengganti SysVinit yang lebih modern, tetapi tidak se-monolitik systemd.


Arsitektur Dasar


text
Kernel → OpenRC-init (PID 1) → dependency tree → services
        │
        ├── /etc/init.d/      # Service scripts
        ├── /etc/runlevels/   # Runlevel links
        ├── /etc/conf.d/      # Configuration
        └── /etc/rc.conf      # Main config


Karakteristik
Berbasis skrip shell, seperti SysVinit, tetapi dengan tambahan fitur.
Tidak bergantung pada Bash, dapat menggunakan shell lain.
Mendukung paralelisasi saat boot (dependency-based).
Tidak menggunakan systemd, tetapi dapat bekerja dengan beberapa komponen systemd jika diperlukan.
Menggunakan runlevel seperti SysVinit, tetapi juga mendukung layanan dinamis.


Keunggulan
Lebih cepat dari SysVinit karena paralelisasi.
Lebih modular daripada systemd.
Tidak monolitik, dapat dikombinasikan dengan alat lain.
Skrip init masih skrip shell, sehingga mudah dikustomisasi.
Dapat bekerja dengan cgroups untuk mengelola proses (opsional).


Kekurangan
Tidak memiliki semua fitur systemd (seperti journal, networkd, dll).
Paralelisasi tidak sebaik systemd.
Beberapa distro tidak mendukungnya secara default.


Status Sekarang
Digunakan sebagai sistem init default di Gentoo, Alpine Linux, dan beberapa distro lainnya. Juga populer di kalangan pengguna yang tidak ingin menggunakan systemd.


Perbandingan dengan Systemd dan Runit

Fitur SysVinit OpenRC Systemd Runit
Paralelisasi Tidak Ya (dependency) Ya (dependency)  Ya (fase)
Skrip Init Shell script Shell script Unit files (INI) Shell script
Runlevel Ya (0-6) Ya (0-6) Target Runlevel (opsional)
Dependency Manual (urutan) Dependency-based Dependency-based Minimal
Socket Activation Tidak Opsional (melalui netctl) Ya Opsional (melalui inetd)
Logging Syslog Syslog Journal Syslog/svlogd
Cgroups Tidak Opsional Ya Tidak
Ukuran Kecil Sedang Besar Sangat Kecil



Contoh Skrip Init
SysVinit

bash
#!/bin/sh
# /etc/init.d/nginx

case "$1" in
  start)
    echo "Starting nginx"
    /usr/sbin/nginx
    ;;
  stop)
    echo "Stopping nginx"
    killall nginx
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac

exit 0
OpenRC
bash
#!/sbin/openrc-run
# /etc/init.d/nginx

command="/usr/sbin/nginx"
command_args=""
pidfile="/run/nginx.pid"

depend() {
    need net
    use dns logger
}
Boot Process

SysVinit
Kernel menjalankan /sbin/init
Init membaca /etc/inittab
Menjalankan skrip di /etc/rc.sysinit
Masuk runlevel default, menjalankan skrip di direktori runlevel tersebut.


OpenRC
Kernel menjalankan /sbin/init (biasanya symlink ke openrc-init)
OpenRC membaca konfigurasi di /etc/rc.conf
Menjalankan layanan berdasarkan dependency.


SYSVinit dan OpenRC adalah Sistem Init Tradisional Linux dalam Sejarahnya sistem initterus berevolusi menuju kearah yang lebih modern.

Timeline Sistem Init Linux:
Text
1992-2000: SysVinit (dominant)
│
2000-2007: Upstart (Ubuntu) → systemd
│
1999-2024: OpenRC (Gentoo) 
│
2004-2024: runit
│
2010-2024: systemd (standar modern)

SysVinit adalah sistem init tradisional yang sederhana dan berurutan, cocok untuk sistem yang tidak membutuhkan paralelisasi dan fitur canggih.

OpenRC adalah sistem init modern yang menggabungkan kesederhanaan skrip shell dengan paralelisasi dan dependency, cocok untuk pengguna yang menginginkan kendali penuh tanpa systemd.

Kedua sistem init ini masih digunakan, terutama di lingkungan yang mengutamakan kesederhanaan, kendali, atau kompatibilitas dengan perangkat keras lama. Namun, untuk sistem yang membutuhkan fitur canggih seperti container, cgroups, dan socket activation, systemd atau runit mungkin lebih cocok.


Tidak ada komentar:

Posting Komentar

give your comment please...