یو کے آئی (یونیفائیڈ کرنل امیج) سپورٹ کے ساتھ سسٹمڈ سسٹم مینیجر 252 کی ریلیز

پانچ ماہ کی ترقی کے بعد، سسٹم مینیجر systemd 252 کی ریلیز پیش کی گئی۔نئے ورژن میں اہم تبدیلی ایک جدید بوٹ پروسیس کے لیے سپورٹ کا انضمام تھا، جو آپ کو نہ صرف کرنل اور بوٹ لوڈر بلکہ اجزاء کی بھی تصدیق کرنے کی اجازت دیتا ہے۔ ڈیجیٹل دستخطوں کا استعمال کرتے ہوئے بنیادی نظام کے ماحول کا۔

مجوزہ طریقہ میں لوڈنگ کے وقت یونیفائیڈ کرنل امیج UKI (یونیفائیڈ کرنل امیج) کا استعمال شامل ہے، جو UEFI (UEFI بوٹ سٹب) سے کرنل لوڈ کرنے کے لیے ایک ہینڈلر کو جوڑتا ہے، ایک لینکس کرنل امیج اور initrd سسٹم ماحول جو میموری میں لوڈ ہوتا ہے، استعمال کیا جاتا ہے۔ روٹ FS کو نصب کرنے سے پہلے مرحلے پر ابتدائی آغاز کے لیے۔ UKI امیج کو PE فارمیٹ میں ایک واحد قابل عمل فائل کے طور پر پیک کیا گیا ہے، جسے روایتی بوٹ لوڈرز کا استعمال کرتے ہوئے لوڈ کیا جا سکتا ہے یا براہ راست UEFI فرم ویئر سے بلایا جا سکتا ہے۔ UEFI سے کال کرنے پر، نہ صرف کرنل بلکہ initrd کے مواد کے ڈیجیٹل دستخط کی سالمیت اور وشوسنییتا کی تصدیق کرنا ممکن ہے۔

ٹی پی ایم پی سی آر (ٹرسٹڈ پلیٹ فارم ماڈیول پلیٹ فارم کنفیگریشن رجسٹر) رجسٹر کے پیرامیٹرز کا حساب لگانے کے لیے جو سالمیت کی نگرانی اور UKI امیج کے ڈیجیٹل دستخط پیدا کرنے کے لیے استعمال ہوتے ہیں، ایک نئی یوٹیلیٹی سسٹمڈ میسر شامل ہے۔ دستخط میں استعمال ہونے والی عوامی کلید اور اس کے ساتھ پی سی آر کی معلومات کو براہ راست UKI بوٹ امیج میں سرایت کیا جا سکتا ہے (کلید اور دستخط '.pcrsig' اور '.pcrkey' فیلڈز میں PE فائل میں محفوظ کیے جاتے ہیں) اور اس سے باہر کے ذریعے نکالا جاتا ہے۔ یا اندرونی افادیت۔

خاص طور پر، systemd-cryptsetup، systemd-cryptenroll اور systemd-creds کی افادیت کو اس معلومات کو استعمال کرنے کے لیے ڈھال لیا گیا ہے، جس کے ساتھ آپ اس بات کو یقینی بنا سکتے ہیں کہ انکرپٹڈ ڈسک پارٹیشنز ڈیجیٹل طور پر دستخط شدہ کرنل کے پابند ہیں (اس صورت میں، انکرپٹڈ پارٹیشن تک رسائی صرف اس صورت میں فراہم کی جاتی ہے جب UKI تصویر نے TPM میں موجود پیرامیٹرز کی بنیاد پر ڈیجیٹل دستخط کے ذریعے تصدیق پاس کر دی ہو)۔

مزید برآں، systemd-pcrphase یوٹیلیٹی شامل ہے، جو آپ کو کرپٹو پروسیسرز کی میموری میں موجود پیرامیٹرز کے ساتھ مختلف بوٹ مراحل کی پابندی کو کنٹرول کرنے کی اجازت دیتی ہے جو TPM 2.0 تفصیلات کو سپورٹ کرتے ہیں (مثال کے طور پر، آپ LUKS2 پارٹیشن ڈیکرپشن کلید کو صرف اس میں دستیاب کر سکتے ہیں۔ initrd امیج اور بعد کے مراحل کے ڈاؤن لوڈز پر اس تک رسائی کو بلاک کریں)۔

کچھ دوسری تبدیلیاں:

  • اس بات کو یقینی بناتا ہے کہ ڈیفالٹ لوکیل C.UTF-8 ہے جب تک کہ سیٹنگز میں کوئی مختلف لوکیل متعین نہ ہو۔
  • اب پہلے بوٹ کے دوران ایک مکمل سروس پری سیٹ آپریشن ("systemctl preset") کرنا ممکن ہے۔ بوٹ کے وقت پر سیٹوں کو فعال کرنے کے لیے "-Dfirst-boot-full-preset" آپشن کے ساتھ تعمیر کی ضرورت ہوتی ہے، لیکن مستقبل کی ریلیزز میں بطور ڈیفالٹ فعال کرنے کا منصوبہ ہے۔
  • یوزر مینجمنٹ یونٹس میں ایک CPU ریسورس کنٹرولر شامل ہوتا ہے، جس نے اس بات کو یقینی بنانا ممکن بنایا کہ CPU ویٹ سیٹنگز سسٹم کو حصوں میں تقسیم کرنے کے لیے استعمال ہونے والی تمام سلائس یونٹس پر لاگو ہوں (app.slice، background.slice، session.slice) مختلف صارف کی خدمات، سی پی یو وسائل کے لیے مسابقت۔ CPUWeight مناسب وسائل کی فراہمی کے موڈ کو چالو کرنے کے لیے "بے کار" قدر کو بھی سپورٹ کرتا ہے۔
  • عارضی ("عارضی") اکائیوں میں اور systemd-repart یوٹیلیٹی میں، /etc/systemd/system/name.d/ ڈائریکٹری میں ڈراپ ان فائلیں بنا کر اوور رائیڈنگ سیٹنگز کی اجازت ہے۔
  • سسٹم امیجز کے لیے، سپورٹ ختم ہونے والا جھنڈا سیٹ کیا جاتا ہے، اس حقیقت کو /etc/os-release فائل میں نئے پیرامیٹر "SUPPORT_END=" کی قدر کی بنیاد پر متعین کرتا ہے۔
  • "ConditionCredential=" اور "AssertCredential=" سیٹنگیں شامل کی گئیں، جن کا استعمال یونٹس کو نظر انداز کرنے یا کریش کرنے کے لیے کیا جا سکتا ہے اگر سسٹم میں کچھ اسناد موجود نہ ہوں۔
  • "DefaultSmackProcessLabel=" اور "DefaultDeviceTimeoutSec=" ترتیبات کو system.conf اور user.conf میں شامل کیا گیا تاکہ ڈیفالٹ SMACK سیکیورٹی لیول اور یونٹ ایکٹیویشن ٹائم آؤٹ کی وضاحت کی جا سکے۔
  • "ConditionFirmware=" اور "AssertFirmware=" کی ترتیبات میں، انفرادی SMBIOS فیلڈز کو متعین کرنے کی صلاحیت شامل کی گئی ہے، مثال کے طور پر، صرف اس صورت میں یونٹ شروع کرنا جب /sys/class/dmi/id/board_name فیلڈ میں قدر "Custom" پر مشتمل ہو۔ بورڈ"، آپ "ConditionFirmware=smbios" -field(board_name = "کسٹم بورڈ") کی وضاحت کر سکتے ہیں۔
  • شروع کرنے کے عمل (PID 1) کے دوران، SMBIOS فیلڈز (Type 11, "OEM وینڈر سٹرنگز") سے اسناد درآمد کرنے کی اہلیت کو qemu_fwcfg کے ذریعے ان کی تعریف کے علاوہ شامل کیا گیا ہے، جو ورچوئل مشینوں میں اسناد کی فراہمی کو آسان بناتا ہے اور اسے ختم کرتا ہے۔ فریق ثالث کے ٹولز جیسے کلاؤڈ -init اور اگنیشن کی ضرورت ہے۔
  • شٹ ڈاؤن کے دوران، ورچوئل فائل سسٹم (proc، sys) کو ان ماؤنٹ کرنے کی منطق کو تبدیل کر دیا گیا ہے اور فائل سسٹم کے ان ماؤنٹنگ کو روکنے کے عمل کے بارے میں معلومات کو لاگ میں محفوظ کر لیا گیا ہے۔
  • سسٹم کال فلٹر (SystemCallFilter) بذریعہ ڈیفالٹ riscv_flush_icache سسٹم کال تک رسائی کی اجازت دیتا ہے۔
  • ایس ڈی بوٹ بوٹ لوڈر مکسڈ موڈ میں بوٹ کرنے کی صلاحیت کا اضافہ کرتا ہے، جس میں 64 بٹ لینکس کرنل 32 بٹ UEFI فرم ویئر سے چلتا ہے۔ ESP (EFI سسٹم پارٹیشن) میں پائی جانے والی فائلوں سے SecureBoot کیز کو خود بخود لاگو کرنے کی تجرباتی صلاحیت شامل کی گئی۔
  • بوٹ سی ٹی ایل یوٹیلیٹی میں نئے اختیارات شامل کیے گئے ہیں: تمام معاون EFI آرکیٹیکچرز کے لیے بائنریز انسٹال کرنے کے لیے "—آل آرکیٹیکچرز"، ڈائرکٹری یا ڈسک امیج کے ساتھ کام کرنے کے لیے "—root=" اور "—image="، "—install-source =” تنصیب کے لیے ماخذ کی وضاحت کے لیے، "-efi-boot-option-description=" بوٹ انٹری کے ناموں کو کنٹرول کرنے کے لیے۔
  • 'list-automounts' کمانڈ کو systemctl یوٹیلیٹی میں شامل کیا گیا ہے تاکہ خود کار طریقے سے نصب ڈائریکٹریز کی فہرست اور "--image=" آپشن کو مخصوص ڈسک امیج کے سلسلے میں کمانڈ پر عمل درآمد کرنے کے لیے ظاہر کیا جا سکے۔ 'شو' اور 'سٹیٹس' کمانڈز میں "--state=" اور "--type=" اختیارات شامل کیے گئے۔
  • systemd-networkd نے TCP کنجشن کنٹرول الگورتھم کو منتخب کرنے کے لیے "TCPCongestionControlAlgorithm=" کے اختیارات شامل کیے، TUN/TAP انٹرفیس کے فائل ڈسکرپٹر کو محفوظ کرنے کے لیے "KeepFileDescriptor="، NetLabels کو سیٹ کرنے کے لیے "NetLabel="، DCPv6 کنفیگریشن کو تیز کرنے کے لیے "RapidCommit=" (RFC 3315)۔ "RouteTable=" پیرامیٹر روٹنگ ٹیبلز کے نام بتانے کی اجازت دیتا ہے۔
  • systemd-nspawn "--bind=" اور "--overlay=" اختیارات میں متعلقہ فائل پاتھ کے استعمال کی اجازت دیتا ہے۔ کنٹینر میں روٹ یوزر آئی ڈی کو میزبان سائیڈ پر نصب ڈائرکٹری کے مالک سے باندھنے کے لیے "--bind=" آپشن میں 'rootidmap' پیرامیٹر کے لیے تعاون شامل کیا گیا۔
  • systemd-solved OpenSSL کو بطور انکرپشن بیک اینڈ بطور ڈیفالٹ استعمال کرتا ہے (gnutls سپورٹ کو بطور آپشن برقرار رکھا جاتا ہے)۔ غیر تعاون یافتہ DNSSEC الگورتھم کو اب غلطی (SERVFAIL) واپس کرنے کے بجائے غیر محفوظ سمجھا جاتا ہے۔
  • systemd-sysusers، systemd-tmpfiles اور systemd-sysctl ایک کریڈینشل اسٹوریج میکانزم کے ذریعے ترتیبات کو منتقل کرنے کی صلاحیت کو نافذ کرتے ہیں۔
  • ورژن نمبروں کے ساتھ سٹرنگز کا موازنہ کرنے کے لیے 'compare-versions' کمانڈ کو systemd-analyze میں شامل کیا گیا ('rpmdev-vercmp' اور 'dpkg --compare-versions' کی طرح)۔ 'systemd-analyze dump' کمانڈ میں ماسک کے ذریعے یونٹوں کو فلٹر کرنے کی صلاحیت شامل کی گئی۔
  • ملٹی اسٹیج سلیپ موڈ (سسپنڈ-پھر-ہائبرنیٹ) کا انتخاب کرتے وقت، اسٹینڈ بائی موڈ میں گزارا جانے والا وقت اب بیٹری کی باقی زندگی کی پیشین گوئی کی بنیاد پر منتخب کیا جاتا ہے۔ سلیپ موڈ میں فوری منتقلی اس وقت ہوتی ہے جب 5% سے کم بیٹری چارج رہ جائے۔
  • ایک نیا آؤٹ پٹ موڈ "-o short-delta" کو 'journalctl' میں شامل کیا گیا ہے، جو لاگ میں مختلف پیغامات کے درمیان وقت کے فرق کو ظاہر کرتا ہے۔
  • systemd-repart Squashfs فائل سسٹم کے ساتھ پارٹیشنز اور dm-verity کے لیے پارٹیشنز بنانے کے لیے سپورٹ شامل کرتا ہے، بشمول ڈیجیٹل دستخطوں کے ساتھ۔
  • ایک مخصوص ٹائم آؤٹ کے بعد غیر فعال سیشن کو ختم کرنے کے لیے "StopIdleSessionSec=" سیٹنگ کو systemd-logind میں شامل کیا گیا۔
  • Systemd-cryptenroll نے ایک "-unlock-key-file=" کا آپشن شامل کیا ہے تاکہ صارف کو اشارہ کرنے کی بجائے فائل سے ڈکرپشن کلید نکال سکے۔
  • اب udev کے بغیر ماحول میں systemd-grofs یوٹیلیٹی چلانا ممکن ہے۔
  • systemd-backlight نے متعدد گرافکس کارڈز والے سسٹمز کے لیے سپورٹ کو بہتر بنایا ہے۔
  • دستاویزات میں فراہم کردہ کوڈ مثالوں کا لائسنس CC0 سے MIT-0 میں تبدیل کر دیا گیا ہے۔

تبدیلیاں جو مطابقت کو توڑ دیتی ہیں:

  • ConditionKernelVersion ڈائریکٹو کا استعمال کرتے ہوئے کرنل ورژن نمبر کی جانچ کرتے وقت، '=' اور '!=' آپریٹرز میں اب ایک سادہ سٹرنگ موازنہ استعمال کیا جاتا ہے، اور اگر موازنہ آپریٹر بالکل بھی متعین نہیں ہے، تو گلوب ماسک مماثلت کا استعمال کرتے ہوئے استعمال کیا جا سکتا ہے۔ حروف '*'، '؟' اور '[', ']'۔ stverscmp() طرز کے ورژن کا موازنہ کرنے کے لیے، '<', '>', '<=' اور '>=' آپریٹرز استعمال کریں۔
  • یونٹ فائل سے رسائی کی جانچ کرنے کے لیے استعمال ہونے والا SELinux ٹیگ اب فائل لوڈ ہونے کے وقت پڑھا جاتا ہے، نہ کہ رسائی کی جانچ کے وقت۔
  • "کنڈیشن فرسٹ بوٹ" کی حالت اب سسٹم کے پہلے بوٹ پر صرف براہ راست بوٹ مرحلے پر شروع ہوتی ہے اور بوٹ مکمل ہونے کے بعد یونٹوں کو کال کرنے پر "غلط" لوٹاتا ہے۔
  • 2024 میں، systemd نے cgroup v1 وسائل کو محدود کرنے کے طریقہ کار کی حمایت بند کرنے کا منصوبہ بنایا ہے، جسے systemd ریلیز 248 میں فرسودہ کیا گیا تھا۔ منتظمین کو مشورہ دیا جاتا ہے کہ وہ cgroup v2 کی بنیاد پر خدمات کو cgroup v1 میں منتقل کرنے سے پہلے احتیاط کریں۔ cgroups v2 اور v1 کے درمیان اہم فرق CPU وسائل مختص کرنے، میموری کی کھپت کو ریگولیٹ کرنے اور I/O کے لیے الگ الگ درجہ بندی کے بجائے تمام قسم کے وسائل کے لیے مشترکہ cgroups کے درجہ بندی کا استعمال ہے۔ الگ الگ درجہ بندی ہینڈلرز کے درمیان تعامل کو منظم کرنے میں مشکلات کا باعث بنتی ہے اور مختلف درجہ بندیوں میں حوالہ کردہ عمل کے لیے قواعد کا اطلاق کرتے وقت اضافی کرنل وسائل کی لاگت کا باعث بنتی ہے۔
  • 2023 کے دوسرے نصف میں، ہم سپلٹ ڈائرکٹری کے درجہ بندی کے لیے سپورٹ ختم کرنے کا ارادہ رکھتے ہیں، جہاں /usr کو جڑ سے الگ کیا جاتا ہے، یا /bin اور /usr/bin، /lib اور /usr/lib کو الگ کیا جاتا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں