'init' ve 'systemd'nin Arkasındaki Hikaye: Linux'ta Neden 'init'in 'systemd' ile Değiştirilmesi Gerekiyor?


Sırf neler olup bittiği konusunda kendimi güncel tutmak için çeşitli Linux Dağıtımları ve Uygulamaları ile ilgili çeşitli e-posta listelerine aboneyim. Yeni hatalar neler? Yayınlanan Yamalar Nelerdir? Bir sonraki sürümde neler bekleniyor? ve daha bir sürü şey. Bu günlerde e-posta listesi, başta Debian Posta listesi olmak üzere diğer birkaç listeyle birlikte yoğun bir şekilde "Linux Divide'da tarafınızı seçin" ile dolu.

“Linux Divide'da tarafınızı seçin” neyle ilgili?

Bazı Linux Dağıtımlarında init arka plan programı, arka plan programı systemd ile değiştirilecek, ancak birçoğu bunu zaten uygulamış durumda. Bu, geleneksel Unix/Linux Guard ile Yeni Linux Guard, programcılar ve Sistem Yöneticileri arasında büyük bir boşluk yaratıyor/oluşturacak.

Bu yazımızda tüm soruları tek tek tartışıp çözeceğiz.

  1. Başlangıç nedir?
  2. sistem nedir?
  3. Neden init'in değiştirilmesi gerekiyordu?
  4. Systemd hangi özelliklere sahip olacak?

İçinde ne var?

Linux'ta init, Başlatma'nın kısaltmasıdır. init, bilgisayar başlar başlamaz başlayan ve kapanana kadar çalışmaya devam eden bir daemon işlemidir. Aslında init, bilgisayar önyüklendiğinde başlayan ilk süreçtir; bu, onu doğrudan veya dolaylı olarak çalışan tüm diğer süreçlerin üst öğesi yapar ve bu nedenle genellikle "pid=1" olarak atanır.

Eğer init arka plan programı bir şekilde başlatılamazsa, hiçbir işlem başlatılmayacak ve sistem “Kernel Panic” adı verilen aşamaya ulaşacaktır. init genellikle Sistem V init olarak anılır. System V, tasarlanan ilk ticari UNIX İşletim Sistemidir ve günümüz Linux Dağıtımlarının çoğunda init kullanımı, BSD stilini kullanan Slackware ve özel init kullanan Gentoo gibi birkaç istisna dışında System V OS ile aynıdır. .

İnit'i daha mükemmel bir şeyle değiştirme ihtiyacı uzun zamandır hissediliyordu ve zaman zaman çeşitli alternatifler geliştirildi; bunlardan bazıları dağıtımın yerel init değişimi haline geldi; bunlardan bazıları:

  1. Başlangıç – Ubuntu GNU/Linux'ta uygulanan ve süreci eşzamansız olarak başlatmak üzere tasarlanmış bir başlangıç değiştirme arka plan programı.
  2. Epoch – Basitlik ve hizmet yönetimi üzerine kurulu, süreci tek iş parçacıklı olarak başlatmak için tasarlanmış bir init değiştirme arka plan programı.
  3. Mudar – Python'da yazılmış, Pardus GNU/Linux'ta uygulanan ve süreci eşzamansız olarak başlatmak üzere tasarlanmış bir başlangıç değiştirme arka plan programı.
  4. systemd – Süreci paralel olarak başlatmak için tasarlanmış, Fedora, OpenSuSE, Arch, RHEL, CentOS, vb. gibi çeşitli standart dağıtımlarda uygulanan bir init değiştirme arka plan programı.

sistem nedir?

systemd, arka plan programının sonuna 'd' eklenecek UNIX kuralıyla adlandırılmış bir Sistem Yönetimi Arka Plan Programıdır. Böylece kolayca tanınabilirler. Başlangıçta GNU Genel Kamu Lisansı altında yayınlandı, ancak şimdi sürümler GNU Kısıtlı Genel Kamu Lisansı altında yapılıyor. İnit'e benzer şekilde, systemd doğrudan veya dolaylı olarak diğer tüm işlemlerin üst öğesidir ve önyükleme sırasında başlayan ilk işlem olduğundan genellikle "pid=1" olarak atanır.

Bir systemd, arka plan programı etrafındaki tüm paketlere, yardımcı programlara ve kitaplıklara atıfta bulunabilir. Init'in eksikliklerinin üstesinden gelmek için tasarlandı. Kendisi, işlemleri paralel olarak başlatmak için tasarlanmış, böylece önyükleme süresini ve hesaplama yükünü azaltan bir arka plan işlemidir. İnit ile karşılaştırıldığında birçok başka özelliğe sahiptir.

Neden init'i değiştirmeye ihtiyaç duyuldu?

Bir başlatma işlemi seri olarak başlar, yani bir görev yalnızca son görev başlatma işlemi başarılı olduktan ve belleğe yüklendikten sonra başlar. Bu genellikle gecikmeli ve uzun önyükleme süresiyle sonuçlandı. Bununla birlikte, systemd hız için değil, işlerin düzgün bir şekilde yapılmasını sağlamak ve böylece BM'nin gerektirdiği tüm gecikmeleri önlemek için tasarlandı.

Systemd'nin özellikleri
  1. Temiz, ileri teknolojiye sahip ve verimli tasarım.
  2. Daha basit önyükleme işlemi.
  3. Önyükleme sırasında eşzamanlı ve paralel işleme.
  4. Daha iyi API.
  5. Basit Birim Söz Dizimi.
  6. İsteğe bağlı bileşenleri kaldırma yeteneği.
  7. Düşük bellek ayak izi.
  8. Bağımlılıkları ifade etmek için geliştirilmiş teknik.
  9. Başlatma talimatı kabuk betiğinde değil, yapılandırma dosyasında yazılmıştır.
  10. Unix Etki Alanı Soketinden yararlanın.
  11. Systemd Takvim Zamanlayıcılarını kullanarak İş Planlama.
  12. Journald ile Olay Günlüğü.
  13. Sistem olaylarını systemd ve syslog ile kaydetme seçeneği.
  14. Günlükler ikili dosyada saklanır.
  15. systemd durumu gelecekte daha sonra çağrılmak üzere korunabilir.
  16. PID'yi değil, çekirdeğin grup grubunu kullanarak süreci izleyin.
  17. Kullanıcı girişi systemd-logind tarafından yönetilir.
  18. Birlikte çalışabilirlik için Gnome ile daha iyi entegrasyon.
Darboğazlar sistemi
  1. Her şey tek bir yerde.
  2. POSIX standardı değil.

Systemd ve Distro Entegrasyonu

Linux Distribution

Entegrasyon

Fedora

Evet, systemd'yi benimseyen ilk dağıtım

Arch

Evet

RedHat

Evet

CentOS

Evet

Debian

Evet, Debian 8 kod adı Jessie varsayılan olarak systemd'ye sahip olacak

Gentoo

Evet, ancak özel init ile indirilmesi, kurulması ve yapılandırılması gerekiyor

OpenSUSE

Evet

Slack

Hayır (Şu ana kadar slackware'de benimsenmemiş olsa da Patric Volkerding benimsenip benimsenmeyeceğine dair herhangi bir belirti göstermedi)

Ubuntu

Evet, Upstream ile kurulmalı ve yapılandırılmalıdır.

Tartışma

Linux çekirdeğinin baş mimarı Linus Torvalds, systemd'nin kilit geliştiricisinin kullanıcılara karşı tutumunun ve hata raporlarının iyi görünmediğini düşünüyor. Ayrıca sistem felsefesinin tuhaf olduğu ve sistem süreçlerini kontrol etmenin yabancı bir yolu olduğu da bildirildi. Aynı şey Patric Volkerding ve diğer önemli Linux Kullanıcıları ve Geliştiricilerinin yanı sıra zaman zaman çevrimiçi forumlarda da kaydedildi.

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)

Çözüm

pid=1 olarak çalışan herhangi bir şey bozulmamalı, karışıklık yaratmamalı ve kullanıcılar tarafından etkin ve verimli bir şekilde kontrol edilmelidir. Birçok kullanıcı, init'i systemd yerine değiştirmenin, Linux'un bir yan etkisi olarak her seferinde tekerleği yeniden icat etmekten başka bir şey olmadığına inanıyor. Ancak bu Linux'un çeşitli doğasıdır. Bunun nedeni Linux'un çok güçlü olmasıdır. Değişim iyidir ve eğer iyi bir nedenden kaynaklanıyorsa bunu takdir etmeliyiz.

Şimdilik bu kadar. Sizlerin okumayı seveceği başka ilginç bir makaleyle tekrar karşınızda olacağım. O zamana kadar bizi izlemeye devam edin ve Tecmint'e bağlı kalın. Aşağıdaki yorumlarda bize değerli geri bildirimlerinizi iletmeyi unutmayın.