إصدار مدير نظام systemd 251

بعد خمسة أشهر من التطوير، تم تقديم إصدار مدير النظام systemd 251.

التغييرات الرئيسية:

  • تم زيادة متطلبات النظام. تمت زيادة الحد الأدنى لإصدار Linux kernel المدعوم من 3.13 إلى 4.15. مطلوب مؤقت CLOCK_BOOTTIME للتشغيل. للبناء، تحتاج إلى مترجم يدعم معيار C11 وامتدادات GNU (يستمر استخدام معيار C89 لملفات الرأس).
  • تمت إضافة أداة تجريبية systemd-sysupdate لاكتشاف التحديثات وتنزيلها وتثبيتها تلقائيًا باستخدام آلية ذرية لاستبدال الأقسام أو الملفات أو الدلائل (يتم استخدام قسمين/ملفات/أدلة مستقلة، يحتوي أحدهما على مورد العمل الحالي، بينما يحتوي الآخر على عمليات التثبيت التحديث التالي، وبعد ذلك يتم تبديل الأقسام/الملفات/الأدلة).
  • تقديم مكتبة مشتركة داخلية جديدة libsystemd-core- .so، والذي تم تثبيته في الدليل /usr/lib/systemd/system ويتوافق مع مكتبة libsystemd-shared- الموجودة .لذا. استخدام المكتبة المشتركة libsystemd-core .so يسمح لك بتقليل حجم التثبيت الإجمالي عن طريق إعادة استخدام الكود الثنائي. يمكن تحديد رقم الإصدار عبر المعلمة "shared-lib-tag" في نظام بناء meson ويسمح للتوزيعات بشحن إصدارات متعددة من هذه المكتبات في نفس الوقت.
  • تم تنفيذ نقل متغيرات البيئة $MONITOR_SERVICE_RESULT و$MONITOR_EXIT_CODE و$MONITOR_EXIT_STATUS و$MONITOR_INVOCATION_ID و$MONITOR_UNIT من المعلومات حول الوحدة المراقبة إلى معالجات OnFailure/OnSuccess.
  • بالنسبة للوحدات، تم تنفيذ إعداد ExtensionDirectories، والذي يمكن استخدامه لتنظيم تحميل مكونات System Extension من الدلائل العادية، بدلاً من صور القرص. يتم تراكب محتويات دليل ملحق النظام باستخدام OverlayFS ويتم استخدامها لتوسيع التسلسل الهرمي للدلائل /usr/ و/opt/، وإضافة ملفات إضافية في وقت التشغيل، حتى لو تم تحميل الدلائل المذكورة للقراءة فقط. أضاف الأمر "portablectl Attach --extension=" أيضًا دعمًا لتحديد الدليل.
  • بالنسبة للوحدات التي تم إنهاؤها قسريًا بواسطة معالج systemd-oomd بسبب نقص الذاكرة في النظام، يتم إرسال السمة "oom-kill" وينعكس عدد عمليات الإنهاء القسري في السمة "user.oomd_ooms".
  • بالنسبة للوحدات، تمت إضافة محددات مسار جديدة %y/%Y، مما يعكس المسار الطبيعي للوحدة (مع توسيع الروابط الرمزية). تمت إضافة أيضًا محددات %q لاستبدال قيمة PRETTY_HOSTNAME و%d لاستبدال CREDENTIALS_DIRECTORY.
  • في الخدمات غير المميزة التي يطلقها مستخدم عادي باستخدام علامة "--user"، يتم إجراء تغييرات على إعدادات RootDirectory، MountAPIVFS، ExtensionDirectories، *Capabilities*، ProtectHome، *Directory، TemporaryFileSystem، PrivateTmp، PrivateDevices، PrivateNetwork، NetworkNamespacePath، PrivateIPC، IPCNamespacePath و PrivateUsers و ProtectClock مسموح بهم و ProtectKernelTunables و ProtectKernelModules و ProtectKernelLogs و MountFlags. تتوفر هذه الميزة فقط عند تمكين مساحات أسماء المستخدمين في النظام.
  • يسمح إعداد LoadCredential بتحديد اسم الدليل كوسيطة، وفي هذه الحالة تتم محاولة تحميل بيانات الاعتماد من كافة الملفات الموجودة في الدليل المحدد.
  • في systemctl، في المعلمة "—timestamp"، أصبح من الممكن تحديد علامة "unix" لعرض الوقت بالتنسيق التاريخي (عدد الثواني منذ 1 يناير 1970).
  • تطبق "حالة systemctl" علامة "النواة القديمة"، والتي تظهر إذا كان للنواة المحملة في الجلسة رقم إصدار أقدم من النواة الأساسية المتوفرة في النظام. تمت إضافة علامة "unmerged-usr" أيضًا لتحديد أن محتويات المجلدين /bin/ و/sbin/ لا يتم تشكيلها من خلال الارتباطات الرمزية إلى /usr.
  • بالنسبة للمولدات التي يتم تشغيلها بواسطة عملية PID 1، يتم توفير متغيرات البيئة الجديدة: $SYSTEMD_SCOPE (البدء من نظام أو خدمة مستخدم)، $SYSTEMD_IN_INITRD (البدء من بيئة initrd أو المضيف)، $SYSTEMD_FIRST_BOOT (مؤشر التمهيد الأول)، $SYSTEMD_VIRTUALIZATION ( وجود المحاكاة الافتراضية أو الإطلاق في حاوية ) و$SYSTEMD_ARCHITECTURE (الهندسة المعمارية التي تم بناء النواة من أجلها).
  • يطبق معالج PID 1 القدرة على تحميل معلمات بيانات اعتماد النظام من واجهة QEMU fw_cfg أو عن طريق تحديد معلمة systemd.set_credential في سطر أوامر kernel. يوفر التوجيه LoadCredential بحثًا تلقائيًا عن بيانات الاعتماد في المجلدات /etc/credstore/ و/run/credstore/ و/usr/lib/credstore/ إذا تم تحديد مسار نسبي كوسيطة. ينطبق سلوك مماثل على التوجيه LoadCredentialEncrypted، الذي يتحقق أيضًا من الدلائل /etc/credstore.encrypted/ و/run/credstore.encrypted/ و/usr/lib/credstore.encrypted/.
  • تم تثبيت القدرة على التصدير بتنسيق JSON في systemd-journald. أصبح الأمران "journalctl --list-boots" و"bootctl list" يدعمان الآن الإخراج بتنسيق JSON (علامة "--json").
  • تمت إضافة ملفات جديدة مع قواعد بيانات hwdb إلى udev، والتي تحتوي على معلومات حول الأجهزة المحمولة (أجهزة المساعد الرقمي الشخصي، والآلات الحاسبة، وما إلى ذلك) والأجهزة المستخدمة لإنشاء الصوت والفيديو (وحدات تحكم DJ ولوحات المفاتيح).
  • تمت إضافة خيارات جديدة "--prioritized-subsystem" إلى udevadm لتعيين أولوية الأنظمة التالية (المستخدمة في systemd-udev-trigger.service لمعالجة أجهزة الحظر وTPMs أولاً)، "-type=all"، "-initialized" -match" و"--initialized-nomatch" لتحديد الأجهزة المهيأة أو غير المهيأة، و"udevadm info -tree" لإظهار شجرة من الكائنات في التسلسل الهرمي /sys/. يضيف udevadm أيضًا أوامر "انتظار" و"قفل" جديدة لانتظار ظهور إدخال الجهاز في قاعدة البيانات وقفل جهاز الكتلة أثناء تنسيق جدول الأقسام أو كتابته.
  • تمت إضافة مجموعة جديدة من الروابط الرمزية للأجهزة /dev/disk/by-diskseq/ لتحديد الأجهزة المحظورة عن طريق الرقم التسلسلي ("diskseq").
  • تمت إضافة دعم لمعلمة "البرنامج الثابت" إلى ملفات .link في قسم [المطابقة] لمطابقة الجهاز سطرًا مع وصف البرنامج الثابت.
  • في systemd-networkd، بالنسبة لمسارات البث الأحادي التي تم تكوينها من خلال قسم [Route]، تم تغيير قيمة النطاق إلى "link" افتراضيًا لمطابقة سلوك الأمر "ip Route". تمت إضافة المعلمة Isolated=true|false إلى القسم [Bridge] لتكوين السمة التي تحمل الاسم نفسه لجسور الشبكة في kernel. في القسم [النفق]، تمت إضافة المعلمة الخارجية لتعيين نوع النفق إلى خارجي (وضع جمع البيانات التعريفية). في القسم [DHCPServer]، تمت إضافة معلمات BootServerName وBootServerAddress وBootFilename لتكوين عنوان الخادم واسم الخادم واسم ملف التمهيد الذي يرسله خادم DHCP عند التشغيل في وضع PXE. في القسم [الشبكة]، تمت إزالة معلمة L2TP، وبدلاً من ذلك في ملفات .netdev يمكنك استخدام الإعداد المحلي الجديد فيما يتعلق بواجهة L2TP.
  • تمت إضافة وحدة جديدة "systemd-networkd-wait-online@" .service"، والتي يمكن استخدامها لانتظار ظهور واجهة شبكة معينة.
  • أصبح من الممكن الآن استخدام ملفات .netdev لإنشاء أجهزة WLAN افتراضية، والتي يمكن تهيئتها في قسم [WLAN].
  • في ملفات .link/.network، يطبق قسم [Match] معلمة Kind للمطابقة حسب نوع الجهاز ("bond"، "bridge"، "gre"، "tun"، "veth").
  • تم إطلاق Systemd-resolved في مرحلة تمهيد سابقة، بما في ذلك الإطلاق من initrd إذا كان Systemd-resolved موجودًا في صورة initrd.
  • يضيف systemd-cryptenroll خيار --fido2-credential-algorithm لتحديد خوارزمية تشفير بيانات الاعتماد وخيار --tpm2-with-pin للتحكم في إدخال رقم التعريف الشخصي عند إلغاء قفل قسم باستخدام TPM. تمت إضافة خيار tpm2-pin مشابه إلى /etc/crypttab. عند فتح قفل الأجهزة عبر TPM، يتم تشفير الإعدادات للحماية من اعتراض مفاتيح التشفير.
  • يضيف systemd-timesyncd واجهة برمجة التطبيقات D-Bus لاسترداد المعلومات ديناميكيًا من خادم NTP عبر IPC.
  • لتحديد الحاجة إلى إخراج الألوان، تقوم كافة الأوامر بتنفيذ فحص لمتغير البيئة COLORTERM بالإضافة إلى NO_COLOR وSYSTEMD_COLORS وTERM الذي تم تحديده مسبقًا.
  • يطبق نظام بناء Meson خيار install_tag للتجميع الانتقائي وتثبيت المكونات الضرورية: pam، nss، devel (pkg-config)، systemd-boot، libsystemd، libudev. تمت إضافة الضغط الافتراضي لخيار البناء لتحديد خوارزمية الضغط لـ systemd-journald وsystemd-coredump.
  • تمت إضافة الإعداد التجريبي "reboot-for-bitlocker" إلى sd-boot في Loader.conf لتشغيل Microsoft Windows باستخدام BitLocker TPM.

المصدر: opennet.ru

إضافة تعليق