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

بعد خمسة أشهر من التطوير، تم تقديم إصدار مدير النظام systemd 250. قدم الإصدار الجديد القدرة على تخزين بيانات الاعتماد في شكل مشفر، وتنفيذ التحقق من أقسام GPT المكتشفة تلقائيًا باستخدام التوقيع الرقمي، وتحسين المعلومات حول أسباب التأخير عند بدء تشغيل الخدمات، وإضافة خيارات لتقييد الوصول إلى الخدمة إلى أنظمة ملفات معينة وواجهات الشبكة، ويتم توفير الدعم لمراقبة تكامل الأقسام باستخدام وحدة dm-integrity، ويتم إضافة دعم التحديث التلقائي لـ sd-boot.

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

  • تمت إضافة دعم لبيانات الاعتماد المشفرة والمصادق عليها، والتي يمكن أن تكون مفيدة لتخزين المواد الحساسة بشكل آمن مثل مفاتيح SSL وكلمات مرور الوصول. يتم فك تشفير بيانات الاعتماد فقط عند الضرورة وفيما يتعلق بالتثبيت أو الجهاز المحلي. يتم تشفير البيانات تلقائيًا باستخدام خوارزميات التشفير المتماثل، والتي يمكن العثور على مفتاحها في نظام الملفات، أو في شريحة TPM2، أو باستخدام نظام مجمع. عند بدء الخدمة، يتم فك تشفير بيانات الاعتماد تلقائيًا وتصبح متاحة للخدمة في شكلها الطبيعي. للعمل مع بيانات الاعتماد المشفرة، تمت إضافة الأداة المساعدة "systemd-creds"، وتم اقتراح إعدادات LoadCredentialEncrypted وSetCredentialEncrypted للخدمات.
  • sd-stub، ملف EFI القابل للتنفيذ والذي يسمح لبرنامج EFI الثابت بتحميل نواة Linux، يدعم الآن تشغيل النواة باستخدام بروتوكول LINUX_EFI_INITRD_MEDIA_GUID EFI. تمت إضافة أيضًا إلى sd-stub القدرة على تجميع بيانات الاعتماد وملفات sysext في أرشيف cpio ونقل هذا الأرشيف إلى kernel مع initrd (يتم وضع ملفات إضافية في الدليل /.extra/). تسمح لك هذه الميزة باستخدام بيئة initrd غير القابلة للتغيير والتي يمكن التحقق منها، والتي تكملها sysexts وبيانات المصادقة المشفرة.
  • تم توسيع مواصفات الأقسام القابلة للاكتشاف بشكل كبير، مما يوفر أدوات لتحديد أقسام النظام وتركيبها وتنشيطها باستخدام GPT (جداول أقسام GUID). بالمقارنة مع الإصدارات السابقة، تدعم المواصفات الآن قسم الجذر وقسم /usr لمعظم البنيات، بما في ذلك الأنظمة الأساسية التي لا تستخدم UEFI.

    تضيف الأقسام القابلة للاكتشاف أيضًا دعمًا للأقسام التي يتم التحقق من سلامتها بواسطة وحدة dm-verity باستخدام التوقيعات الرقمية PKCS#7، مما يسهل إنشاء صور قرص مصادق عليها بالكامل. تم دمج دعم التحقق في العديد من الأدوات المساعدة التي تتعامل مع صور القرص، بما في ذلك systemd-nspawn وsystemd-sysext وsystemd-dissect وخدمات RootImage وsystemd-tmpfiles وsystemd-sysusers.

  • بالنسبة للوحدات التي تستغرق وقتًا طويلاً للبدء أو التوقف، بالإضافة إلى عرض شريط تقدم متحرك، من الممكن عرض معلومات الحالة التي تتيح لك فهم ما يحدث بالضبط مع الخدمة في الوقت الحالي وما هي الخدمة التي يستخدمها مدير النظام في انتظار الانتهاء حاليا.
  • تمت إضافة المعلمة DefaultOOMScoreAdjust إلى /etc/systemd/system.conf و/etc/systemd/user.conf، مما يسمح لك بضبط عتبة OOM-killer للذاكرة المنخفضة، والتي تنطبق على العمليات التي يبدأها systemd للنظام والمستخدمين. بشكل افتراضي، يكون وزن خدمات النظام أعلى من وزن خدمات المستخدم، أي. عندما لا تكون هناك ذاكرة كافية، يكون احتمال إنهاء خدمات المستخدم أعلى من احتمال إنهاء خدمات النظام.
  • تمت إضافة إعداد RestrictFileSystems، الذي يسمح لك بتقييد وصول الخدمات إلى أنواع معينة من أنظمة الملفات. لعرض أنواع أنظمة الملفات المتاحة، يمكنك استخدام الأمر "systemd-analyze filesystems". وقياسًا على ذلك، تم تنفيذ خيار RestrictNetworkInterfaces، والذي يسمح لك بتقييد الوصول إلى واجهات شبكة معينة. يعتمد التنفيذ على وحدة BPF LSM، التي تقيد وصول مجموعة من العمليات إلى كائنات kernel.
  • تمت إضافة ملف تكوين /etc/integritytab جديد وأداة مساعدة systemd-integritysetup التي تقوم بتكوين وحدة dm-integrity للتحكم في تكامل البيانات على مستوى القطاع، على سبيل المثال، لضمان ثبات البيانات المشفرة (التشفير المصادق، يضمن أن كتلة البيانات لديها لم يتم تعديلها بطريقة ملتوية). تنسيق الملف /etc/integritytab مشابه لملفات /etc/crypttab و/etc/veritytab، باستثناء أنه يتم استخدام dm-integrity بدلاً من dm-crypt وdm-verity.
  • تمت إضافة ملف وحدة جديد systemd-boot-update.service، عند تنشيطه وتثبيت أداة تحميل التشغيل sd-boot، سيقوم systemd تلقائيًا بتحديث إصدار أداة تحميل التشغيل sd-boot، مع الحفاظ على رمز أداة تحميل التشغيل دائمًا محدثًا. تم الآن إنشاء sd-boot نفسه افتراضيًا مع دعم آلية SBAT (الاستهداف المتقدم للتمهيد الآمن لـ UEFI)، والتي تحل المشكلات المتعلقة بإبطال الشهادة للتمهيد الآمن لـ UEFI. بالإضافة إلى ذلك، يوفر sd-boot القدرة على تحليل إعدادات تمهيد Microsoft Windows لإنشاء أسماء أقسام التمهيد مع Windows بشكل صحيح وعرض إصدار Windows.

    يوفر sd-boot أيضًا القدرة على تحديد نظام الألوان في وقت الإنشاء. أثناء عملية التمهيد، تمت إضافة دعم لتغيير دقة الشاشة بالضغط على المفتاح "r". تمت إضافة مفتاح التشغيل السريع "f" للانتقال إلى واجهة تكوين البرنامج الثابت. تمت إضافة وضع لتشغيل النظام تلقائيًا المطابق لعنصر القائمة المحدد أثناء التمهيد الأخير. تمت إضافة القدرة على تحميل برامج تشغيل EFI الموجودة في الدليل /EFI/systemd/drivers/ تلقائيًا في قسم ESP (قسم نظام EFI).

  • يتم تضمين ملف وحدة جديد Factory-reset.target، والذي تتم معالجته في systemd-logind بطريقة مشابهة لعمليات إعادة التشغيل وإيقاف التشغيل والتعليق والإسبات، ويتم استخدامه لإنشاء معالجات لإجراء إعادة ضبط المصنع.
  • تقوم العملية التي تم حلها بواسطة systemd الآن بإنشاء مقبس استماع إضافي على 127.0.0.54 بالإضافة إلى 127.0.0.53. تتم دائمًا إعادة توجيه الطلبات التي تصل إلى 127.0.0.54 إلى خادم DNS الرئيسي ولا تتم معالجتها محليًا.
  • تم توفير القدرة على إنشاء systemd-importd وsystemd-resolved باستخدام مكتبة OpenSSL بدلاً من libgcrypt.
  • تمت إضافة الدعم الأولي لبنية LoongArch المستخدمة في معالجات Loongson.
  • يوفر systemd-gpt-auto-generator القدرة على تكوين أقسام المبادلة المحددة من قبل النظام والمشفرة بواسطة النظام الفرعي LUKS2 تلقائيًا.
  • ينفذ كود تحليل صورة GPT المستخدم في systemd-nspawn وsystemd-dissect والأدوات المساعدة المشابهة القدرة على فك تشفير الصور للبنيات الأخرى، مما يسمح باستخدام systemd-nspawn لتشغيل الصور على محاكيات للبنيات الأخرى.
  • عند فحص صور القرص، يعرض systemd-dissect الآن معلومات حول الغرض من القسم، مثل مدى ملاءمته للتمهيد عبر UEFI أو التشغيل في حاوية.
  • تمت إضافة الحقل "SYSEXT_SCOPE" إلى ملفات system-extension.d/، مما يسمح لك بالإشارة إلى نطاق صورة النظام - "initrd" أو "system" أو "portable".
  • تمت إضافة حقل "PORTABLE_PREFIXES" إلى ملف إصدار نظام التشغيل، والذي يمكن استخدامه في الصور المحمولة لتحديد بادئات ملف الوحدة المدعومة.
  • يقدم systemd-logind إعدادات جديدة HandlePowerKeyLongPress وHandleRebootKeyLongPress وHandleSuspendKeyLongPress وHandleHibernateKeyLongPress، والتي يمكن استخدامها لتحديد ما يحدث عند الضغط باستمرار على مفاتيح معينة لأكثر من 5 ثوانٍ (على سبيل المثال، يمكن تهيئة الضغط على مفتاح Suspend بسرعة للانتقال إلى وضع الاستعداد) ، وإذا ضغطت عليه ستنام).
  • بالنسبة للوحدات، يتم تطبيق إعدادات StartupAllowedCPUs وStartupAllowedMemoryNodes، والتي تختلف عن الإعدادات المشابهة بدون بادئة بدء التشغيل حيث يتم تطبيقها فقط في مرحلة التمهيد وإيقاف التشغيل، مما يسمح لك بتعيين قيود أخرى على الموارد أثناء التمهيد.
  • تمت إضافة [Condition|Assert][Memory|CPU|IO]فحوصات الضغط التي تسمح بتخطي تنشيط الوحدة أو فشله إذا اكتشفت آلية PSI وجود حمل ثقيل على الذاكرة ووحدة المعالجة المركزية والإدخال/الإخراج في النظام.
  • تمت زيادة الحد الأقصى الافتراضي لقسم inode للقسم /dev من 64 كيلو بايت إلى 1 ميجا بايت، وللقسم /tmp من 400 كيلو بايت إلى 1 ميجا بايت.
  • تم اقتراح إعداد ExecSearchPath للخدمات، مما يجعل من الممكن تغيير مسار البحث عن الملفات القابلة للتنفيذ التي يتم تشغيلها من خلال إعدادات مثل ExecStart.
  • تمت إضافة إعداد RuntimeRandomizedExtraSec، الذي يسمح لك بإدخال انحرافات عشوائية في مهلة RuntimeMaxSec، مما يحد من وقت تنفيذ الوحدة.
  • تم توسيع بناء جملة إعدادات RuntimeDirectory وStateDirectory وCacheDirectory وLogsDirectory، حيث يمكنك الآن من خلال تحديد قيمة إضافية مفصولة بنقطتين، تنظيم إنشاء رابط رمزي إلى دليل معين لتنظيم الوصول عبر عدة مسارات.
  • بالنسبة للخدمات، يتم تقديم إعدادات TTYRows وTTYColumns لتعيين عدد الصفوف والأعمدة في جهاز TTY.
  • تمت إضافة إعداد ExitType، الذي يسمح لك بتغيير المنطق لتحديد نهاية الخدمة. افتراضيًا، يراقب systemd فقط انتهاء العملية الرئيسية، ولكن إذا تم تعيين ExitType=cgroup، فسينتظر مدير النظام حتى تكتمل العملية الأخيرة في مجموعة cgroup.
  • تم الآن أيضًا إنشاء تطبيق systemd-cryptsetup لدعم TPM2/FIDO2/PKCS11 كمكون إضافي لـ cryptsetup، مما يسمح باستخدام أمر cryptsetup العادي لفتح قسم مشفر.
  • يضيف معالج TPM2 في systemd-cryptsetup/systemd-cryptsetup دعمًا لمفاتيح RSA الأساسية بالإضافة إلى مفاتيح ECC لتحسين التوافق مع الشرائح غير التابعة لـ ECC.
  • تمت إضافة خيار مهلة الرمز المميز إلى /etc/crypttab، والذي يسمح لك بتحديد الحد الأقصى للوقت لانتظار اتصال الرمز المميز PKCS#11/FIDO2، وبعد ذلك سيُطلب منك إدخال كلمة المرور أو مفتاح الاسترداد.
  • يطبق systemd-timesyncd إعداد SaveIntervalSec، الذي يسمح لك بحفظ وقت النظام الحالي على القرص بشكل دوري، على سبيل المثال، لتنفيذ ساعة رتيبة على الأنظمة التي لا تحتوي على RTC.
  • تمت إضافة خيارات إلى الأداة المساعدة لتحليل systemd: "--image" و"--root" لفحص ملفات الوحدة داخل صورة معينة أو دليل جذر معين، و"--recursive-errors" لمراعاة الوحدات التابعة عند حدوث خطأ تم اكتشاف "--غير متصل" للتحقق من ملفات الوحدة المحفوظة على القرص بشكل منفصل، و"-json" للإخراج بتنسيق JSON، و"-quiet" لتعطيل الرسائل غير المهمة، و"—profile" للربط بملف تعريف محمول. تمت إضافة أيضًا أمر الفحص-elf لتحليل الملفات الأساسية بتنسيق ELF والقدرة على التحقق من ملفات الوحدة باسم وحدة معين، بغض النظر عما إذا كان هذا الاسم يطابق اسم الملف.
  • قام systemd-networkd بتوسيع الدعم لناقل شبكة منطقة التحكم (CAN). تمت إضافة إعدادات للتحكم في أوضاع CAN: Loopback وOneShot وPresumeAck وClassicDataLengthCode. تمت إضافة خيارات TimeQuantaNSec وPropagationSegment وPhaseBufferSegment1 وPhaseBufferSegment2 وSyncJumpWidth وDataTimeQuantaNSec وDataPropagationSegment وDataPhaseBufferSegment1 وDataPhaseBufferSegment2 وDataSyncJumpWidth إلى قسم [CAN] من ملفات .network للتحكم في مزامنة البت لواجهة CAN.
  • أضافت Systemd-networkd خيار التسمية لعميل DHCPv4، والذي يسمح لك بتكوين تسمية العنوان المستخدمة عند تكوين عناوين IPv4.
  • ينفذ systemd-udevd لـ "ethtool" دعمًا لقيم "max" الخاصة التي تحدد حجم المخزن المؤقت إلى الحد الأقصى للقيمة التي يدعمها الجهاز.
  • في ملفات .link الخاصة بـ systemd-udevd، يمكنك الآن تكوين معلمات متنوعة لدمج محولات الشبكة وتوصيل معالجات الأجهزة (إلغاء التحميل).
  • يقدم systemd-networkd ملفات .network جديدة بشكل افتراضي: 80-container-vb.network لتحديد جسور الشبكة التي تم إنشاؤها عند تشغيل systemd-nspawn مع خيارات "--network-bridge" أو "--network-zone"؛ 80-6rd-tunnel.network لتحديد الأنفاق التي يتم إنشاؤها تلقائيًا عند تلقي استجابة DHCP مع خيار 6RD.
  • أضافت Systemd-networkd وsystemd-udevd دعمًا لإعادة توجيه IP عبر واجهات InfiniBand، حيث تمت إضافة قسم "[IPoIB]" إلى ملفات systemd.netdev، وتم تنفيذ معالجة قيمة "ipoib" في النوع جلسة.
  • يوفر systemd-networkd تكوينًا تلقائيًا للمسار للعناوين المحددة في المعلمةallowedIPs، والتي يمكن تكوينها من خلال معلمات RouteTable وRouteMetric في القسمين [WireGuard] و[WireGuardPeer].
  • يوفر systemd-networkd إنشاءًا تلقائيًا لعناوين MAC غير المتغيرة لواجهات Batadv والجسر. لتعطيل هذا السلوك، يمكنك تحديد MACAddress=none في ملفات .netdev.
  • تمت إضافة إعداد WakeOnLanPassword إلى ملفات .link في قسم "[Link]" لتحديد كلمة المرور عند تشغيل WoL في وضع "SecureOn".
  • تمت إضافة إعدادات AutoRateIngress وCompensationMode وFlowIsolationMode وNAT وMPUBytes وPriorityQueueingPreset وFirewallMark وWash وSplitGSO وUseRawPacketSize إلى قسم "[CAKE]" لملفات .network لتحديد معلمات آلية إدارة قائمة انتظار الشبكة CAKE (التطبيقات العامة المحسنة) .
  • تمت إضافة إعداد IgnoreCarrierLoss إلى قسم "[الشبكة]" في ملفات .network، مما يسمح لك بتحديد مدة الانتظار قبل الاستجابة لفقدان إشارة الناقل.
  • قام Systemd-nspawn وhomectl وmachinectl وsystemd-run بتوسيع بناء جملة المعلمة "--setenv" - إذا تم تحديد اسم المتغير فقط (بدون "=")، فسيتم أخذ القيمة من متغير البيئة المقابل (لـ على سبيل المثال، عند تحديد "--setenv=FOO" سيتم أخذ القيمة من متغير البيئة $FOO واستخدامها في متغير البيئة الذي يحمل نفس الاسم المعين في الحاوية).
  • أضاف systemd-nspawn خيار "--suppress-sync" لتعطيل مكالمات النظام sync()/fsync()/fdatasync() عند إنشاء حاوية (مفيد عندما تكون السرعة أولوية ولا يكون الحفاظ على عناصر البناء في حالة الفشل) مهمة، حيث يمكن إعادة إنشائها في أي وقت).
  • تمت إضافة قاعدة بيانات hwdb جديدة، والتي تتضمن أنواعًا مختلفة من محللات الإشارة (أجهزة القياس المتعددة، ومحللات البروتوكول، وأجهزة قياس الذبذبات، وما إلى ذلك). تم توسيع المعلومات حول الكاميرات في hwdb بحقل يحتوي على معلومات حول نوع الكاميرا (العادية أو الأشعة تحت الحمراء) وموضع العدسة (الأمامية أو الخلفية).
  • تمكين إنشاء أسماء واجهات الشبكة غير المتغيرة لأجهزة netfront المستخدمة في Xen.
  • يتم الآن تحليل الملفات الأساسية بواسطة الأداة المساعدة systemd-coredump المستندة إلى مكتبات libdw/libelf في عملية منفصلة، ​​معزولة في بيئة وضع الحماية.
  • أضاف systemd-importd دعمًا لمتغيرات البيئة $SYSTEMD_IMPORT_BTRFS_SUBVOL، $SYSTEMD_IMPORT_BTRFS_QUOTA، $SYSTEMD_IMPORT_SYNC، والتي يمكنك من خلالها تعطيل إنشاء أقسام Btrfs الفرعية، بالإضافة إلى تكوين الحصص ومزامنة القرص.
  • في systemd-journald، في أنظمة الملفات التي تدعم وضع النسخ عند الكتابة، تتم إعادة تمكين وضع COW للمجلات المؤرشفة، مما يسمح بضغطها باستخدام Btrfs.
  • تقوم systemd-journald بتنفيذ إلغاء البيانات المكررة للحقول المتطابقة في رسالة واحدة، وهو ما يتم إجراؤه في المرحلة التي تسبق وضع الرسالة في المجلة.
  • تمت إضافة خيار "--show" إلى أمر إيقاف التشغيل لعرض إيقاف التشغيل المجدول.

المصدر: opennet.ru

إضافة تعليق