Kisah Dibalik 'init' dan 'systemd': Mengapa 'init' Perlu Diganti dengan 'systemd' di Linux


Saya berlangganan beberapa milis yang terkait dengan berbagai Distribusi dan Aplikasi Linux hanya untuk terus mengetahui perkembangan terkini. Apa saja bug barunya? Apa saja Patch yang Dirilis? Apa yang diharapkan pada rilis berikutnya? dan masih banyak hal lainnya. Saat ini milis dipenuhi dengan “Pilih sisi Anda di Linux Divide”, terutama di milis Debian dan beberapa milis lainnya.

Apa yang dimaksud dengan “Pilih sisi Anda di Linux Divide”?

Daemon init akan diganti dengan daemon systemd di beberapa Distribusi Linux, sementara banyak dari mereka sudah mengimplementasikannya. Hal ini/akan menciptakan kesenjangan besar antara Unix/Linux Guard tradisional dan New Linux Guard – programmer dan Admin Sistem.

Pada artikel ini, kita akan membahas dan menyelesaikan semua pertanyaan satu per satu.

  1. Inisiatif apa itu?
  2. Apa itu sistemd?
  3. Mengapa init perlu diganti?
  4. Fitur apa yang akan dimiliki systemd.

Apa itu init?

Di Linux, init adalah singkatan dari Inisialisasi. init adalah proses daemon yang dimulai segera setelah komputer dinyalakan dan terus berjalan hingga komputer dimatikan. Faktanya init adalah proses pertama yang dimulai saat komputer melakukan booting, menjadikannya induk dari semua proses lain yang berjalan secara langsung atau tidak langsung dan karenanya biasanya ditetapkan “pid=1“.

Jika daemon init tidak dapat dimulai, tidak ada proses yang akan dimulai dan sistem akan mencapai tahap yang disebut “Kernel Panic“. init paling sering disebut sebagai Sistem V init. System V adalah Sistem Operasi UNIX komersial pertama yang dirancang dan penggunaan init pada sebagian besar Distribusi Linux saat ini identik dengan System V OS dengan beberapa pengecualian seperti Slackware yang menggunakan gaya BSD dan Gentoo menggunakan init khusus .

Kebutuhan untuk mengganti init dengan sesuatu yang lebih sempurna sudah dirasakan sejak lama dan beberapa alternatif dikembangkan dari waktu ke waktu, beberapa di antaranya menjadi pengganti init asli distribusi, beberapa di antaranya adalah:

  1. Pemula – Daemon pengganti init yang diimplementasikan di Ubuntu GNU/Linux dan dirancang untuk memulai proses secara asinkron.
  2. Epoch – Daemon pengganti init yang dibangun berdasarkan kesederhanaan dan manajemen layanan, dirancang untuk memulai proses single-thread.
  3. Mudar – Daemon pengganti init yang ditulis dengan Python, diimplementasikan pada Pardus GNU/Linux dan dirancang untuk memulai proses secara asinkron.
  4. systemd – Daemon pengganti init yang dirancang untuk memulai proses secara paralel, diimplementasikan di sejumlah distribusi standar – Fedora, OpenSuSE, Arch, RHEL, CentOS, dll.

Apa itu sistemd?

systemd adalah Daemon Manajemen Sistem yang diberi nama dengan konvensi UNIX untuk menambahkan 'd' di akhir daemon. Sehingga mereka dapat dengan mudah dikenali. Awalnya dirilis di bawah GNU General Public License, namun sekarang rilisnya dibuat di bawah GNU Lesser General Public License. Mirip dengan init, systemd adalah induk dari semua proses lain secara langsung atau tidak langsung dan merupakan proses pertama yang dimulai saat boot sehingga biasanya diberi “pid=1“.

systemd, dapat merujuk ke semua paket, utilitas, dan pustaka di sekitar daemon. Itu dirancang untuk mengatasi kekurangan init. Itu sendiri adalah proses latar belakang yang dirancang untuk memulai proses secara paralel, sehingga mengurangi waktu boot dan overhead komputasi. Ini memiliki banyak fitur lain dibandingkan dengan init.

Mengapa ada kebutuhan untuk mengganti init?

Proses init dimulai secara serial yaitu, satu tugas dimulai hanya setelah tugas terakhir yang dimulai berhasil dan dimuat ke dalam memori. Hal ini sering mengakibatkan waktu booting tertunda dan lama. Namun, systemd tidak dirancang untuk kecepatan tetapi untuk menyelesaikan segala sesuatunya dengan rapi sehingga menghindari semua penundaan yang diperlukan PBB.

Fitur sistemd
  1. Desain yang bersih, maju dan efisien.
  2. Proses booting lebih sederhana.
  3. Pemrosesan bersamaan dan paralel saat boot.
  4. API yang lebih baik.
  5. Sintaks Unit Sederhana.
  6. Kemampuan untuk menghapus komponen opsional.
  7. Jejak memori rendah.
  8. Peningkatan teknik untuk mengekspresikan ketergantungan.
  9. Instruksi inisialisasi ditulis dalam file konfigurasi dan bukan dalam skrip shell.
  10. Manfaatkan Soket Domain Unix.
  11. Penjadwalan Pekerjaan menggunakan Timer Kalender systemd.
  12. Pencatatan Peristiwa dengan journald.
  13. Pilihan mencatat peristiwa Sistem dengan systemd serta syslog.
  14. Log disimpan dalam file biner.
  15. status systemd dapat dipertahankan untuk dipanggil nanti di masa mendatang.
  16. Lacak proses menggunakan cgroup kernel dan bukan PID.
  17. Login pengguna dikelola oleh systemd-logind.
  18. Integrasi yang lebih baik dengan Gnome untuk interoperabilitas.
Sistem kemacetand
  1. Semuanya di satu tempat.
  2. Bukan standar POSIX.

Integrasi Systemd dan Distro

Linux Distribution

Integrasi

Fedora

Ya, distro pertama yang mengadopsi systemd

Arch

Ya

RedHat

Ya

CentOS

Ya

Debian

Ya, nama kode Debian 8 Jessie akan memiliki systemd secara default

Gentoo

Ya, tetapi perlu diunduh, diinstal, dan dikonfigurasikan dengan init khusus

OpenSUSE

Ya

Slack

Tidak (Meskipun sampai saat ini belum diadopsi di slackware, Patric Volkerding belum menunjukkan indikasi apakah akan diadopsi atau tidak)

Ubuntu

Ya, perlu diinstal dan dikonfigurasi dengan Upstream.

Kontroversi

Linus Torvalds, Kepala arsitek kernel Linux, merasa sikap pengembang utama systemd terhadap pengguna dan laporan bug sepertinya tidak baik. Dilaporkan juga bahwa filosofi systemd adalah cara yang aneh dan asing untuk mengontrol proses sistem. Hal yang sama telah dicatat dari Patric Volkerding dan Pengguna dan Pengembang Linux terkemuka lainnya serta melalui forum online, dari waktu ke waktu.

sistemd vs init

Features init systemd
DBus Dependency – Mandatory No Yes
Device based Activation No Yes
Device dependency configuration with udev No Yes
Timer based Activation Cron/at Proprietary
Quota Management No Yes
Automatic Service Dependency Handling No Yes
Kills users Process at logout No Yes
Swap Management No Yes
SELinux integration No Yes
Support for Encrypted HDD No Yes
Static kernle module loading No Yes
GUI No Yes
List all the child processes No Yes
Sysv compatible Yes Yes
Interactive booting No Yes
Portable to non x86 Yes No
Adopted on Several Distro Several Distro
Parallel service startup No Yes
Resource limit per service No Yes
Easy extensible startup script Yes No
Separate Code and Configuration File Yes No
Automatic dependency calculation No Yes
Verbose debug Yes No
Version N/A V44+
Size 560 KB N/A
Number of Files 75 files 900 files + glib + DBus
Lines of code – LOC 15000 (Approx) 224000 (Approx) (inc Codes, comments and white space) 125000 (Approx) (acctual code)

Kesimpulan

Apa pun yang berjalan sebagai pid=1 tidak boleh rusak, tidak boleh berantakan, dan harus dikontrol oleh pengguna secara efektif dan efisien. Banyak pengguna percaya bahwa mengganti init dengan systemd tidak lebih dari menciptakan kembali roda setiap saat sebagai efek samping dari Linux. Tapi inilah sifat Linux yang beragam. Ini karena Linux sangat kuat. Perubahan itu baik dan kita harus menghargainya jika itu demi alasan yang baik.

Itu saja untuk saat ini. Saya akan berada di sini lagi dengan artikel menarik lainnya yang pasti ingin Anda baca. Sampai saat itu tetap terhubung dan terhubung dengan Tecmint. Jangan lupa untuk memberi kami umpan balik Anda yang berharga di komentar di bawah.