پس از دو ماه توسعه
تغییرات اصلی:
- systemd-networkd از تونل های L2TP پشتیبانی می کند.
- sd-boot و bootctl از پارتیشنهای XBOOTLDR (Extended Boot Loader) که برای نصب بر روی /boot طراحی شدهاند، علاوه بر پارتیشنهای ESP که روی /efi یا /boot/efi نصب شدهاند، پشتیبانی میکنند. هسته ها، تنظیمات، تصاویر initrd و EFI اکنون می توانند از هر دو پارتیشن ESP و XBOOTLDR بوت شوند. این تغییر به شما امکان می دهد از بوت لودر sd-boot در سناریوهای محافظه کارانه تر استفاده کنید، زمانی که خود بوت لودر در ESP قرار دارد و هسته های بارگذاری شده و ابرداده های مرتبط در یک بخش جداگانه قرار می گیرند.
- قابلیت بوت شدن با گزینه “systemd.volatile=overlay” به هسته اضافه شده است، که به شما امکان می دهد پارتیشن ریشه را در overlayf ها قرار دهید و کار را در بالای تصویر فقط خواندنی دایرکتوری ریشه با تغییرات نوشته شده در یک سازماندهی کنید. دایرکتوری جداگانه در tmpfs (تغییرات این پیکربندی پس از راه اندازی مجدد از بین می رود). به طور مشابه، systemd-nspawn گزینه "--volatile=overlay" را برای استفاده از عملکردهای مشابه در کانتینرها اضافه کرده است.
- systemd-nspawn گزینه "--oci-bundle" را اضافه کرده است تا امکان استفاده از بستههای زمان اجرا را فراهم کند تا راهاندازی جداگانه کانتینرهایی را فراهم کند که با مشخصات Open Container Initiative (OCI) مطابقت دارند. برای استفاده در خط فرمان و واحدهای nspawn، پشتیبانی از گزینههای مختلف توضیح داده شده در مشخصات OCI پیشنهاد شده است، برای مثال، گزینههای «--inaccessible» و «Inaccessible» را میتوان برای حذف بخشهایی از سیستم فایل استفاده کرد، و « گزینه های --console" برای پیکربندی جریان های خروجی استاندارد و "-pipe" اضافه شده اند.
- قابلیت کنترل رفتار systemd-login از طریق متغیرهای محیطی اضافه شده است: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP،
$SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU و
$SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. با استفاده از این متغیرها، میتوانید کنترلکنندههای فرآیند راهاندازی مجدد خود را متصل کنید (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu و
/run/systemd/reboot-to-boot-loader-entry) یا آنها را به طور کامل غیرفعال کنید (اگر مقدار روی false تنظیم شده باشد). - اضافه شدن گزینه های “-boot-load-menu=” و
"—boot-loader-entry=" که به شما امکان می دهد پس از راه اندازی مجدد یک آیتم منوی بوت خاص یا حالت بوت را انتخاب کنید. - یک دستور جداسازی جعبه ماسهبازی جدید "RestrictSUIDSGID=" اضافه شد که از seccomp برای جلوگیری از ایجاد فایلهایی با پرچمهای SUID/SGID استفاده میکند.
- اطمینان حاصل شود که محدودیتهای «NoNewPrivileges» و «RestrictSUIDSGID» بهطور پیشفرض در سرویسهایی با حالت تولید شناسه کاربر پویا اعمال میشوند («DynamicUser» فعال است).
- تنظیمات پیشفرض MACAddressPolicy=persistent در فایلهای .link تغییر کرده است تا دستگاههای بیشتری را پوشش دهد. رابطهای پلهای شبکه، تونلها (tun، tap) و لینکهای انبوه (باند) خود را جز با نام رابط شبکه شناسایی نمیکنند، بنابراین این نام اکنون به عنوان مبنایی برای اتصال آدرسهای MAC و IPv4 استفاده میشود. علاوه بر این، تنظیمات "MACAddressPolicy=random" اضافه شده است که می تواند برای اتصال آدرس های MAC و IPv4 به دستگاه ها به صورت تصادفی استفاده شود.
- فایلهای واحد ".device" تولید شده از طریق systemd-fstab-generator دیگر شامل واحدهای ".mount" مربوطه به عنوان وابستگی در بخش "Wants=" نمیشوند. به سادگی وصل کردن یک دستگاه دیگر به طور خودکار واحدی را برای نصب راه اندازی نمی کند، اما چنین واحدهایی همچنان می توانند به دلایل دیگری راه اندازی شوند، مانند بخشی از local-fs.target یا به عنوان وابستگی به واحدهای دیگر که به local-fs.target وابسته هستند. ;
- پشتیبانی از ماسکها ("*"، و غیره) به دستورات "networkctl list/status/lldp" اضافه شد تا گروههای خاصی از رابطهای شبکه را بر اساس بخشی از نام فیلتر کنید.
- متغیر محیطی $PIDFILE اکنون با استفاده از مسیر مطلق پیکربندی شده در سرویس ها از طریق پارامتر "PIDFile=;" تنظیم شده است.
- اگر DNS اصلی به صراحت تعریف نشده باشد، سرورهای عمومی Cloudflare (1.1.1.1) به تعداد سرورهای DNS پشتیبان مورد استفاده اضافه شده است. برای تعریف مجدد لیست سرورهای DNS پشتیبان، می توانید از گزینه "-Ddns-servers=" استفاده کنید.
- هنگام تشخیص وجود یک کنترلر دستگاه USB، یک کنترلر جدید usb-gadget.target به طور خودکار راه اندازی می شود (زمانی که سیستم روی یک دستگاه جانبی USB اجرا می شود).
- برای فایلهای واحد، تنظیم «CPUQuotaPeriodSec=» پیادهسازی شده است، که دوره زمانی را که سهمیه زمانی CPU اندازهگیری میشود، از طریق تنظیم «CPUQuota=» تعیین میکند.
- برای فایل های واحد، تنظیمات "ProtectHostname=" پیاده سازی شده است که سرویس ها را از تغییر اطلاعات در مورد نام میزبان منع می کند، حتی اگر مجوزهای مناسب را داشته باشند.
- برای فایلهای واحد، تنظیمات «NetworkNamespacePath=» پیادهسازی شده است که به شما امکان میدهد با تعیین مسیر فایل فضای نام در شبه FS /proc، یک فضای نام را به سرویسها یا واحدهای سوکت متصل کنید.
- قابلیت غیرفعال کردن جایگزینی متغیرهای محیطی برای فرآیندهای راهاندازی شده با استفاده از تنظیمات ExecStart= را با افزودن یک کاراکتر «:» قبل از دستور start اضافه کرد.
- برای تایمرها (واحدهای تایمر) پرچم های جدید "OnClockChange=" و
"OnTimezoneChange="، که با آن می توانید تماس واحد را هنگام تغییر زمان سیستم یا منطقه زمانی کنترل کنید. - تنظیمات جدید "ConditionMemory=" و "ConditionCPUs=" اضافه شده است، که شرایط فراخوانی یک واحد را بسته به اندازه حافظه و تعداد هسته های CPU تعیین می کند (به عنوان مثال، یک سرویس پرمصرف تنها در صورتی می تواند راه اندازی شود که مقدار مورد نیاز باشد. رم موجود است)؛
- یک واحد time-set.target جدید اضافه شد که زمان سیستم تنظیم شده محلی را بدون استفاده از تطبیق با سرورهای زمان خارجی با استفاده از واحد time-sync.target میپذیرد. واحد جدید می تواند توسط سرویس هایی استفاده شود که به دقت ساعت های محلی غیرهمگام نیاز دارند.
- گزینه "--show-transaction" به "systemctl start" اضافه شده است و دستورات مشابه، در صورت مشخص شدن، خلاصه ای از تمام کارهای اضافه شده به صف به دلیل عملیات درخواستی نمایش داده می شود.
- systemd-networkd تعریف یک حالت «بردهشده» جدید را پیادهسازی میکند که بهجای «تخریب» یا «حامل» برای رابطهای شبکه که بخشی از پیوندها یا پلهای شبکه هستند استفاده میشود. برای رابط های اولیه، در صورت بروز مشکل با یکی از پیوندهای ترکیبی، حالت 'تخریب شده-حامل' اضافه شده است.
- گزینه "IgnoreCarrierLoss=" به واحدهای شبکه اضافه شد تا تنظیمات شبکه در صورت قطع اتصال ذخیره شود.
- از طریق تنظیم "RequiredForOnline=" در واحدهای شبکه، اکنون می توانید حداقل وضعیت پیوند قابل قبول مورد نیاز برای انتقال رابط شبکه را به "آنلاین" تنظیم کنید و کنترل کننده systemd-networkd-wait-online را فعال کنید.
- گزینه "--any" را به systemd-networkd-wait-online اضافه کرد تا منتظر آماده بودن هر یک از رابط های شبکه مشخص شده به جای همه، و همچنین گزینه "--operational-state=" برای تعیین وضعیت پیوندی که نشان دهنده آمادگی است؛
- تنظیمات "UseAutonomousPrefix=" و "UseOnLinkPrefix=" را به واحدهای شبکه اضافه کرد که می توان از آنها برای نادیده گرفتن پیشوندها هنگام دریافت استفاده کرد.
اعلامیه از یک روتر IPv6 (RA، روتر تبلیغات)؛ - در واحدهای شبکه، تنظیمات «MulticastFlood=»، «NeighborSuppression=» و «Learning=» برای تغییر پارامترهای عملیاتی پل شبکه و همچنین تنظیمات «TripleSampling=» برای تغییر حالت TRIPLE-SAMPLING اضافه شده است. رابط های مجازی CAN؛
- تنظیمات «PrivateKeyFile=» و «PresharedKeyFile=» به واحدهای netdev. اضافه شدهاند که با آن میتوانید کلیدهای خصوصی و مشترک (PSK) را برای رابطهای WireGuard VPN تعیین کنید.
- گزینههای same-cpu-crypt و submit-from-crypt-cpus به /etc/crypttab اضافه شد، که رفتار زمانبند را هنگام انتقال کارهای مربوط به رمزگذاری بین هستههای CPU کنترل میکند.
- systemd-tmpfiles پردازش فایل قفل را قبل از انجام عملیات در دایرکتوریهای دارای فایلهای موقت فراهم میکند، که به شما امکان میدهد کار روی تمیز کردن فایلهای قدیمی را برای مدت زمان انجام برخی اقدامات غیرفعال کنید (به عنوان مثال، هنگام باز کردن یک بایگانی tar در /tmp، ممکن است فایلهای بسیار قدیمی باز شده است که نمی توان قبل از پایان عمل با آنها حذف کرد).
- دستور "systemd-analyze cat-config" توانایی تجزیه و تحلیل یک پیکربندی تقسیم شده به چندین فایل را فراهم می کند، به عنوان مثال، از پیش تنظیمات کاربر و سیستم، محتویات tmpfiles.d و sysusers.d، قوانین udev و غیره.
- گزینه "--cursor-file=" به "journalctl" اضافه شد تا یک فایل برای بارگیری و ذخیره مکان نما موقعیت مشخص شود.
- تعریف هایپروایزر ACRN و زیر سیستم WSL (زیر سیستم ویندوز برای لینوکس) به systemd-detect-virt برای انشعاب بعدی با استفاده از عملگر شرطی "ConditionVirtualization" اضافه شد.
- در حین نصب systemd (هنگام اجرای "نینجا نصب")، ایجاد پیوندهای نمادین به فایل های systemd-networkd.service، systemd-networkd.socket،
systemd-resolved.service، remote-cryptsetup.target، remote-fs.target،
systemd-networkd-wait-online.service و systemd-timesyncd.service. برای ایجاد این فایل ها، اکنون باید دستور “systemctl preset-all” را اجرا کنید.
منبعopennet.ru
[: en]پس از دو ماه توسعه
تغییرات اصلی:
- systemd-networkd از تونل های L2TP پشتیبانی می کند.
- sd-boot و bootctl از پارتیشنهای XBOOTLDR (Extended Boot Loader) که برای نصب بر روی /boot طراحی شدهاند، علاوه بر پارتیشنهای ESP که روی /efi یا /boot/efi نصب شدهاند، پشتیبانی میکنند. هسته ها، تنظیمات، تصاویر initrd و EFI اکنون می توانند از هر دو پارتیشن ESP و XBOOTLDR بوت شوند. این تغییر به شما امکان می دهد از بوت لودر sd-boot در سناریوهای محافظه کارانه تر استفاده کنید، زمانی که خود بوت لودر در ESP قرار دارد و هسته های بارگذاری شده و ابرداده های مرتبط در یک بخش جداگانه قرار می گیرند.
- قابلیت بوت شدن با گزینه “systemd.volatile=overlay” به هسته اضافه شده است، که به شما امکان می دهد پارتیشن ریشه را در overlayf ها قرار دهید و کار را در بالای تصویر فقط خواندنی دایرکتوری ریشه با تغییرات نوشته شده در یک سازماندهی کنید. دایرکتوری جداگانه در tmpfs (تغییرات این پیکربندی پس از راه اندازی مجدد از بین می رود). به طور مشابه، systemd-nspawn گزینه "--volatile=overlay" را برای استفاده از عملکردهای مشابه در کانتینرها اضافه کرده است.
- systemd-nspawn گزینه "--oci-bundle" را اضافه کرده است تا امکان استفاده از بستههای زمان اجرا را فراهم کند تا راهاندازی جداگانه کانتینرهایی را فراهم کند که با مشخصات Open Container Initiative (OCI) مطابقت دارند. برای استفاده در خط فرمان و واحدهای nspawn، پشتیبانی از گزینههای مختلف توضیح داده شده در مشخصات OCI پیشنهاد شده است، برای مثال، گزینههای «--inaccessible» و «Inaccessible» را میتوان برای حذف بخشهایی از سیستم فایل استفاده کرد، و « گزینه های --console" برای پیکربندی جریان های خروجی استاندارد و "-pipe" اضافه شده اند.
- قابلیت کنترل رفتار systemd-login از طریق متغیرهای محیطی اضافه شده است: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP،
$SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU و
$SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. با استفاده از این متغیرها، میتوانید کنترلکنندههای فرآیند راهاندازی مجدد خود را متصل کنید (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu و
/run/systemd/reboot-to-boot-loader-entry) یا آنها را به طور کامل غیرفعال کنید (اگر مقدار روی false تنظیم شده باشد). - اضافه شدن گزینه های “-boot-load-menu=” و
"—boot-loader-entry=" که به شما امکان می دهد پس از راه اندازی مجدد یک آیتم منوی بوت خاص یا حالت بوت را انتخاب کنید. - یک دستور جداسازی جعبه ماسهبازی جدید "RestrictSUIDSGID=" اضافه شد که از seccomp برای جلوگیری از ایجاد فایلهایی با پرچمهای SUID/SGID استفاده میکند.
- اطمینان حاصل شود که محدودیتهای «NoNewPrivileges» و «RestrictSUIDSGID» بهطور پیشفرض در سرویسهایی با حالت تولید شناسه کاربر پویا اعمال میشوند («DynamicUser» فعال است).
- تنظیمات پیشفرض MACAddressPolicy=persistent در فایلهای .link تغییر کرده است تا دستگاههای بیشتری را پوشش دهد. رابطهای پلهای شبکه، تونلها (tun، tap) و لینکهای انبوه (باند) خود را جز با نام رابط شبکه شناسایی نمیکنند، بنابراین این نام اکنون به عنوان مبنایی برای اتصال آدرسهای MAC و IPv4 استفاده میشود. علاوه بر این، تنظیمات "MACAddressPolicy=random" اضافه شده است که می تواند برای اتصال آدرس های MAC و IPv4 به دستگاه ها به صورت تصادفی استفاده شود.
- فایلهای واحد ".device" تولید شده از طریق systemd-fstab-generator دیگر شامل واحدهای ".mount" مربوطه به عنوان وابستگی در بخش "Wants=" نمیشوند. به سادگی وصل کردن یک دستگاه دیگر به طور خودکار واحدی را برای نصب راه اندازی نمی کند، اما چنین واحدهایی همچنان می توانند به دلایل دیگری راه اندازی شوند، مانند بخشی از local-fs.target یا به عنوان وابستگی به واحدهای دیگر که به local-fs.target وابسته هستند. ;
- پشتیبانی از ماسکها ("*"، و غیره) به دستورات "networkctl list/status/lldp" اضافه شد تا گروههای خاصی از رابطهای شبکه را بر اساس بخشی از نام فیلتر کنید.
- متغیر محیطی $PIDFILE اکنون با استفاده از مسیر مطلق پیکربندی شده در سرویس ها از طریق پارامتر "PIDFile=;" تنظیم شده است.
- اگر DNS اصلی به صراحت تعریف نشده باشد، سرورهای عمومی Cloudflare (1.1.1.1) به تعداد سرورهای DNS پشتیبان مورد استفاده اضافه شده است. برای تعریف مجدد لیست سرورهای DNS پشتیبان، می توانید از گزینه "-Ddns-servers=" استفاده کنید.
- هنگام تشخیص وجود یک کنترلر دستگاه USB، یک کنترلر جدید usb-gadget.target به طور خودکار راه اندازی می شود (زمانی که سیستم روی یک دستگاه جانبی USB اجرا می شود).
- برای فایلهای واحد، تنظیم «CPUQuotaPeriodSec=» پیادهسازی شده است، که دوره زمانی را که سهمیه زمانی CPU اندازهگیری میشود، از طریق تنظیم «CPUQuota=» تعیین میکند.
- برای فایل های واحد، تنظیمات "ProtectHostname=" پیاده سازی شده است که سرویس ها را از تغییر اطلاعات در مورد نام میزبان منع می کند، حتی اگر مجوزهای مناسب را داشته باشند.
- برای فایلهای واحد، تنظیمات «NetworkNamespacePath=» پیادهسازی شده است که به شما امکان میدهد با تعیین مسیر فایل فضای نام در شبه FS /proc، یک فضای نام را به سرویسها یا واحدهای سوکت متصل کنید.
- قابلیت غیرفعال کردن جایگزینی متغیرهای محیطی برای فرآیندهای راهاندازی شده با استفاده از تنظیمات ExecStart= را با افزودن یک کاراکتر «:» قبل از دستور start اضافه کرد.
- برای تایمرها (واحدهای تایمر) پرچم های جدید "OnClockChange=" و
"OnTimezoneChange="، که با آن می توانید تماس واحد را هنگام تغییر زمان سیستم یا منطقه زمانی کنترل کنید. - تنظیمات جدید "ConditionMemory=" و "ConditionCPUs=" اضافه شده است، که شرایط فراخوانی یک واحد را بسته به اندازه حافظه و تعداد هسته های CPU تعیین می کند (به عنوان مثال، یک سرویس پرمصرف تنها در صورتی می تواند راه اندازی شود که مقدار مورد نیاز باشد. رم موجود است)؛
- یک واحد time-set.target جدید اضافه شد که زمان سیستم تنظیم شده محلی را بدون استفاده از تطبیق با سرورهای زمان خارجی با استفاده از واحد time-sync.target میپذیرد. واحد جدید می تواند توسط سرویس هایی استفاده شود که به دقت ساعت های محلی غیرهمگام نیاز دارند.
- گزینه "--show-transaction" به "systemctl start" اضافه شده است و دستورات مشابه، در صورت مشخص شدن، خلاصه ای از تمام کارهای اضافه شده به صف به دلیل عملیات درخواستی نمایش داده می شود.
- systemd-networkd تعریف یک حالت «بردهشده» جدید را پیادهسازی میکند که بهجای «تخریب» یا «حامل» برای رابطهای شبکه که بخشی از پیوندها یا پلهای شبکه هستند استفاده میشود. برای رابط های اولیه، در صورت بروز مشکل با یکی از پیوندهای ترکیبی، حالت 'تخریب شده-حامل' اضافه شده است.
- گزینه "IgnoreCarrierLoss=" به واحدهای شبکه اضافه شد تا تنظیمات شبکه در صورت قطع اتصال ذخیره شود.
- از طریق تنظیم "RequiredForOnline=" در واحدهای شبکه، اکنون می توانید حداقل وضعیت پیوند قابل قبول مورد نیاز برای انتقال رابط شبکه را به "آنلاین" تنظیم کنید و کنترل کننده systemd-networkd-wait-online را فعال کنید.
- گزینه "--any" را به systemd-networkd-wait-online اضافه کرد تا منتظر آماده بودن هر یک از رابط های شبکه مشخص شده به جای همه، و همچنین گزینه "--operational-state=" برای تعیین وضعیت پیوندی که نشان دهنده آمادگی است؛
- تنظیمات "UseAutonomousPrefix=" و "UseOnLinkPrefix=" را به واحدهای شبکه اضافه کرد که می توان از آنها برای نادیده گرفتن پیشوندها هنگام دریافت استفاده کرد.
اعلامیه از یک روتر IPv6 (RA، روتر تبلیغات)؛ - در واحدهای شبکه، تنظیمات «MulticastFlood=»، «NeighborSuppression=» و «Learning=» برای تغییر پارامترهای عملیاتی پل شبکه و همچنین تنظیمات «TripleSampling=» برای تغییر حالت TRIPLE-SAMPLING اضافه شده است. رابط های مجازی CAN؛
- تنظیمات «PrivateKeyFile=» و «PresharedKeyFile=» به واحدهای netdev. اضافه شدهاند که با آن میتوانید کلیدهای خصوصی و مشترک (PSK) را برای رابطهای WireGuard VPN تعیین کنید.
- گزینههای same-cpu-crypt و submit-from-crypt-cpus به /etc/crypttab اضافه شد، که رفتار زمانبند را هنگام انتقال کارهای مربوط به رمزگذاری بین هستههای CPU کنترل میکند.
- systemd-tmpfiles پردازش فایل قفل را قبل از انجام عملیات در دایرکتوریهای دارای فایلهای موقت فراهم میکند، که به شما امکان میدهد کار روی تمیز کردن فایلهای قدیمی را برای مدت زمان انجام برخی اقدامات غیرفعال کنید (به عنوان مثال، هنگام باز کردن یک بایگانی tar در /tmp، ممکن است فایلهای بسیار قدیمی باز شده است که نمی توان قبل از پایان عمل با آنها حذف کرد).
- دستور "systemd-analyze cat-config" توانایی تجزیه و تحلیل یک پیکربندی تقسیم شده به چندین فایل را فراهم می کند، به عنوان مثال، از پیش تنظیمات کاربر و سیستم، محتویات tmpfiles.d و sysusers.d، قوانین udev و غیره.
- گزینه "--cursor-file=" به "journalctl" اضافه شد تا یک فایل برای بارگیری و ذخیره مکان نما موقعیت مشخص شود.
- تعریف هایپروایزر ACRN و زیر سیستم WSL (زیر سیستم ویندوز برای لینوکس) به systemd-detect-virt برای انشعاب بعدی با استفاده از عملگر شرطی "ConditionVirtualization" اضافه شد.
- در حین نصب systemd (هنگام اجرای "نینجا نصب")، ایجاد پیوندهای نمادین به فایل های systemd-networkd.service، systemd-networkd.socket،
systemd-resolved.service، remote-cryptsetup.target، remote-fs.target،
systemd-networkd-wait-online.service و systemd-timesyncd.service. برای ایجاد این فایل ها، اکنون باید دستور “systemctl preset-all” را اجرا کنید.
منبع: opennet.ru
[]