Başlangıçtan sisteme geçiş için gerekçe?


28

Ubuntu 15.04 ile gelen daha büyük değişiklik, açılış ve sistem hizmeti başlatmayı yönetmek için varsayılan ayar olarak başlangıçtan sisteme geçiştir.

Teknik olmayan bir kullanıcıya, bu durumun bizi nasıl ve nasıl etkileyeceği yeterince açıklanabilir mi? Ve neden önemli?

Yanıtlar:


29

Layman kullanıcıları tasarım açısından herhangi bir değişiklik görmemelidir . Bu bir init sistemdir, kullanıcıların geleneksel olarak etkileşime girdiği bir şey değildir. Upstart tarafından sağlanan işlevselliği tamamen değiştirmeli ve birkaç ekstra şey yapmalıdır - ancak teknik olmayan bir kullanıcının bunu yanlış anladığı zaman göreceği tek şey.

Upstart için aktif olarak kullanan ve geliştiren kullanıcılar, sysadmins ve geliştiriciler olayları ele almak için gereken insanlardır. Ubuntu Wiki'de geliştiricilerin başlangıç ​​komut dosyalarını dönüştürmelerine yardımcı olacak bir geçiş belgesi vardır , ancak kullanıcılar ve sysops'lar 14.04'e (2019'a kadar desteklenir) yapıştırarak Upstart'ı kullanmaya devam edebilir.

Değişimin nedeni ve gerekçesi gerçekten Ubuntu'nun tarafında değildi. Canonical, Upstart (projeleri) ile yeterince mutluydu, ancak birçok Debian kullanıcısı, açılışta daha iyi eşzamanlılık elde etmek ve tüm servislerde daha iyi izleme işlevselliği elde etmek için modern bir init motoruna geçmek istedi.

Bu, çeşitli seçenekler (gerekçeler) ile sistemd arasında kazanılan bir kavga anlamına geliyordu .

Canonical, Debian ile birlikte gitti çünkü en kolay ve muhtemelen en iyisi. Bir projeyi bırakıp, yukarı doğru savaşmıyorlar. Aynı zamanda bizi sisteme yönelen diğer dağıtımlara (Red Hat, Fedora, vb.) Da getiriyor. Daha fazla odaklanma ve daha az çaba harcayarak.

tl; dr Teknik olmayan bir kişiye, bu sizi hiç etkilememelidir. Ubuntu için daha az iş ve daha iyi bir init sistemi anlamına gelmelidir.


18

Teknik olmayan bir kullanıcıya, bu durumun bizi nasıl ve nasıl etkileyeceği yeterince açıklanabilir mi?

Teorik olarak, bu, sistemin gerçekte nasıl çalıştığının nitrit kumbarasına karışmamış teknik olmayan son kullanıcıyı etkilememelidir. Uygulamada göreceğiniz birçok şey var.

İşte eksik bir liste:

  • Programları başlatmak için başlangıçta iş tanımı dosyalarını kullanan ek yazılımlar varsa, çalışmayı durdururlar. Sistem ve servis birimi dosyalarını kurmanız (ve muhtemelen yazması ancak daha genel olarak yalnızca bir başkasını yazmış olan birisini kapatmanız) gerekecektir . Örnek: https://askubuntu.com/questions/613785
  • Sistem geliştiricileri tarafından güç yönetimi gibi şeyler hakkındaki çeşitli tasarım varsayımları, alışmış olabileceğiniz şeylerle çelişen varsayılanlara yol açar. Sistem geliştiricileri , örneğin dizüstü bilgisayarlardaki kapak anahtarlarına cevap olarak ne yapılması gerektiği konusunda kesin fikirlere sahipler .
  • Nvidia tescilli ekran sürücüsünü kullanıyorsanız, sistemde sizi etkileyen çeşitli tasarım kararları vardır. Örnek: https://askubuntu.com/questions/613773
  • Ubuntu kullanıcıları birkaç yıldan beri bunu kendilerine anlatan bir el kitabına sahip olduklarından, başlangıçtan itibaren ortaya çıkmaları gerçekten önemli değil, ancak şunu okuyabilecek Ubuntu üyesi olmayan kullanıcılar için söylüyorum: System 5 init+ ' den gelen diğer Linux işletim sistemleri kullanıcıları rcsystemd'nin yalnızca System 5 ile geriye dönük olarak uyumlu olması nedeniyle ısırılırlar rc. Yeni başlayanlar ve diğer pek çok sistem gibi, Sistem 5 initve yapılandırma dosyası ile geriye dönük uyumsuzluk beyan eder ve sağlar /etc/inittab.

    Bu yüzden, 30 yıllık bazı kimselerin tavsiyelerine "Peki, bunu sadece düzenleyebilirsiniz /etc/inittab..." diyen veya bu tavsiyeyi izleyen yazılımları kullanan kişilerin şimdi önyüklemede başlamayan yazılımları var. Örnek: https://unix.stackexchange.com/a/196197/5132

  • Sen hiç alamayan tek kullanıcı modu systemd aracılığıyla shutdownönceki ile geldiğince, komuta shutdownkomutları. Sistem jargonunda kurtarma modu olarak adlandırılmasının yanı sıra, kurtarma modu , sistem dünyasında kapalı durum olarak kabul edilmez. Çalışan bir durum olarak kabul edilir . shutdown nowMakineyi kapatır. Bu var systemctl rescuesystemd dünyada tek kullanıcılı modu ulaşmak için. Daha fazla okuma: https://unix.stackexchange.com/a/196471/5132
  • Bu son konunun ötesinde: Zaten koşu seviyeleri fikrinden vazgeçmediyseniz, şimdi bunu yapmanın tam zamanı. Daha fazla okuma: https://unix.stackexchange.com/a/196014/5132
  • Rastgele WWW taraması tarafından bulunan genel sistem tavsiyelerine uymak konusunda dikkatli olmanız gerekir, çünkü “artık her şeyin sistemli olduğunu” biliyorsunuzdur. --userSeçeneği ile çalışan komutları hakkında konuşurken insanlar göreceksiniz systemctl. Bu henüz Ubuntu için geçerli değil. başlangıç ​​ve sistemd, bu alanda önemli ölçüde farklılık gösterir ve Ubuntu sürüm 15, kullanıcı başına bir sistem örneği yerine , yine de oturum başına başlangıç girişimini kullanır . Bu nedenle , örneğin https://superuser.com/a/860598/38062 geçerli değildir. ☺

6

Burada başkalarının daha önce belirttiği gibi, teoride bu teknik olmayan son kullanıcıyı etkilememelidir - teoride teori ile pratik arasında bir fark yoktur ancak pratikte vardır.

açıklama

Burada yayınlanan birkaç şeyin açıklığa kavuşturulması gerektiğini düşünüyorum:

Bu bir init sistemdir, kullanıcıların geleneksel olarak etkileşime girdiği bir şey değildir.

SysV init ve Upstart ile durum buydu, ancak artık systemd ile durum böyle değildi. Kullanıcıların geleneksel olarak etkileşimde bulunduğu birçok şey yapar :


Upstart tarafından sağlanan işlevselliğin yerini tamamen almalı ve birkaç ilave şey yapmalı.

Netleştirilmesi gereken iki şey - ilk önce Upstart'ı tamamen değiştirmekle ilgili:

SysV init betiği yok

İnsanların systemd ile ilgili sorunlarından biri, SysV init betiklerini çalıştırmamasıdır. Bu yüzden Upstart tarafından sağlanan işlevselliğin yerini tamamen almadığı bir örnek var .

Bu, 30 yıldan fazla bir süre boyunca güvenebileceğimiz bir şeydir ve geleneksel olarak, SysV init betiklerini, kendini tekrar etmeden (aynı betiklerin birden fazla versiyonunu yazarak) tekrarlamadan maksimum taşınabilirlik için yazdınız.

Yalnızca resmi depolardan gelen paketleri kullanırken bu sorun olmamalıdır, çünkü muhtemelen SysV init veya Upstart betiklerine sahip olan tüm paketlerin, paketlenmeden önce betiklerinin yeniden yazılması gerekir.

Bu, yalnızca SysV init veya Upstart için init betikleri yazılı olan üçüncü taraf veya özel yazılım kullananlar için ve bir sisteme geçmeden önce (veya olsun ayrıca bir seçenek olan veya başlatılan kurulu bir sistemdir veya systemd kullanmayan bir sisteme taşınır).

SysV init komut dosyalarını otomatik olarak sistem komut dosyalarına çevirmesi gereken systemd-sysv-generator var, ancak bazı hatalar ve açık bir uyumsuzluk listesi var .

Şimdi, ikinci açıklama - bu birkaç ekstra şey hakkında:

Birkaç ekstra şey

Sistemin A Perspektifine Göre - Neler Elde Edildi ve 2014'te GNOME.asia'da Lennart Poettering'in sunumunda Neler Yatar?

  • init sistemi
  • günlük kaydı
  • giriş yönetimi
  • Cihaz yönetimi
  • geçici ve geçici dosya yönetimi
  • ikili format kaydı
  • arka ışık kaydet / geri yükle
  • rfkill kaydet / geri yükle
  • bootchart
  • Ileride okuyun
  • şifreli depolama kurulumu
  • EFI / GPT bölüm keşfi
  • sanal makine / konteyner kaydı
  • konteyner yönetimi
  • ana bilgisayar adı yönetimi
  • yerel yönetim
  • zaman yönetimi
  • rastgele tohum yönetimi
  • sysctl değişken yönetimi
  • konsol yönetimi
  • içgözlem
  • otomatik keşif
  • tak ve oyna
  • ağ yönetimi
  • systemd-networkd
  • DNS önbelleği
  • mDNS cevaplayıcısı
  • LLMNR cevaplayıcısı
  • DNSSEC doğrulama
  • Çekirdekte IPC
  • kdbus
  • sd-Bus
  • NTP ile zaman senkronizasyonu
  • systemd-timesyncd
  • konteynerlerle entegrasyon
  • hizmetlerin sanallaştırılması
  • uygulamalar sanal alanı
  • İşletim sistemi görüntü formatı
  • Konteyner görüntü formatı
  • Uygulama görüntü formatı
  • Otomatik keşif özellikli GPT
  • Vatansız sistemler
  • hazır sistem
  • fabrika ayarları
  • düğüm başlatma ve güncellemeler
  • bulutla entegrasyon
  • düğümler arasında servis yönetimi
  • doğrulanabilir işletim sistemi görüntüleri bellenim boyunca
  • Önyükleme Yükleniyor
  • İnternetin Yeni Nesil İşletim Sistemini Kurmak Dağıtımlar arasındaki anlamsız farkları birleştirmek

O zaman geri dönelim: "Bu bir init sistemi, kullanıcıların geleneksel olarak etkileşime girdiği bir şey değil." - init sisteminin bu listedeki sadece bir öğe olduğuna dikkat edilmelidir.


Ve son olarak, yorumlamak istediğim son şey:

[T] teknik olmayan bir kullanıcının sadece yanlış gittiğinde göreceğini yalnızca zaman alır.

Oh, ne rahatlama. :)

değişiklikler

Son kullanıcılar için yapılan en önemli değişiklikler (komut dosyalarının kendisi dışında) hizmetleri başlatmak ve durdurmak ve şunun gibi komutları kullanmaktır:

artık beklendiği gibi çalışmıyor. Örneğin, nohupoturumunuzdan çıktıktan sonra işlemin devam etmesini sağlamak için bir POSIX komutudur. Artık systemd üzerinde çalışmıyor . Ayrıca gibi programlar screenve tmuxihtiyaç özel bir şekilde veya başka bir şekilde de çağrılacak ölümüne sebep olur onlarla çalıştırmanızı süreçler (ölenlerin süreçleri almıyor ise genellikle ilk etapta ekranı veya tmux yayınlamanın temel nedenidir).

Bu bir hata değil, bir tasarım tercihi, bu yüzden gelecekte düzeltilmesi muhtemel değil. Lennart Poettering'in bu konuda söylediği şey bu:

Benim görüşüme göre, UNIX'in varsayılan olarak oturumu kapattıktan sonra keyfi kullanıcı kodunun sınırsız kalmasına izin vermesi oldukça garipti. Günümüzde birçok işletim sistemi çalışanı arasında, bunun mümkün olması, ancak kesinlikle varsayılan olmaması gerektiği tartışılmıştır, ancak şimdiye kadar hiç kimse anahtarı bir varsayılandan bir seçeneğe çevirmek için düğmeyi çevirmeye cesaret edemedi. Oturumu kapattıktan sonra kullanıcı oturumlarını temizlememek sadece çirkin ve biraz da rahatsız edici değil, aynı zamanda bir güvenlik sorunudur. systemd 230 şimdi nihayet anahtarı çevirdi ve nihayet varsayılan olarak kullanıcı oturumu kapattığında her şeyi doğru temizledi.

Daha fazla bilgi için bakınız:

Koşu screen

  • sonradan görme: screen
  • systemd: systemd-run --user --scope screen

(Not: Yukarıdaki "start-up" davranışı gerçekten systemd dışında bir şeydir, bu start-up spesifik değildir)

İş başında foo:

  • sonradan görme: start foo
  • systemd: systemctl start foo

İş foo'yu durdurmak:

  • sonradan görme: stop foo
  • systemd: systemctl stop foo

İş foo'yu yeniden başlatma:

  • sonradan görme: restart foo
  • systemd: systemctl restart foo

Durumlarını içeren işleri listeleme:

  • sonradan görme: initctl list
  • systemd: systemctl status

( Bu sorunun kapsamı dışında kalan daha fazla ayrıntı için Upstart ve systemd'in artıları / eksileri neler?

Kayıtlar

Günlüklerin işlenmesinde de büyük bir fark vardır, çünkü Unix geleneğinin aksine, systemd günlükleri ikili dosyalarda özel bir biçimde depolanır, bunun yerine:

cat /var/log/upstart/foo.log
tail -f /var/log/upstart/foo.log

günlüklerinize erişmek için özel komutlar kullanmanız gerekir:

sudo journalctl -u foo
sudo journalctl -u foo -f

Münazarat

Sistemin ilk önce Debian'a, daha sonra Ubuntu'ya getirilmesi, aşağıdaki makalelerden birini yazanların bildiği gibi tartışmasız ve büyük bir muhalefet değildi:

Sistemdeki resmi Debian pozisyonu ve sonuçta ortaya çıkan tartışma 2014 yılında Exodus bildirisine yol açtı ve Ian Jackson'ın istifasıyla sona erdi .

Iner Freedom , Non-Systemd.org ve Systemd-Free.org girişimleri , Hacker News hakkında birçok tartışma ile doğdu.

daha fazla okuma


Cevabımı farklı bir bağlamda karıştırıyorsunuz. Systemd olduğunu daha bir init sisteminden daha ama bu soru sonradan görme → systemd ve bu kararı ... Değil ilgiliydi "herşeye karşı systemd cümledeki nelerdir?"
Oli
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.