پس از پنج ماه توسعه، نسخه مدیریت سیستم systemd 250 ارائه شد. نسخه جدید توانایی ذخیره اعتبارنامه ها را به صورت رمزگذاری شده، اجرای تأیید صحت پارتیشن های GPT شناسایی شده به صورت خودکار با استفاده از امضای دیجیتال، بهبود اطلاعات در مورد علل تاخیر را معرفی کرد. شروع خدمات، و گزینه های اضافه شده برای محدود کردن دسترسی سرویس به سیستم های فایل خاص و رابط های شبکه، پشتیبانی برای نظارت بر یکپارچگی پارتیشن با استفاده از ماژول dm-integrity ارائه شده است، و پشتیبانی از به روز رسانی خودکار sd-boot اضافه شده است.
تغییرات اصلی:
- پشتیبانی از اعتبارنامه های رمزگذاری شده و احراز هویت شده اضافه شده است که می تواند برای ذخیره ایمن مواد حساس مانند کلیدهای SSL و گذرواژه های دسترسی مفید باشد. رمزگشایی اعتبارنامه ها تنها در صورت لزوم و در ارتباط با نصب یا تجهیزات محلی انجام می شود. داده ها به طور خودکار با استفاده از الگوریتم های رمزگذاری متقارن رمزگذاری می شوند، که کلید آن می تواند در سیستم فایل، در تراشه TPM2 یا با استفاده از یک طرح ترکیبی قرار گیرد. هنگامی که سرویس شروع می شود، اعتبارنامه ها به طور خودکار رمزگشایی می شوند و به شکل عادی در دسترس سرویس قرار می گیرند. برای کار با اعتبارنامه های رمزگذاری شده، ابزار "systemd-creds" اضافه شده است و تنظیمات LoadCredentialEncrypted و SetCredentialEncrypted برای سرویس ها پیشنهاد شده است.
- sd-stub، فایل اجرایی EFI که به سیستم عامل EFI اجازه می دهد تا هسته لینوکس را بارگیری کند، اکنون از بوت کردن هسته با استفاده از پروتکل LINUX_EFI_INITRD_MEDIA_GUID EFI پشتیبانی می کند. همچنین به sd-stub اضافه شده است که میتوانید اعتبارنامهها و فایلهای sysext را در یک بایگانی cpio بسته بندی کنید و این آرشیو را به همراه initrd به هسته انتقال دهید (فایلهای اضافی در فهرست /.extra/ قرار میگیرند). این ویژگی به شما امکان می دهد از یک محیط initrd غیرقابل تایید قابل تایید، تکمیل شده توسط sysexts و داده های احراز هویت رمزگذاری شده استفاده کنید.
- مشخصات پارتیشن های قابل کشف به طور قابل توجهی گسترش یافته است و ابزارهایی برای شناسایی، نصب و فعال کردن پارتیشن های سیستم با استفاده از GPT (GUID Partition Tables) ارائه می دهد. در مقایسه با نسخههای قبلی، این مشخصات اکنون از پارتیشن ریشه و پارتیشن usr/برای اکثر معماریها، از جمله پلتفرمهایی که از UEFI استفاده نمیکنند، پشتیبانی میکند.
Discoverable Partitions همچنین از پارتیشنهایی پشتیبانی میکند که یکپارچگی آنها توسط ماژول 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 را برای حافظه کم تنظیم کنید، قابل اعمال برای فرآیندهایی که سیستم برای سیستم و کاربران شروع میکند. به طور پیش فرض، وزن خدمات سیستم بیشتر از خدمات کاربر است، یعنی. هنگامی که حافظه کافی وجود ندارد، احتمال خاتمه خدمات کاربر بیشتر از خدمات سیستمی است.
- تنظیمات RestrictFileSystems را اضافه کرد که به شما امکان می دهد دسترسی سرویس ها را به انواع خاصی از سیستم های فایل محدود کنید. برای مشاهده انواع فایل سیستم های موجود، می توانید از دستور “systemd-analyze filesystems” استفاده کنید. به طور مشابه، گزینه RestrictNetworkInterfaces پیاده سازی شده است که به شما امکان می دهد دسترسی به رابط های شبکه خاصی را محدود کنید. پیاده سازی بر اساس ماژول BPF LSM است که دسترسی گروهی از فرآیندها را به اشیاء هسته محدود می کند.
- یک فایل پیکربندی /etc/integritytab جدید و ابزار systemd-integritysetup اضافه شد که ماژول dm-integrity را برای کنترل یکپارچگی داده در سطح بخش پیکربندی می کند، به عنوان مثال، برای تضمین تغییرناپذیری داده های رمزگذاری شده (Authenticated Encryption، تضمین می کند که یک بلوک داده دارای به صورت دوربرگردان اصلاح نشده است). فرمت فایل /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 Secure Boot Advanced Targeting) ساخته شده است که مشکلات مربوط به لغو گواهی را برای UEFI Secure Boot حل میکند. علاوه بر این، sd-boot امکان تجزیه تنظیمات بوت مایکروسافت ویندوز را برای تولید صحیح نام پارتیشن های بوت با ویندوز و نمایش نسخه ویندوز فراهم می کند.
sd-boot همچنین توانایی تعریف یک طرح رنگ در زمان ساخت را فراهم می کند. در طول فرآیند بوت، پشتیبانی برای تغییر وضوح صفحه با فشار دادن کلید "r" اضافه شد. کلید میانبر "f" برای رفتن به رابط پیکربندی سیستم عامل اضافه شده است. یک حالت برای بوت خودکار سیستم مربوط به آیتم منو انتخاب شده در آخرین بوت اضافه شده است. قابلیت بارگیری خودکار درایورهای EFI واقع در فهرست /EFI/systemd/drivers/ در بخش ESP (EFI System Partition) اضافه شده است.
- یک فایل واحد جدید factory-reset.target گنجانده شده است که در systemd-logind به روشی مشابه عملیات راهاندازی مجدد، خاموش کردن، تعلیق و خواب زمستانی پردازش میشود و برای ایجاد کنترلکنندههایی برای انجام بازنشانی کارخانه استفاده میشود.
- روند حل سیستمی اکنون یک سوکت گوش دادن اضافی در 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" به فایل os-release اضافه شده است که می تواند در تصاویر قابل حمل برای تعیین پیشوندهای فایل واحد پشتیبانی شده استفاده شود.
- systemd-logind تنظیمات جدیدی را معرفی میکند HandlePowerKeyLongPress، HandleRebootKeyLongPress، HandleSuspendKeyLongPress و HandleHibernateKeyLongPress، که میتواند برای تعیین اینکه چه اتفاقی میافتد زمانی که کلیدهای خاصی برای بیش از 5 ثانیه نگه داشته میشوند چه اتفاقی میافتد (به عنوان مثال، حالت آماده به کار را میتوان به سرعت فشار داد. ، و هنگامی که نگه دارید، به خواب می رود) .
- برای واحدها، تنظیمات StartupAllowedCPUs و StartupAllowedMemoryNodes اجرا شدهاند، که با تنظیمات مشابه بدون پیشوند Startup تفاوت دارند زیرا فقط در مرحله بوت و خاموش شدن اعمال میشوند، که به شما امکان میدهد محدودیتهای منابع دیگر را در طول بوت تنظیم کنید.
- اضافه شد [وضعیت|اظهار][حافظه|CPU|IO]بررسی فشار که اجازه میدهد تا فعالسازی واحد نادیده گرفته شود یا اگر مکانیزم PSI بار سنگینی را بر روی حافظه، CPU، و I/O در سیستم تشخیص دهد، انجام نمیشود.
- حد پیشفرض حداکثر inode برای پارتیشن /dev از 64k به 1M و برای پارتیشن /tmp از 400k به 1M افزایش یافته است.
- یک تنظیم 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 اضافه میکند.
- گزینه token-timeout به /etc/crypttab اضافه شده است که به شما امکان می دهد حداکثر زمان انتظار برای اتصال توکن PKCS#11/FIDO2 را تعیین کنید، پس از آن از شما خواسته می شود رمز عبور یا کلید بازیابی را وارد کنید.
- systemd-timesyncd تنظیمات SaveIntervalSec را پیادهسازی میکند، که به شما امکان میدهد به طور دورهای زمان فعلی سیستم را روی دیسک ذخیره کنید، برای مثال، برای پیادهسازی یک ساعت یکنواخت در سیستمهای بدون RTC.
- گزینههایی به ابزار systemd-analyze اضافه شدهاند: «--image» و «--root» برای بررسی فایلهای واحد در داخل یک تصویر داده شده یا فهرست ریشه، «--recursive-errors» برای در نظر گرفتن واحدهای وابسته هنگام بروز خطا. شناسایی میشود، «--آفلاین» برای بررسی جداگانه فایلهای واحد ذخیره شده در دیسک، «—json» برای خروجی با فرمت JSON، «—quiet» برای غیرفعال کردن پیامهای غیر مهم، «—profile» برای اتصال به یک نمایه قابل حمل. همچنین دستور inspect-elf برای تجزیه فایلهای اصلی در قالب ELF و امکان بررسی فایلهای واحد با نام واحد داده شده، بدون توجه به اینکه این نام با نام فایل مطابقت دارد یا خیر، اضافه شده است.
- systemd-networkd پشتیبانی از گذرگاه Controller Area Network (CAN) را گسترش داده است. تنظیمات اضافه شده برای کنترل حالت های CAN: Loopback، OneShot، PresumeAck و ClassicDataLengthCode. افزوده شد TimeQuantaNSec، PropagationSegment، PhaseBufferSegment1، PhaseBufferSegment2، SyncJumpWidth، DataTimeQuantaNSec، DataPropagationSegment، DataPhaseBufferSegment1، DataPhaseBufferSegment2 و گزینه های DataSyncJump of theCid رابط AN.
- Systemd-networkd یک گزینه Label را برای سرویس گیرنده DHCPv4 اضافه کرده است که به شما امکان می دهد برچسب آدرس مورد استفاده در هنگام پیکربندی آدرس های IPv4 را پیکربندی کنید.
- systemd-udevd برای "ethtool" از مقادیر ویژه "max" پشتیبانی می کند که اندازه بافر را به حداکثر مقدار پشتیبانی شده توسط سخت افزار تنظیم می کند.
- در فایلهای .link برای systemd-udevd، اکنون میتوانید پارامترهای مختلفی را برای ترکیب آداپتورهای شبکه و اتصال هندلرهای سختافزار (offload) پیکربندی کنید.
- 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" در Kind پیاده سازی شده است. تنظیمات.
- systemd-networkd پیکربندی مسیر خودکار را برای آدرسهای مشخصشده در پارامتر AllowedIPs فراهم میکند که میتواند از طریق پارامترهای RouteTable و RouteMetric در بخشهای [WireGuard] و [WireGuardPeer] پیکربندی شود.
- systemd-networkd تولید خودکار آدرسهای MAC بدون تغییر را برای رابطهای batadv و bridge فراهم میکند. برای غیرفعال کردن این رفتار، میتوانید MACAddress=none را در فایلهای netdev. مشخص کنید.
- یک تنظیم WakeOnLanPassword به فایلهای .link در بخش «[Link]» اضافه شده است تا رمز عبور زمانی که WoL در حالت «SecureOn» اجرا میشود، تعیین شود.
- تنظیمات AutoRateIngress، CompensationMode، FlowIsolationMode، NAT، MPUBytes، PriorityQueueingPreset، FirewallMark، Wash، SplitGSO و UseRawPacketSize را به بخش «[CAKE]» فایلهای شبکه برای تعریف پارامترهای مکانیزم شبکه CAKE (Common Encue) اضافه کرد. .
- یک تنظیم IgnoreCarrierLoss را به بخش «[شبکه]» فایلهای شبکه اضافه کرد که به شما این امکان را میدهد تا تعیین کنید قبل از واکنش به از دست دادن سیگنال حامل چقدر منتظر بمانید.
- 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 اکنون در یک فرآیند جداگانه، جدا شده در یک محیط sandbox انجام میشود.
- systemd-importd پشتیبانی از متغیرهای محیطی $SYSTEMD_IMPORT_BTRFS_SUBVOL، $SYSTEMD_IMPORT_BTRFS_QUOTA، $SYSTEMD_IMPORT_SYNC را اضافه کرده است، که با آن می توانید تولید پارتیشن های فرعی Btrfs و همچنین همگام سازی و پیکربندی سهمیه بندی را غیرفعال کنید.
- در systemd-journald، در سیستمهای فایلی که از حالت کپی در نوشتن پشتیبانی میکنند، حالت COW برای مجلات بایگانیشده دوباره فعال میشود و به آنها اجازه میدهد با استفاده از Btrfs فشرده شوند.
- systemd-journald کپی کردن فیلدهای یکسان را در یک پیام واحد پیاده سازی می کند که در مرحله قبل از قرار دادن پیام در مجله انجام می شود.
- اضافه شدن گزینه "--show" به دستور shutdown برای نمایش خاموش شدن برنامه ریزی شده.
منبع: opennet.ru