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

بعد ثلاثة أشهر من التطوير المقدمة الافراج عن مدير النظام systemd 244.

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

  • تمت إضافة دعم لوحدة التحكم في موارد وحدة المعالجة المركزية استنادًا إلى cgroups v2، والتي توفر آلية لعمليات الربط بوحدات معالجة مركزية محددة (إعداد "AllowedCPUs") وعقد ذاكرة NUMA (إعداد "AllowedMemoryNodes")؛
  • تمت إضافة دعم لتحميل الإعدادات من متغير SystemdOptions EFI لتكوين systemd، والذي يسمح لك بتخصيص سلوك systemd في المواقف التي يكون فيها تغيير خيارات سطر أوامر kernel مشكلة ويتم قراءة التكوين من القرص بعد فوات الأوان (على سبيل المثال، عندما تحتاج إلى تكوين الخيارات) المتعلقة بالتسلسل الهرمي لمجموعة c). لتعيين متغير في EFI، يمكنك استخدام الأمر "bootctl systemd-efi-options"؛
  • تمت إضافة دعم للوحدات لتحميل الإعدادات من أدلة "{unit_type}.d/" المرتبطة بأنواع الوحدات (على سبيل المثال، "service.d/")، والتي يمكن استخدامها لإضافة إعدادات تغطي جميع ملفات الوحدة من نوع معين في مرة واحدة؛
  • بالنسبة لوحدات الخدمة، تمت إضافة وضع عزل Sandbox جديد ProtectKernelLogs، والذي يسمح لك برفض وصول البرنامج إلى المخزن المؤقت لسجل kernel، والذي يمكن الوصول إليه من خلال استدعاء نظام syslog (يجب عدم الخلط بينه وبين واجهة برمجة التطبيقات التي تحمل نفس الاسم المتوفرة في libc). إذا تم تنشيط الوضع، فسيتم حظر وصول التطبيق إلى /proc/kmsg و/dev/kmsg وCAP_SYSLOG؛
  • بالنسبة للوحدات، تم اقتراح إعداد RestartKillSignal، والذي يسمح لك بإعادة تحديد عدد الإشارة المستخدمة لإنهاء العملية أثناء إعادة تشغيل المهمة (يمكنك تغيير سلوك إيقاف العملية في مرحلة التحضير لإعادة التشغيل)؛
  • تم تكييف الأمر "systemctl clean" للاستخدام مع وحدات المقبس والتركيب والمبادلة؛
  • في المرحلة المبكرة من التحميل، يتم تعطيل القيود المفروضة على كثافة إخراج رسائل kernel عبر استدعاء printk، مما يسمح بتراكم سجلات أكثر اكتمالاً حول تقدم التحميل في مرحلة لا يكون فيها مخزن السجل متصلاً بعد (السجل متراكمة في المخزن المؤقت الدائري للنواة). تعيين حدود printk من سطر أوامر kernel له الأولوية ويسمح لك بتجاوز سلوك systemd. تستخدم برامج Systemd التي تقوم بإخراج السجلات مباشرة إلى /dev/kmsg (يتم ذلك فقط في وقت مبكر من مرحلة التمهيد) قيودًا داخلية منفصلة للحماية من انسداد المخزن المؤقت؛
  • تمت إضافة الأمر 'stop --job-mode=triggering' إلى الأداة المساعدة systemctl، مما يسمح لك بإيقاف كل من الوحدة المحددة في سطر الأوامر وجميع الوحدات التي يمكنها استدعائها؛
  • تتضمن معلومات حالة الوحدة الآن معلومات حول الوحدات التي يتم الاتصال بها والوحدات التي يتم الاتصال بها؛
  • من الممكن استخدام إعداد "RuntimeMaxSec" في وحدات النطاق (سابقًا كان يستخدم فقط في وحدات الخدمة). على سبيل المثال، يمكن الآن استخدام "RuntimeMaxSec" لتحديد وقت جلسات PAM من خلال إنشاء وحدة النطاق
    لحساب المستخدم. يمكن أيضًا تعيين الحد الزمني عبر خيار systemd.runtime_max_sec في معلمات وحدة pam_systemd PAM؛

  • تمت إضافة مجموعة جديدة من استدعاءات النظام "@pkey"، عند تحديد الحاويات والخدمات، مما يسهل إدراج مكالمات النظام المتعلقة بحماية الذاكرة في القائمة البيضاء؛
  • تمت إضافة علامة "w+" إلى ملفات systemd-tmpfiles للكتابة في وضع إلحاق الملف؛
  • تمت إضافة معلومات إلى مخرجات تحليل systemd حول ما إذا كان تكوين ذاكرة kernel يطابق إعدادات systemd (على سبيل المثال، إذا قام بعض برامج الطرف الثالث بتغيير معلمات kernel)؛
  • تمت إضافة خيار "--base-time" إلى تحليل النظام، عند تحديده، يتم حساب بيانات التقويم بالنسبة إلى الوقت المحدد في هذا الخيار، وليس بالنسبة إلى وقت النظام الحالي؛
  • "journalctl —update-catalog" يضمن الاتساق في تسلسل العناصر في الإخراج (مفيد لتنظيم البنيات القابلة للتكرار)؛
  • تمت إضافة القدرة على تحديد قيمة افتراضية لإعداد "WatchdogSec" المستخدم في خدمات systemd. في وقت الترجمة، يمكن تحديد القيمة الأساسية عبر خيار "-Dservice-watchdog" (إذا تم تعيينها على فارغة، فسيتم تعطيل المراقبة)؛
  • تمت إضافة خيار البناء "-Duser-path" لتجاوز قيمة PATH $؛
  • تمت إضافة خيار "-u" ("--uuid") إلى systemd-id128 لإخراج معرفات 128 بت في UUID (التمثيل الأساسي لـ UUID)؛
  • يتطلب البناء الآن الإصدار 2.0.1 من libcryptsetup على الأقل.

التغييرات المتعلقة بإعدادات الشبكة:

  • أضاف Systemd-networkd دعمًا لإعادة تكوين رابط سريعًا، حيث تمت إضافة أوامر "إعادة التحميل" و"إعادة تكوين الجهاز..." إلى Networkctl لإعادة تحميل الإعدادات وإعادة تكوين الأجهزة؛
  • توقف systemd-networkd عن إنشاء مسارات افتراضية لارتباطات IPv4 المحلية ذات عناوين الإنترانت 169.254.0.0/16 (الارتباط المحلي). في السابق، كان إنشاء المسارات الافتراضية لهذه الارتباطات تلقائيًا يؤدي إلى سلوك غير متوقع ومشكلات في التوجيه في بعض الحالات. لإرجاع السلوك القديم، استخدم الإعداد "DefaultRouteOnDevice=yes". وبالمثل، يتم إيقاف تعيين عناوين IPv6 المحلية إذا لم يتم تمكين توجيه IPv6 المحلي للارتباط؛
  • في systemd-networkd، عند الاتصال بالشبكات اللاسلكية في الوضع المخصص، يتم تنفيذ التكوين الافتراضي باستخدام عنونة الارتباط المحلي (link-local)؛
  • تمت إضافة معلمات RxBufferSiz وTxBufferSize لتكوين حجم المخازن المؤقتة للاستقبال والإرسال لواجهة الشبكة؛
  • تنفذ systemd-networkd الإعلان عن مسارات IPv6 الإضافية، والتي يتم تنظيمها من خلال خيارات Route وLifetimeSec في قسم "[IPv6RoutePrefix]"؛
  • أضافت systemd-networkd القدرة على تكوين مسارات "الخطوة التالية" باستخدام خيارات "البوابة" و"المعرف" في قسم "[NextHop]"؛
  • يوفر systemd-networkd وnetworkctl لـ DHCP تحديثًا فوريًا لربطات (عقود الإيجار) لعنوان IP، والتي يتم تنفيذها بواسطة الأمر 'networkctl Renew'؛
  • يضمن systemd-networkd إعادة ضبط تكوين DHCP عند إعادة التشغيل (استخدم خيار KeepConfiguration لحفظ الإعدادات). تم تغيير القيمة الافتراضية لإعداد SendRelease إلى "صحيح"؛
  • يضمن عميل DHCPv4 استخدام قيمة الخيار OPTION_INFORMATION_REFRESH_TIME التي يرسلها الخادم. لطلب خيارات محددة من الخادم، يتم اقتراح معلمة "RequestOptions"، ولإرسال الخيارات إلى الخادم - "SendOption". لتكوين نوع خدمة IP بواسطة عميل DHCP، تمت إضافة المعلمة "IPServiceType"؛
  • لاستبدال قائمة خوادم SIP (بروتوكول بدء الجلسة) بخوادم DHCPv4، تمت إضافة معلمات "EmitSIP" و"SIP". من جانب العميل، يمكن تمكين تلقي معلمات SIP من الخادم باستخدام الإعداد "UseSIP=yes"؛
  • تمت إضافة معلمة "PrefixDelegationHint" إلى عميل DHCPv6 لطلب بادئة عنوان؛
  • توفر ملفات .network الدعم لتعيين الشبكات اللاسلكية بواسطة SSID وBSSID، على سبيل المثال للربط باسم نقطة الوصول وعنوان MAC. يتم عرض قيم SSID وBSSID في مخرجات Networkctl للواجهات اللاسلكية. بالإضافة إلى ذلك، تمت إضافة القدرة على المقارنة حسب نوع الشبكة اللاسلكية (معلمة WLANInterfaceType)؛
  • أضافت systemd-networkd القدرة على تكوين أنظمة الانتظار للتحكم في حركة المرور باستخدام معلمات الأصل الجديدة،
    NetworkEmulatorDelaySec، NetworkEmulatorDelayJitterSec،
    NetworkEmulatorPacketLimit وNetworkEmulatorLossRate،
    NetworkEmulatorDuplicateRate في قسم "[TrafficControlQueueingDiscipline]"؛

  • يوفر systemd-resolved التحقق من عناوين IP في الشهادات عند الإنشاء باستخدام GnuTLS.

التغييرات المتعلقة بـ udev:

  • قام Systemd-udevd بإزالة المهلة البالغة 30 ثانية لإجبار المعالجات المتوقفة على الإنهاء. ينتظر Systemd-udevd الآن اكتمال المعالجات التي لم تكن 30 ثانية كافية لها لإكمال العمليات بشكل طبيعي في عمليات التثبيت الكبيرة (على سبيل المثال، يمكن أن تؤدي المهلة إلى مقاطعة تهيئة برنامج التشغيل أثناء عملية تبديل القسم المثبت لنظام الملفات الجذر). عند استخدام systemd، يمكن ضبط المهلة التي سينتظرها systemd-udevd قبل الخروج عبر إعداد TimeoutStopSec في systemd-udevd.service. عند التشغيل بدون systemd، يتم التحكم في المهلة بواسطة المعلمة udev.event_timeout؛
  • تمت إضافة برنامج fido_id لـ udev، والذي يحدد الرموز المميزة لـ FIDO CTAP1
    ("U2F")/CTAP2 بناءً على بيانات حول استخدامها السابق ويعرض متغيرات البيئة الضرورية (يسمح لك البرنامج بالاستغناء عن القوائم البيضاء الخارجية لجميع الرموز المميزة المعروفة التي تم استخدامها مسبقًا)؛

  • تم تنفيذ الإنشاء التلقائي لقواعد التعليق التلقائي لـ udev للأجهزة من القائمة البيضاء المستوردة من نظام التشغيل Chromium (يسمح لك التغيير بتوسيع استخدام أوضاع توفير الطاقة للأجهزة الإضافية)؛
  • تمت إضافة إعداد "CONST{key}=value" جديد إلى udev للسماح بتعيين قيم ثابتة للنظام مباشرةً دون تشغيل معالجات فحص منفصلة. حاليًا يتم دعم المفاتيح "arch" و"virt" فقط؛
  • تمكين فتح القرص المضغوط في الوضع غير الحصري عند إجراء عملية طلب للأوضاع المدعومة (يحل التغيير مشاكل البرامج التي تصل إلى القرص المضغوط ويقلل من خطر انقطاع برامج كتابة القرص التي لا تستخدم وضع الوصول الحصري).

المصدر: opennet.ru

إضافة تعليق