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.
- Inisiatif apa itu?
- Apa itu sistemd?
- Mengapa init perlu diganti?
- 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:
- Pemula – Daemon pengganti init yang diimplementasikan di Ubuntu GNU/Linux dan dirancang untuk memulai proses secara asinkron.
- Epoch – Daemon pengganti init yang dibangun berdasarkan kesederhanaan dan manajemen layanan, dirancang untuk memulai proses single-thread.
- Mudar – Daemon pengganti init yang ditulis dengan Python, diimplementasikan pada Pardus GNU/Linux dan dirancang untuk memulai proses secara asinkron.
- 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
- Desain yang bersih, maju dan efisien.
- Proses booting lebih sederhana.
- Pemrosesan bersamaan dan paralel saat boot.
- API yang lebih baik.
- Sintaks Unit Sederhana.
- Kemampuan untuk menghapus komponen opsional.
- Jejak memori rendah.
- Peningkatan teknik untuk mengekspresikan ketergantungan.
- Instruksi inisialisasi ditulis dalam file konfigurasi dan bukan dalam skrip shell.
- Manfaatkan Soket Domain Unix.
- Penjadwalan Pekerjaan menggunakan Timer Kalender systemd.
- Pencatatan Peristiwa dengan journald.
- Pilihan mencatat peristiwa Sistem dengan systemd serta syslog.
- Log disimpan dalam file biner.
- status systemd dapat dipertahankan untuk dipanggil nanti di masa mendatang.
- Lacak proses menggunakan cgroup kernel dan bukan PID.
- Login pengguna dikelola oleh systemd-logind.
- Integrasi yang lebih baik dengan Gnome untuk interoperabilitas.
Sistem kemacetand
- Semuanya di satu tempat.
- 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.