Altı aylık geliştirme sürecinin ardından sistem yöneticisi systemd 257'nin piyasaya sürülmesi sunuldu. Önemli değişiklikler: yeni systemd-sbsign ve systemd-keyutil yardımcı programları, bir soket üzerinden etkinleştirildiğinde MPTCP desteği, Musl C kütüphanesi ile derleme için ilk destek, systemd-sysupdate aracılığıyla güncellemelerin kurulumunu yönetmek için updatectl yardımcı programı, hizmetleri ayrı PID ad alanlarında başlatma yeteneği, "systemd-tmpfiles —purge" kullanılırken dosyaların yanlışlıkla silinmesine karşı koruma.
Yeni sürümdeki değişiklikler arasında:
- EFI Güvenli Önyükleme modunda önyükleme yapılırken kullanılmak üzere tasarlanmış PE (Taşınabilir Çalıştırılabilir) yürütülebilir dosyalarını dijital olarak imzalamak için yeni bir yardımcı program olan systemd-sbsign eklendi. İmza oluşturma için OpenSSL kütüphanesi tarafından sağlanan motorlar ve sağlayıcılar kullanılabilir. systemd-sbsign, UEFI önyükleme yükleyicisini (UEFI önyükleme saplaması) ve çekirdek görüntüsünü tek bir dosyada birleştiren evrensel çekirdek görüntüleri (UKI) oluştururken ukify yardımcı programındaki sbsigntool ve pesign uygulamalarına alternatif olarak kullanılabilir. Linux ve initrd sistem ortamı belleğe yüklendi.
- Özel anahtarlar ve X.509 sertifikaları üzerinde çeşitli işlemleri uygulayan yeni bir yardımcı program olan systemd-keyutil eklendi. Örneğin, systemd-keyutil, özel anahtarları ve sertifikaları yükleme yeteneğini test etmek ve bunlardan genel anahtarları PEM formatında çıkarmak için kullanılabilir.
- Soket etkinleştirme mekanizmasının (ağ bağlantısı kurmaya çalışırken başlatılan işlemler) çalışmasını sağlamak için kullanılan ".socket" birimlerinde, TCP protokolünün bir uzantısı olan MPTCP (Çok Yollu TCP) desteği uygulanmıştır. MPTCP, farklı ağ arayüzlerine bağlı farklı yollar üzerinden paketlerin eş zamanlı olarak iletilmesiyle bir TCP bağlantısının çalışmasını organize etmek için kullanılır. IP adresim.
- Standart Musl C kütüphanesini kullanarak derlemek için gerekli değişiklikleri içerir.
- İlerleme göstergelerini görüntüleyen çeşitli systemd bileşenleri (örneğin, systemd-repart, systemd-sysupdate/updatectl ve importctl), artık ilerleme ekranlarını canlandırmak için ANSI dizilerini kullanmayı destekliyor. Bu tür diziler şu anda yalnızca şu durumlarda desteklenmektedir: Windows Terminal (zamanla benzer bir özelliğin terminal emülatörlerine de aktarılması bekleniyor) Linux).
- Systemd-sysupdate bileşeninin yetenekleri genişletildi; bölümleri, dosyaları veya dizinleri değiştirmek için atomik bir mekanizma kullanarak güncellemeleri otomatik olarak algılamak, indirmek ve yüklemek için kullanıldı (biri mevcut çalışmayı içeren iki bağımsız bölüm/dosya/dizin kullanılır) kaynak ve diğeri bir sonraki güncellemeyi yükler, ardından bölümler/dosyalar/dizinler değiştirilir). Pratikte systemd-sysupdate GNOME OS'de zaten kullanılıyor.
Systemd-sysupdate sürecine ek olarak, D-Bus'un ayrıcalıklı olmayan bir kullanıcı tarafından sistem güncellemelerini yönetmek için kullanılmasına olanak tanıyan aynı isimli bir hizmet eklenmiştir. Hizmeti yönetmek için yeni bir updatectl yardımcı programı da dahildir. Meta verilerin ağ üzerinden indirilmesini devre dışı bırakmak ve yalnızca yerel sisteme önceden indirilmiş olan sürümleri kullanmak için systemd-sysupdate'e "--offline" işareti eklendi. Tüm komutlar için JSON formatında çıktı desteği eklendi.
- Hizmetler için, ayrı bir işlem tanımlayıcı alanda (PID ad alanı) PID 1 (init işlemi) ile işlemlerin başlatılmasını düzenleyebileceğiniz yeni bir "PrivatePIDs" özelliği uygulanmıştır. Başlatılan işlem için oluşturulan ortamda yalnızca kendisi için oluşturulan ad alanındaki işlemler görünür olacaktır.
- Udev kurallarına büyük/küçük harfe duyarlı olmayan eşleşmeler için destek eklendi (ör. 'ATTR{foo}==i»abcd»'). Udev kullanarak, ayrıcalıksız yerel kullanıcılara, libcamera aracılığıyla IPMI kameralarla çalışmak için gerekli olan /dev/udmabuf cihazına erişim (“uaccess”) sağlamak mümkündür. udev, bir USB arayüzü ile çeşitli donanım kripto cüzdanlarının tanınmasını ve bunlar için ID_HARDWARE_WALLET özelliğinin ayarlanmasını sağlar; bu, ayrıcalıksız kullanıcıların erişimi için bunlara "uaccess" modunu uygulamanıza olanak tanır.
- /etc/os-release dosyasına yeni RELEASE_TYPE, EXPERIMENT ve EXPERIMENT_URL alanları eklendi. "RELEASE_TYPE", kararlı sürümleri geliştirme ve deneysel yapılardan ayırmak için "deneysel", "geliştirme", "kararlı" ve "lts" değerlerini alabilir. EXPERIMENT ve EXPERIMENT_URL parametreleri deneysel yapının özünü açıklamayı amaçlamaktadır.
- Sudo programının yerine geliştirilen run0 yardımcı programı, komut kabuğu istemi için önek dizesini belirten “--shell-prompt-prefix” seçeneğini ekledi. Varsayılan olarak, yükseltilmiş bir oturumu görsel olarak vurgulamak için "🦸" emojisi önek olarak görüntülenir.
- Systemd-tmpfiles'ta, yanlış dosyaların yanlışlıkla silinmesini önlemek için, "--purge" seçeneği artık yalnızca tmpfiles.d/ dosyasında "$" bayrağının açıkça ayarlandığı ayarlar için geçerlidir. "--purge" işlemi artık tmpfiles.d/ dizininden en az bir dosyanın belirtilmesini de gerektiriyor. 'L' tipindeki dizeler için '?' bayrağı eklendi, belirtildiğinde yalnızca hedef dosya mevcutsa sembolik bir bağlantı oluşturulacak.
- Hizmet yöneticisinde ve ilgili yardımcı programlarda süreç izleme kodu, PID yerine PIDFD'yi kullanacak şekilde dönüştürülmeye devam eder. Bir PIDFD, belirli bir işlemle ilişkilendirilir ve değişmez; oysa bir PID, o PID ile ilişkili mevcut işlem sona erdikten sonra başka bir işlemle ilişkilendirilebilir.
- Hizmetler için artık "RestartMode" parametresinde "debug" değerini belirtmek mümkün; burada başarısız olan hizmet, hata ayıklama modu etkinken yeniden başlatılacak (DEBUG_INVOCATION=1 ortam değişkeni ayarlandı) ve LogLevelMax değeri şöyle olacak: geçici olarak hata ayıklama düzeyine yükseltildi.
- PID 1 işleyicisi, tüm sistem için bütünlük politikasını (hangi işlemlere izin verildiği ve bileşenlerin orijinalliğinin nasıl doğrulanması gerektiği) tanımlayan IPE (Bütünlük Politikası Uygulama) LSM modülü için kuralları yükleme yeteneğine sahiptir.
- “.timer” birim dosyalarına “DeferReactivation” seçeneği eklendi; bu seçenek, eğer hizmet son aktivasyondan bu yana yürütmesini henüz tamamlamadıysa bir sonraki zamanlayıcı aktivasyonunu atlamanıza olanak tanıyor.
- PrivateUsers birim dosyası parametresinde, kullanıcı ad alanı oluştururken kullanıcı kimliklerinin eşlenmesini etkinleştirmek için "kimlik" değerini belirtmek artık mümkün.
- /tmp/ ve /var/tmp/ dizinleri için ayrı tmpfs örneklerini kullanacak olan PrivateTmp birim dosya parametresine "bağlantı kesildi" değeri için destek eklendi.
- ProtectControlGroups birim dosya parametresine yeni “özel” ve “sıkı” modlar için destek eklendi, ayarlandığında hizmet için yeni bir cgroup ad alanı oluşturulur ve cgroupfs bağlanır. “Sıkı” seçeneği ayarlandığında cgroupfs salt okunur modda bağlanır.
- StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory ve ConfigurationDirectory parametreleri, karşılık gelen dizinlere erişimi salt okunur modda kısıtlamak için ':ro' bayrağını kullanma yeteneği sağlar.
- Sistem tanımlayıcısının (makine kimliği) SMBIOS/DeviceTree'deki UUID'ye göre hesaplanacağı "systemd.machine_id" çekirdek komut satırı parametresine "firmware" değeri için destek eklendi.
- Son çekirdek sürümlerinde tanıtılan mseal(), listmount() ve statmount() sistem çağrıları için destek eklendi. Linux.
- Resolctl, timedatectl ve systemd-inhibit yardımcı programları artık Polkit kullanarak etkileşimli yetkilendirmeyi destekliyor.
- Systemctl yardımcı programına “reenable” komutundaki “--now” bayrağını kullanma yeteneği eklendi.
- JSON biçiminde çıktı almak için systemd-mount yardımcı programına "--json" seçeneği eklendi (örneğin, "--list-devices" ile birlikte belirtildiğinde, aygıtların bir listesi JSON biçiminde çıkarılacaktır).
- Çıktı sırasında uzun satırların kesilmesini devre dışı bırakmak için "localectl" yardımcı programına "-l" ve "--full" seçenekleri eklendi.
- Sleep.conf'a, cihazın sabit güç kaynağıyla bağlantısı kesilene kadar uyku moduna geçmeyi geciktirmenize olanak tanıyan HibernateOnACPower seçeneği eklendi.
- Systemd-sysusers'da, tamamen kilitli kullanıcı hesapları oluşturabileceğiniz "u" satırlarına "!" değiştiricisi desteği eklendi (daha önce, bir kullanıcıyı engellemek için yanlış şifre ayarlamak kullanılıyordu; SSH'de anahtar kimlik doğrulaması sırasında engellemeye yol açmadı).
- Systemd-coredump, hata ayıklama sembollerini elde etmek için çöken işlemlerin bağlama noktası alanına erişime izin veren bir "EnterNamespace" seçeneği ekler. Uygulamada bu seçenek, yalıtılmış kaplarda çalışan uygulamalardan çekirdek dosyaların geriye doğru izlenmesini düzenlemek için yararlı olabilir.
- systemd-logind, org.freedesktop.login1.SecureAttentionKey sinyalini güvenli bir oturum açma iletişim kutusu görüntüleme isteğiyle birlikte kullanıcı ortamı bileşenlerine göndermek için Ctrl-Alt-Shift-Esc kombinasyonunun işlenmesini içerir. İşin belirli bir zamanda tamamlanmasını otomatik olarak planlamak için "DesignatedMaintenanceTime" ayarı uygulandı. DRM ve evdev aygıtlarına yönelik desteğe benzer şekilde, ayrıcalığı olmayan kullanıcıların hidraw aygıtlarına (oyun denetleyicileri ve oyun çubukları) erişimini yapılandırmak için destek eklenmiştir.
- systemd-machined artık ayrıcalıksız istemci oturum açma işlemlerini destekliyor. Sanal makineler ve konteynerler. D-Bus'a ek olarak, systemd tarafından işlenmiş işlevlere erişim Varlink API aracılığıyla sağlanır.
- IPv6 adreslerine yönelik etiketleri ve önekleri yapılandırmak için networkd.conf yapılandırma dosyasına yeni bir “[IPv6AddressLabel]” bölümü eklendi
- Dosya içeriğini standart akıştan almak için 'networkctl edit' komutuna "--stdin" seçeneği eklendi. 'networkctl edit' ve 'networkctl cat' komutlarına bir ağ arayüzü belirterek .netdev dosyalarını düzenleme ve görüntüleme desteği eklendi. Etkileşimli yetkilendirmeyi devre dışı bırakmak için "--no-ask-password" seçeneği eklendi.
- X.509 sertifikasını doğrudan bir SSL sağlayıcısından yüklemek yerine OpenSSL sağlayıcısı aracılığıyla yüklemek için ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart ve systemd-sbsign yardımcı programlarına bir "--certificate-source" seçeneği eklendi dosya.
- systemd-boot, akıllı telefonlar gibi cihazlarda faydalı olabilecek, önyükleme menüsünde yukarı ve aşağı hareket etmek için ses seviyesi düğmelerini kullanma yeteneğini ekler. Bootctl yardımcı programına, systemd-boot için ESL(db/dbx/…) formatında UEFI Güvenli Önyükleme veritabanını yükleme desteği eklendi.
- Birim çağrılarının listesini göstermek için Journalctl'ye "--list-invokasyon" seçeneği ve yalnızca belirli bir çağrıyla ilişkili günlükleri göstermek için "--invokasyon" seçeneği ("-I") eklendi.
- systemd-nspawn, kapsayıcılarda FUSE'nin (Kullanıcı Alanındaki Dosya Sistemi) ayrıcalıksız kullanımına yönelik destek ekler. “--bind-user” seçeneği kullanıldığında kullanıcının SSH üzerinden erişim için gerekli olan SSH anahtarları konteynere iletilir.
- libsystemd, JSON formatını kullanan yeni bir programlama arayüzü "sd-json"un yanı sıra IPC Varlink kullanan bir "sd-varlink" arayüzünü ekledi.
- Önerilen temel çekirdek sürümü, 5.4'da oluşturulan 2019 sürümüne yükseltildi. Gelecek yıl eski çekirdekleri desteklemeyi bırakmayı ve 5.4 sürümünü desteklenen minimum temel sürüm olarak işaretlemeyi planlıyorlar.
- Cgroups v1 desteği kullanımdan kaldırıldı ve varsayılan olarak devre dışı bırakıldı (bunu etkinleştirmek için, sistemd ayarlarında etkinleştirmenin yanı sıra çekirdek komut satırında SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 belirtmeniz gerekir). Systemd 258'in bir sonraki sürümü, cgroups v1 ile ilgili kodu tamamen kaldırmayı planlıyor. Systemd sürüm 258'in ayrıca System V hizmet komut dosyalarına yönelik desteği kaldırması da planlanıyor.
Kaynak: opennet.ru
