System Init: Systemd, SystemV dan Upstart
Init process (proses inisiasi)
/sbin/init (init) adalah proses (tugas) tingkat user pertama yang dijalankan pada sistem dan terus berjalan hingga sistem dimatikan. juga dianggap sebagai induk dari semua proses user, meskipun secara teknis proses dimulai langsung oleh kernel.
init mengoordinasikan tahapan selanjutnya dari proses booting, mengonfigurasi semua aspek lingkungan, dan memulai proses yang diperlukan untuk masuk ke sistem. juga bekerja erat dengan kernel dalam membersihkan proses ketika proses tersebut dihentikan.
Hampir semua distribusi mendasarkan proses init pada software SysVinit milik UNIX, namun skema ini dikembangkan dengan keadaan yang berbeda:
targetnya adalah sistem mainframe multi-user (bukan komputer pribadi, laptop, dan perangkat lainnya)
targetnya adalah sistem prosesor tunggal
waktu startup (dan shutdown) bukanlah hal penting, jauh lebih penting daripada melakukan segala sesuatu dengan benar
Startup dipandang sebagai proses serial yang dibagi menjadi serangkaian tahapan berurutan (run level), tiap tahap memerlukan penyelesaian sebelum tahap berikutnya. Startup tidak mudah memanfaatkan pemrosesan paralel yang dapat dilakukan pada banyak prosesor/inti.
shutdown/reboot dipandang sebagai peristiwa yang relatif jarang terjadi karena saat ini sistem linux melakukan booting dalam hitungan detik, 3 implementasi paling umum itu systemd, Upstart, SysVinit tapi kini telah dipindahkan ke systemd karena sistem modern memerlukan metode baru dengan kemampuan yang lebih baik.
Alternatif startup
Untuk mengatasi keterbatasan intrinsik di SysVinit, metode baru untuk mengendalikan startup sistem dikembangkan:
Upstart
Dikembangkan oleh Ubuntu dan pertama kali disertakan pada tahun 2006
Diadopsi di Fedora 9 (tahun 2008) dan di RHEL 6 dan klonnya
Juga digunakan di berbagai perangkat tertanam dan seluler
sistemd
Fedora adalah distribusi besar pertama yang mengadopsinya pada tahun 2011
RHEL dan SUSE mengikuti
Ubuntu 16.04 menggantikan Pemula dengan systemd
Semua distribusi Linux yang penting sekarang didasarkan pada systemd
Migrasi ke systemd bukanlah hal yang sepele dan bug serta fitur yang hilang dapat sangat melumpuhkan, sehingga lapisan kompatibilas yang penting diadopsi dan masih ada untuk software lama. karena itu kompatibilitas pembungkus utilitas SysVinit masih bertahan.
Fitur systemd
boot lebih cepat dari sistem init sebelumnya
menyediakan kemampuan paralelisasi yang agresif
menggunakan soket dan aktivasi D-Bus untuk memulai layanan
menggantikan skrip shell dengan program
menawarkan permulaan daemon sesuai permintaan
melacak proses menggunakan cgroups
mempertahankan mount dan automount point
menerapkan logika kontrol layanan berbasis ketergantungan transaksional yang rumit
dapat berfungsi sebagai pengganti SysVinit dan kompatibel dengan skrip SysVinit
Systemd kompatibel dengan SysVinit dan konsep runlevel didukung melalui target runlevel. program telinit ditiru untuk bekerja dengan runlevel. Sebagai pengganti skrip bash, systemd menggunakan file .service, systemd juga mengurutkan semua daemon ke dalam cgroup (control group) linux mereka sendiri.
File konfigurasi systemd
Meskipun systemd lebih memilih untuk menggunakan sekumpulan file konfigurasi standar, ia juga dapat menggunakan file konfigurasi lama yang bergantung pada distribusi sebagai cadangan seperti /etc/hostname
/etc/vconsole.conf : pemetaan keyboard default dan font konsol
/etc/sysctl.d/*.conf : direktori drop-in untuk parameter sysctl kernel
/etc/os-release : file ID distribusi
File konfigurasi mana yang akan digunakan tergantung pada bagaimana setiap distribusi mengaturnya, systemd kompatibel dengan SysVinit sehingga menggunakan perintah lama dapat digunakan, juga mendukung penggunaan runlevel secara konseptual melalui mekanisme target runlevel, selain itu telinit ditiru untuk bekerja dengan runlevel.
systemctl
systemctl adalah utilitas utama untuk mengelola layanan
beberapa contoh penggunaan:
Last updated