Sistemi diğer init sistemlerinden ayıran nedir?


23

Çok resmi değil ama systemd Debian'a geliyor gibi görünüyor ve bu kararla ilgili bazı sıcak e-posta listesi tartışmalarını okuduktan sonra, linux kullanıcıları arasında systemd'in polarize doğasını merak ediyorum. Debian (sysvinit) ve Gentoo (OpenRC) sistemlerini işletiyorum ve sistemim hakkında somut bir şey bilmiyorum, ancak yoluma çıkıyor gibi görünüyor.

Sistemin rakiplerine karşı başlangıçta artılarını ve eksilerini soran bu soruyu gördüm , ancak bu sorunun yayınlanmasından bu yana 3 yıl geçti ve eminim o zamanlar işler değişti.

Sorum şu: systemd diğer init sistemleriyle nasıl karşılaştırılır?

  • Onu diğerlerinden ayıran şey, diğer init sistemlerinin yapamadığı şeyleri ne yapabilir?
  • Başka bir init sisteminden geçiş yaparken kaybedecek bir şey var mı?
  • Systemd yönetimi diğerleriyle nasıl karşılaştırılır?

1
Gentoo ile bir olabilir elleri deneyiminden systemd ve oldukça kolay çalışan var!

Özellikle ilgilendiğim şeylerden biri kullanıcı oturumları. Şu anda oldukça iyi çalışıyorlar, bazı istisnalar dışında. Bu, diğer çoğu init sistemleri tarafından gerçekten ihmal edildiğini düşündüğüm bir şey.
Chris Down

@ChrisDown, sistemi başlatmak / durdurmak ve servislerini yönetmek temel bir fonksiyonelliktir, ki bunlar daha iyi bir şekilde bütünleşmiştir (bu nedenle "derli toplu girişimler" kötü bir yanlış tanımlamadır). Ayrıca, sadece Lennart değil, bunun üzerinde çalışan tüm dağıtımlardan insanlar.
vonbrand

@ChrisDown, lütfen saçmalama. systemdşimdi bir web sunucusu içermez, ne de öyle yapmaz, yol haritasındaki herhangi bir QR'yi okumaz. Lütfen tüm bunların neyle ilgili olduğunu kontrol edin, tüm önemli dağıtımları konuştuğumuzda (şu an için Ubuntu hariç) varsayılan olarak kullandığınızı düşünün (açık kaynaklı insanlar nadiren bağımsız olma eğilimindedirler. bunun en iyi alternatif olduğuna inanmıyorum).
von

Günümüzde bile RHEL7 ile birlikte geliyor systemd. Dağıtımın Py3kvarsayılan python tercümanı ne zaman cehenneme döneceğini merak ediyor .
yegle

Yanıtlar:


26

Muhtemelen bilmek istediğiniz her şey burada , Debian projesinin bir araya geleceği kararını vermek için bir araya getirdiği " Kullanmaya Yönelik Tartışma Sistemini Kullanma " sayfalarındadır. Bu sayfa içinde, initsystems seçeneklerinin her biri için ayrı bir bağlantı vardır.

Systemd'deki bir primer için bu sayfada, başlamak için bilmesi gereken her şey var, RHEL7: Systemd ile nasıl başlanır .

İki ana seçeneğin daha iyi anlaşılması için faydalı bulduğum ek kaynaklar, ayrıca ilgili teknolojilerdeki Wikipedia sayfalarını da okudum:

Gentoo projesi ayrıca, çeşitli initsytems'teki bazı temel özelliklerin iyi bir karşılaştırmasını da sürdürüyor:

Sorularınızı benim almam

S # 1: systemd diğer init sistemlerine kıyasla nasıldır?

Bu bir SE cevabı alanında ele alınması çok zor bir soru, bu yüzden yukarıda bahsettiğim çeşitli kaynakları ertelemeyi tercih ederim. Bunu yine de söyleyeceğim. systemdAlternatiflerle ilgili makalelerin çoğunu okuyarak , Linux sistemlerinde hizmetleri başlatmak için kullanılan önceki araçlarda eksik olan şeylerin birçoğunu ele almaya çalışıyor. Çok iyi düşünülmüş bir tasarıma sahip ve onu çok modüler bir şekilde sağlamaya çalışıyor.

sistem bileşenleri

   systemd bileşenlerinin ss

Bu yüzden IMO, hem tasarımdaki çaba, hem de bu tasarımın uygulanması ve birkaç tane daha büyük Linux dağıtımı tarafından benimsenmesi açısından çok olumlu bir şekilde karşılaştırdığını söyleyebilirim.

Q # 2: Onu diğerlerinden ayıran şey, diğer init sistemlerinin yapamadığı şeyleri ne yapabilir?

sytemdDiğer sistemlerin yapamayacağı birçok şey var . Muhtemelen en güçlü özelliklerinden 3'ü:

  1. Günlüğü
  2. Kaynak Sınırlaması
  3. Çatallarla çalışan şeytanlarla uğraşmak

1. günlüğe kaydetme

Günlük cephesinde, systemd"Dergi" adı verilen yeni bir günlük sistemi başlattı, hizmet denir systemd-journald.service. Bu kendi konudur, bu konuda daha fazla bilgiyi burada bulabilirsiniz: Dergisi tanıtmak . İşte giriş yapan bir kullanıcı "harald" örneği.

_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 ve 3. Kaynak sınırlandırması ve bu çatallar

systemdburada cgroupskaynaklara erişimin sınırlandırılmasını veya sınırlandırılmasını gerektiren hizmetleri hem içermek hem de kaynakları sınırlamak için kullanan yeni bir yaklaşım kullanır .

alıntı

Systemd, tesadüfen kaynak sınırlandırmasını aynı anda yapan çatalların ortaya çıktığı takip sorunlarına çok akıllıca bir çözüm sunar. Upstart forking'i izlemek için ptrace kullandığında, systemd her bir arka planını herhangi bir miktarda çatalla kaçamayacağı bir kontrol grubunda (Linux 2.6.24 veya daha yenisini gerektirir) çalıştırır. Bu, hem çatal hem de çatal uçucu olmayan şeytanlar için kaynak sınırlamasını kolaylaştırır, çünkü kontrol grupları bu tür şeyler için yapılmıştır.

Kaynak: Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God

Q # 3: Başka bir init sisteminden buna geçerken kaybedecek bir şey var mı?

Muhtemelen Upstart veya sysV init üzerinden sisteme geçmek için en büyük uyarı, birçok yeni karmaşıklığı benimsemek zorunda kalmaktır. Systemd çok fazla hareketli parçaya sahiptir ve son derece zengin özelliklere sahiptir ve bu ilave yeteneklerle muhtemelen tüm bunların nasıl çalıştığıyla ilgili anlayışlar kazanmak için oldukça fazla zaman harcıyor olacaksınız.

SORU 4: Sistem yönetimi, diğerlerine kıyasla nasıldır?

Yukarıda belirtildiği gibi Q # 3'e cevap verdim. Ben yine burada tekrar edeceğim. SysV init'in birkaç saatten günlere nasıl yönetileceğini ve yönlendirileceğini öğrenmek için oldukça önemsiz olduğu durumlarda, Upstart'ın hız kazanması bir hafta veya daha fazla sürecek, sistemd muhtemelen daha uzun sürecektir. Her ikisi de kendi .servicedosyalarımı üretebileceğim , bu konuda sysV init ile keyif aldığım kolaylığı ile hizmetleri durdurmaya / başlatabilmem için yeterli bilgi edinmeye haftalar kaldı .

Referanslar


@Caleb, sorun çok karmaşık ve dahası birçok insan için hassas bir konu. Cevabın tam olarak durduğuna inanıyorum-
vonbrand

@Caleb - evet, geri bildiriminiz için teşekkür ederiz.
slm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.