ผู้จัดการระบบ systemd รีลีส 251

หลังจากห้าเดือนของการพัฒนา จะมีการนำเสนอการเปิดตัว system manager systemd 251

การเปลี่ยนแปลงที่สำคัญ:

  • ความต้องการของระบบเพิ่มขึ้น เวอร์ชันเคอร์เนล Linux ขั้นต่ำที่รองรับได้เพิ่มขึ้นจาก 3.13 เป็น 4.15 ต้องใช้ตัวจับเวลา CLOCK_BOOTTIME เพื่อดำเนินการ ในการสร้าง คุณต้องมีคอมไพเลอร์ที่รองรับมาตรฐาน C11 และส่วนขยาย GNU (มาตรฐาน C89 ยังคงใช้สำหรับไฟล์ส่วนหัว)
  • เพิ่มยูทิลิตี้ทดลอง systemd-sysupdate เพื่อตรวจจับ ดาวน์โหลด และติดตั้งการอัพเดตโดยอัตโนมัติโดยใช้กลไกอะตอมมิกสำหรับการแทนที่พาร์ติชั่น ไฟล์ หรือไดเร็กทอรี (ใช้พาร์ติชั่น/ไฟล์/ไดเร็กทอรีอิสระสองตัว โดยหนึ่งในนั้นมีทรัพยากรการทำงานในปัจจุบัน และอีกตัวติดตั้ง การอัพเดตครั้งถัดไป หลังจากนั้นส่วน/ไฟล์/ไดเร็กทอรีจะถูกสลับ)
  • ไลบรารีแบบแบ่งใช้ภายในใหม่ libsystemd-core-.so ได้รับการแนะนำ ซึ่งจะติดตั้งลงในไดเร็กทอรี /usr/lib/systemd/system และสอดคล้องกับไลบรารี libsystemd-shared-.so ที่มีอยู่ การใช้ไลบรารีที่แบ่งใช้ libsystemd-core-.so จะช่วยลดขนาดการติดตั้งโดยรวมโดยการใช้รหัสไบนารี่ซ้ำ หมายเลขเวอร์ชันสามารถระบุได้ผ่านพารามิเตอร์ 'shared-lib-tag' ในระบบการสร้าง meson และอนุญาตให้การแจกจ่ายจัดส่งไลบรารีเหล่านี้หลายเวอร์ชันพร้อมกัน
  • ดำเนินการถ่ายโอนตัวแปรสภาพแวดล้อม $MONITOR_SERVICE_RESULT, $MONITOR_EXIT_CODE, $MONITOR_EXIT_STATUS, $MONITOR_INVOCATION_ID และ $MONITOR_UNIT จากข้อมูลเกี่ยวกับหน่วยที่ถูกตรวจสอบไปยังตัวจัดการ OnFailure/OnSuccess
  • สำหรับหน่วยต่างๆ การตั้งค่า ExtensionDirectories ได้ถูกนำมาใช้ ซึ่งสามารถใช้เพื่อจัดระเบียบการโหลดส่วนประกอบส่วนขยายของระบบจากไดเร็กทอรีปกติ แทนที่จะเป็นดิสก์อิมเมจ เนื้อหาของไดเร็กทอรีส่วนขยายของระบบถูกซ้อนทับโดยใช้ OverlayFS และใช้เพื่อขยายลำดับชั้นของไดเร็กทอรี /usr/ และ /opt/ และเพิ่มไฟล์เพิ่มเติมในขณะรันไทม์ แม้ว่าไดเร็กทอรีดังกล่าวจะถูกเมาท์แบบอ่านอย่างเดียวก็ตาม คำสั่ง 'portablectlแนบ --extension=' ได้เพิ่มการรองรับสำหรับการระบุไดเร็กทอรีด้วย
  • สำหรับหน่วยที่ถูกบังคับให้ยุติโดยตัวจัดการ systemd-oomd เนื่องจากไม่มีหน่วยความจำในระบบ คุณลักษณะ 'oom-kill' จะถูกส่ง และจำนวนของการยุติที่บังคับจะแสดงในแอตทริบิวต์ 'user.oomd_ooms'
  • สำหรับหน่วย มีการเพิ่มตัวระบุเส้นทางใหม่ %y/%Y ซึ่งสะท้อนถึงเส้นทางปกติไปยังหน่วย (พร้อมส่วนขยายของลิงก์สัญลักษณ์) นอกจากนี้ ยังมีตัวระบุ %q สำหรับการทดแทนค่า PRETTY_HOSTNAME และ %d สำหรับการทดแทน CREDENTIALS_DIRECTORY
  • ในบริการที่ไม่มีสิทธิพิเศษที่เปิดใช้งานโดยผู้ใช้ปกติโดยใช้แฟล็ก "--ผู้ใช้" การเปลี่ยนแปลงการตั้งค่าของ RootDirectory, MountAPIVFS, ExtensionDirectories, *Capabilities*, ProtectHome, *Directory, TemporaryFileSystem, PrivateTmp, PrivateDevices, PrivateNetwork, NetworkNamespacePath, PrivateIPC, IPCNamespacePath , PrivateUsers, ProtectClock ได้รับอนุญาต , ProtectKernelTunables, ProtectKernelModules, ProtectKernelLogs และ MountFlags คุณลักษณะนี้ใช้ได้เฉพาะเมื่อมีการเปิดใช้งานเนมสเปซผู้ใช้ในระบบเท่านั้น
  • การตั้งค่า LoadCredential อนุญาตให้ระบุชื่อไดเร็กทอรีเป็นอาร์กิวเมนต์ ซึ่งในกรณีนี้จะมีการพยายามโหลดข้อมูลรับรองจากไฟล์ทั้งหมดในไดเร็กทอรีที่ระบุ
  • ใน systemctl ในพารามิเตอร์ "—timestamp" คุณสามารถระบุแฟล็ก "unix" เพื่อแสดงเวลาในรูปแบบยุค (จำนวนวินาทีนับตั้งแต่ 1 มกราคม 1970)
  • “สถานะ systemctl” ใช้แฟล็ก “old-kernel” ซึ่งจะแสดงหากเคอร์เนลที่โหลดในเซสชันมีหมายเลขเวอร์ชันเก่ากว่าเคอร์เนลพื้นฐานที่มีอยู่ในระบบ นอกจากนี้ ยังเพิ่มแฟล็ก "unmerged-usr" เพื่อกำหนดว่าเนื้อหาของไดเร็กทอรี /bin/ และ /sbin/ ไม่ได้เกิดขึ้นผ่าน symlink ไปยัง /usr
  • สำหรับเครื่องกำเนิดไฟฟ้าที่เริ่มต้นโดยกระบวนการ PID 1 จะมีการจัดหาตัวแปรสภาพแวดล้อมใหม่: $SYSTEMD_SCOPE (เริ่มจากระบบหรือบริการผู้ใช้), $SYSTEMD_IN_INITRD (เริ่มจากสภาพแวดล้อม initrd หรือโฮสต์), $SYSTEMD_FIRST_BOOT (ตัวบ่งชี้การบูตครั้งแรก), $SYSTEMD_VIRTUALIZATION ( การมีอยู่ของการจำลองเสมือนหรือการเปิดตัวในคอนเทนเนอร์ ) และ $SYSTEMD_ARCHITECTURE (สถาปัตยกรรมที่สร้างเคอร์เนล)
  • ตัวจัดการ PID 1 ใช้ความสามารถในการโหลดพารามิเตอร์ข้อมูลรับรองระบบจากอินเทอร์เฟซ QEMU fw_cfg หรือโดยการระบุพารามิเตอร์ systemd.set_credential บนบรรทัดคำสั่งเคอร์เนล คำสั่ง LoadCredential จัดให้มีการค้นหาข้อมูลประจำตัวโดยอัตโนมัติในไดเร็กทอรี /etc/credstore/, /run/credstore/ และ /usr/lib/credstore/ หากระบุพาธแบบสัมพันธ์เป็นอาร์กิวเมนต์ ลักษณะการทำงานที่คล้ายกันนี้ใช้กับคำสั่ง LoadCredentialEncrypted ซึ่งจะตรวจสอบไดเร็กทอรี /etc/credstore.encrypted/, /run/credstore.encrypted/ และ /usr/lib/credstore.encrypted/ เพิ่มเติม
  • ความสามารถในการส่งออกในรูปแบบ JSON มีเสถียรภาพใน systemd-journald ขณะนี้คำสั่ง "journalctl --list-boots" และ "bootctl list" รองรับเอาต์พุตในรูปแบบ JSON (แฟล็ก "--json")
  • ไฟล์ใหม่ที่มีฐานข้อมูล hwdb ได้ถูกเพิ่มเข้าไปใน udev ซึ่งมีข้อมูลเกี่ยวกับอุปกรณ์พกพา (พีดีเอ เครื่องคิดเลข ฯลฯ) และอุปกรณ์ที่ใช้สร้างเสียงและวิดีโอ (คอนโซลดีเจ แผงปุ่มกด)
  • เพิ่มตัวเลือกใหม่ “--prioritized-subsystem” ให้กับ udevadm เพื่อตั้งค่าลำดับความสำคัญของระบบต่อไปนี้ (ใช้ใน systemd-udev-trigger.service เพื่อประมวลผลอุปกรณ์บล็อกและ TPM ก่อน), “-type=all”, “-initialized -match” และ "--initialized-nomatch" เพื่อเลือกอุปกรณ์ที่เตรียมใช้งานหรือไม่ได้เตรียมใช้งาน "udevadm info -tree" เพื่อแสดงแผนผังของอ็อบเจ็กต์ในลำดับชั้น /sys/ udevadm ยังเพิ่มคำสั่ง "รอ" และ "ล็อค" ใหม่เพื่อรอให้รายการอุปกรณ์ปรากฏในฐานข้อมูลและล็อคอุปกรณ์บล็อกขณะฟอร์แมตหรือเขียนตารางพาร์ติชัน
  • เพิ่มชุดใหม่ของ symlink อุปกรณ์ /dev/disk/by-diskseq/ เพื่อระบุอุปกรณ์บล็อกตามหมายเลขลำดับ ("diskseq")
  • เพิ่มการรองรับพารามิเตอร์ “เฟิร์มแวร์” ให้กับไฟล์ .link ในส่วน [จับคู่] เพื่อจับคู่อุปกรณ์ตามคำอธิบายเฟิร์มแวร์
  • ใน systemd-networkd สำหรับเส้นทางแบบผู้รับเดียวที่กำหนดค่าผ่านส่วน [เส้นทาง] ค่าขอบเขตจะถูกเปลี่ยนเป็น "ลิงก์" ตามค่าเริ่มต้นเพื่อให้ตรงกับพฤติกรรมของคำสั่ง "เส้นทาง ip" มีการเพิ่มพารามิเตอร์ Isolated=true|false ในส่วน [Bridge] เพื่อกำหนดค่าแอตทริบิวต์ที่มีชื่อเดียวกันสำหรับบริดจ์เครือข่ายในเคอร์เนล ในส่วน [Tunnel] มีการเพิ่มพารามิเตอร์ภายนอกเพื่อตั้งค่าประเภทช่องสัญญาณเป็นภายนอก (โหมดการรวบรวมข้อมูลเมตา) ในส่วน [DHCPServer] มีการเพิ่มพารามิเตอร์ BootServerName, BootServerAddress และ BootFilename เพื่อกำหนดค่าที่อยู่เซิร์ฟเวอร์ ชื่อเซิร์ฟเวอร์ และชื่อไฟล์บูตที่ส่งโดยเซิร์ฟเวอร์ DHCP เมื่อบูตในโหมด PXE ในส่วน [เครือข่าย] พารามิเตอร์ L2TP ได้ถูกลบออกแล้ว แทนที่จะเป็นในไฟล์ .netdev คุณสามารถใช้การตั้งค่าท้องถิ่นใหม่โดยเชื่อมต่อกับอินเทอร์เฟซ L2TP
  • เพิ่มหน่วยใหม่ “[email protected]” ซึ่งสามารถใช้เพื่อรอให้อินเทอร์เฟซเครือข่ายเฉพาะปรากฏขึ้น
  • ขณะนี้คุณสามารถใช้ไฟล์ .netdev เพื่อสร้างอุปกรณ์ WLAN เสมือนได้ ซึ่งสามารถกำหนดค่าได้ในส่วน [WLAN]
  • ในไฟล์ .link/.network ส่วน [Match] จะใช้พารามิเตอร์ Kind สำหรับการจับคู่ตามประเภทอุปกรณ์ (“bond”, “bridge”, “gre”, “tun”, “veth”)
  • Systemd-resolved ได้รับการเปิดใช้ในขั้นตอนการบูตก่อนหน้านี้ รวมถึงการเรียกใช้จาก initrd หาก systemd-resolved มีอยู่ในอิมเมจ initrd
  • systemd-cryptenroll เพิ่มตัวเลือก --fido2-credential-algorithm เพื่อเลือกอัลกอริธึมการเข้ารหัสข้อมูลรับรองและตัวเลือก --tpm2-with-pin เพื่อควบคุมรายการ PIN เมื่อปลดล็อคพาร์ติชันโดยใช้ TPM มีการเพิ่มตัวเลือก tpm2-pin ที่คล้ายกันใน /etc/crypttab แล้ว เมื่อปลดล็อคอุปกรณ์ผ่าน TPM การตั้งค่าจะถูกเข้ารหัสเพื่อป้องกันการสกัดกั้นคีย์เข้ารหัส
  • systemd-timesyncd เพิ่ม D-Bus API สำหรับการดึงข้อมูลจากเซิร์ฟเวอร์ NTP ผ่าน IPC แบบไดนามิก
  • ในการพิจารณาความจำเป็นในเอาต์พุตสี คำสั่งทั้งหมดจะใช้การตรวจสอบตัวแปรสภาพแวดล้อม COLORTERM นอกเหนือจาก NO_COLOR, SYSTEMD_COLORS และ TERM ที่เลือกไว้ก่อนหน้านี้
  • ระบบ Meson build ใช้ตัวเลือก install_tag สำหรับการประกอบแบบเลือกและการติดตั้งส่วนประกอบที่จำเป็น: pam, nss, devel (pkg-config), systemd-boot, libsystemd, libudev เพิ่มตัวเลือกการสร้างการบีบอัดเริ่มต้นเพื่อเลือกอัลกอริธึมการบีบอัดสำหรับ systemd-journald และ systemd-coredump
  • เพิ่มการตั้งค่า "reboot-for-bitlocker" แบบทดลองเป็น sd-boot ใน loader.conf เพื่อบูต Microsoft Windows ด้วย BitLocker TPM

ที่มา: opennet.ru

เพิ่มความคิดเห็น