Apa yang membedakan systemd dari sistem init lainnya?

23

Ini tidak cukup resmi tetapi sepertinya systemd akan datang ke Debian dan setelah membaca beberapa diskusi milis tentang keputusan itu, saya ingin tahu tentang sifat polarisasi dari systemd di antara pengguna linux. Saya menjalankan sistem Debian (sysvinit) dan Gentoo (OpenRC) dan tidak tahu apa pun yang konkret tentang systemd, meskipun sepertinya itu akan datang kepada saya.

Saya telah melihat pertanyaan terkait ini menanyakan pro dan kontra dari systemd vs pemula, tetapi sudah 3 tahun sejak pertanyaan itu diposting dan saya yakin semuanya telah berubah pada waktu itu.

Pertanyaan saya adalah: Bagaimana systemd dibandingkan dengan sistem init lainnya?

  • Apa yang membedakannya - apa yang bisa dilakukan yang tidak dapat dilakukan oleh sistem init lainnya?
  • Apakah ada ruginya beralih dari sistem init lain?
  • Bagaimana administrasi systemd dibandingkan dengan yang lain?
casey
sumber
1
Dengan Gentoo Anda dapat memiliki tangan pada pengalaman systemd dan telah berjalan cukup mudah!
Satu hal yang saya sangat tertarik adalah sesi pengguna. Mereka bekerja cukup baik sekarang, dengan beberapa pengecualian. Itu sesuatu yang saya rasa benar-benar diabaikan oleh kebanyakan sistem init lainnya.
Chris Down
@ChrisDown, memulai / menghentikan sistem, dan mengelola layanannya adalah fungsionalitas mendasar, yang sebaiknya diintegrasikan secara ketat (dengan demikian "percobaan obat mujarab" adalah kesalahan karakterisasi yang buruk). Selain itu, bukan hanya Lennart saja, itu adalah orang-orang di semua distribusi yang mengerjakan ini.
vonbrand
@ ChrisDown, tolong jangan konyol. systemdsekarang tidak menyertakan server web juga tidak akan pernah melakukannya, juga tidak membaca QR di mana pun dalam peta jalan. Silakan periksa apa itu semua, pertimbangkan bahwa ketika kami berbicara semua distribusi penting (kecuali Ubuntu untuk saat ini) menggunakannya sebagai default (orang-orang open source cenderung sangat independen, tidak ada "tekanan" yang akan membuat mereka melakukan ini jika mereka tidak percaya itu alternatif terbaik).
vonbrand
Saat ini bahkan RHEL7 hadir dengan systemd. Membuat saya bertanya-tanya kapan sih yang Py3kakan menjadi juru bahasa python default di distro.
yegle

Jawaban:

26

Mungkin semua yang ingin Anda ketahui ada di sini di halaman " Sistem Debat Untuk Digunakan " yang digunakan oleh proyek Debian untuk membuat keputusan tentang sistem init mana yang akan digunakan. Di dalam halaman itu ada tautan terpisah ke masing-masing pilihan initystems.

Untuk primer di Systemd halaman ini memiliki hampir semua yang perlu diketahui untuk memulai, RHEL7: Cara memulai dengan Systemd .

Sumber daya tambahan yang saya temukan bermanfaat dalam mendapatkan pemahaman yang lebih baik tentang 2 pilihan utama saya juga membaca halaman Wikipedia pada masing-masing teknologi:

Proyek Gentoo juga mempertahankan perbandingan yang bagus dari beberapa fitur utama di berbagai initytem:

Saya ambil pertanyaan Anda

T # 1: Bagaimana systemd dibandingkan dengan sistem init lainnya?

Ini adalah pertanyaan yang sangat sulit untuk ditangani dalam ruang jawaban SE jadi saya lebih suka menunda ke berbagai sumber yang telah saya rujuk di atas. Saya akan mengatakan ini. Dalam membaca banyak artikel tentang systemdalternatif itu mencoba untuk mengatasi banyak aspek dari apa yang kurang pada alat sebelumnya yang digunakan untuk memulai layanan pada sistem Linux. Ini memiliki desain yang dipikirkan dengan sangat baik dan berusaha menyediakannya dengan cara yang sangat modular.

komponen systemd

   ss komponen systemd

Jadi IMO, saya akan mengatakan bahwa ia membandingkan dengan sangat baik dalam hal upaya dalam desainnya, pelaksanaan desain itu, dan adopsi oleh beberapa distro Linux yang lebih besar.

T # 2: Apa yang membedakannya - apa yang dapat dilakukan oleh sistem init lainnya?

Banyak hal yang sytemddapat dilakukan oleh sistem lain. Mungkin 3 fitur terkuatnya adalah:

  1. Penebangan
  2. Pembatasan Sumber Daya
  3. Berurusan dengan garpu daemon itu

1. logging

Di depan logging, systemdtelah melembagakan sistem logging baru yang disebut "Journal", dinamakan layanan systemd-journald.service. Ini adalah topiknya sendiri, Anda dapat membaca lebih lanjut di sini di artikel ini berjudul: Memperkenalkan Jurnal . Berikut adalah contoh pengguna, "harald", masuk.

_SERVICE=systemd-logind.service
MESSAGE=User harald logged in
MESSAGE_ID=422bc3d271414bc8bc9570f222f24a9
_EXE=/lib/systemd/systemd-logind
_COMM=systemd-logind
_CMDLINE=/lib/systemd/systemd-logind
_PID=4711
_UID=0
_GID=0
_SYSTEMD_CGROUP=/system/systemd-logind.service
_CGROUPS=cpu:/system/systemd-logind.service
PRIORITY=6
_BOOT_ID=422bc3d271414bc8bc95870f222f24a9
_MACHINE_ID=c686f3b205dd48e0b43ceb6eda479721
_HOSTNAME=waldi
LOGIN_USER=500

2 & 3. Pembatasan sumber daya & daemon yang bercabang dua

systemdmenggunakan pendekatan baru yang digunakan di sini cgroupsuntuk memuat dan membatasi sumber daya layanan apa pun yang memerlukan forking atau membatasi akses ke sumber daya.

kutipan

Systemd memiliki solusi yang sangat cerdas untuk masalah pelacakan daemon yang bercabang, yang secara kebetulan terjadi untuk menangani pembatasan sumber daya pada saat yang sama. Saat Upstart menggunakan ptrace untuk menonton forking, systemd menjalankan setiap daemon dalam kelompok kontrol (membutuhkan Linux 2.6.24 atau yang lebih baru) dari mana ia tidak dapat melarikan diri dengan jumlah forking dalam jumlah berapa pun. Hal ini memungkinkan pembatasan sumber daya yang mudah, baik untuk daemon forking maupun non-forking, karena kelompok kontrol dibuat untuk hal semacam ini.

Sumber: Daemon Showdown: Pemula vs Runit vs Systemd vs Circus vs God

T # 3: Apakah ada ruginya beralih dari sistem init lain?

Mungkin peringatan terbesar untuk beralih ke systemd di atas pemula atau sysV init adalah harus merangkul banyak kompleksitas baru. Systemd memiliki banyak bagian yang bergerak dan sangat kaya fitur dan dengan kemampuan tambahan yang kemungkinan Anda akan menghabiskan cukup banyak waktu untuk mendapatkan pemahaman tentang cara kerjanya.

Q # 4: Bagaimana administrasi systemd dibandingkan dengan yang lain?

Seperti yang dinyatakan dalam jawaban saya di atas untuk Q # 3. Saya akan mengulangi lagi di sini. Di mana sysV init cukup sepele untuk mempelajari cara mengelola dan menavigasi dalam beberapa jam hingga berhari-hari, Pemula baru kemungkinan akan membawa Anda seminggu atau lebih untuk mempercepat, sementara systemd mungkin akan membawa Anda lebih lama, saya mengantisipasi mengambil beberapa minggu untuk mendapatkan pengetahuan sepintas tentang hal itu, di mana saya akan dapat menghasilkan .servicefile saya sendiri , untuk menghentikan / memulai layanan dengan kemudahan yang sama yang sekarang saya nikmati dengan sysV init.

Referensi

slm
sumber
@ Caleb, masalah ini sangat kompleks, dan juga masalah sensitif bagi banyak orang. Saya yakin jawabannya tidak apa-apa
vonbrand
@ Caleb - ya, Anda cukup diterima, terima kasih atas umpan baliknya.
slm