לאחר ארבעה חודשי פיתוח מוצגת שחרור מנהל המערכת systemd 255. בין השיפורים החשובים ביותר: תמיכה בייצוא כוננים באמצעות NVMe-TCP, רכיב systemd-bsod להצגת הודעות שגיאה במסך מלא, ה-systemd-vmspawn כלי להפעלת מכונות וירטואליות, כלי השירות varlinkctl לניהול שירותי Varlink, כלי עזר systemd-pcrlock לניתוח אוגרי TPM2 PCR ויצירת כללי גישה, מודול אימות pam_systemd_loadkey.so.
שינויים מרכזיים במהדורה החדשה:
- נוסף רכיב "systemd-storagetm", המאפשר לייצא אוטומטית את כל התקני הבלוק המקומיים באמצעות מנהל ההתקן NVMe-TCP (NVMe over TCP), המאפשר גישה לכונני NVMe דרך הרשת (NVM Express over Fabrics) באמצעות פרוטוקול TCP. יחידה חדשה "storage-target-mode.target" אחראית על מתן גישה במצב NVMe דרך TCP, שניתן להפעיל אותו בשלב האתחול על ידי ציון "rd.systemd.unit=storage-target-mode.target" ב- שורת הפקודה של kernel, למשל, אם אתה צריך לגשת מרחוק לכונן למטרות אבחון.
- נוסף רכיב "systemd-bsod" עם יישום אנלוגי של "מסך המוות הכחול", המאפשר לך להציג הודעות על שגיאות קריטיות (LOG_EMERG) בצורה של הודעה על מסך מלא בשלב האתחול.
- נוסף כלי השירות "systemd-vmspawn", שהוא אנלוגי לכלי השירות systemd-nspawn להפעלת תמונת מערכת הפעלה במכונה וירטואלית (כלי השירות systemd-nspawn נועד להפעלת קונטיינרים, ו-systemd-vmspawn מספק ממשק דומה עבור מכונות וירטואליותנכון לעכשיו, רק קצה אחורי מבוסס QEMU זמין להפעלת מכונות וירטואליות.
- נוסף כלי שירות "varlinkctl" להתקשרות ובדיקה פנימית של שירותים באמצעות פרוטוקול Varlink.
- תוכנית השירות "systemd-pcrlock" נוספה כדי לנתח ולחזות את המצבים של אוגרי TPM2 PCR (Platform Configuration Register) ויצירת כללי גישה המאוחסנים באינדקס TPM2 NV המאפשרים גישה לאובייקטי TPM2, כגון מפתחות הצפנת דיסק, בלבד מרכיבים חתומים דיגיטלית שהושקו בשלב ההורדה המאומת. התוצאה של בקשת מצב PCR ב-TPM2, יומן אירועי האתחול הנוכחי שנוצר על ידי קושחת UEFI (/sys/kernel/security/tpm0/binary_bios_measurements) או יומן TPM2 שנשמר מקומית (/run/log/systemd/tpm2-measure) יכול לשמש כנתוני קלט לניתוח .log). תמיכה בכללי גישה מתמשכת נוספה ל-systemd-cryptsetup, systemd-cryptenroll ו-systemd-repart.
- נוסף מודול PAM pam_systemd_loadkey.so, שנועד לחלץ אוטומטית ממחזיק המפתחות של הליבה את ביטוי הסיסמה המשמש ב-cryptsetup כדי לפתוח את מערכת קבצי השורש המוצפנת, ולהגדיר את ביטוי הסיסמה הזה כאסימון אימות (PAM authtok). ניתן להשתמש במודול, למשל, כדי להגדיר גישה לביטול נעילה אוטומטי למחזיק מפתחות GNOME ולארנק KDE כאשר התחברות אוטומטית מופעלת.
- נוספה תמיכה בכניסה למצב שינה עם שמירת תוכן זיכרון להחלפת קבצים המאוחסנים במערכת הקבצים Btrfs.
- המאפיינים MemoryPeak, MemorySwapPeak, MemorySwapCurrent ו-MemoryZSwapCurrent נוספו ליחידות, התואמות למאפייני memory.peak, memory.swap.peak, memory.swap.current ו-memory.zswap.current הזמינים דרך cgroup v2. מידע על מאפיינים אלה כלול בפלט "סטטוס systemctl".
- הדרך להתחיל שירותים עובדה מחדש, עברה לשימוש בקריאה posix_spawn עם האפשרויות CLONE_VM ו-CLONE_VFORK כדי להתחיל תהליך, ושימוש בקובץ הפעלה נפרד של systemd-executor כדי להגדיר את התהליך להתחיל. בעבר, תהליכים הסתעפו עם פונקציית המזלג, העתקת זיכרון תהליך השליטה במצב העתקה על כתיבה וביצוע ההגדרות הדרושות (הרכבת מרחבי שמות והגדרת CGroup) לפני השקת קובץ ההפעלה היעד דרך קריאת ה-exec, מה שהוביל בעיות הנובעות מחוסר היכולת לגשת לכמה ממשקי API. Glibc נמצא בשלב שבין ביצוע הפונקציות fork ו-exec.
- קוד למעקב אחר תהליכים פנימיים הועבר לשימוש ב-PIDFD במקום ב-PID בסביבות עם ליבה התומכת ב-PIDFD (PIDFD משויך לתהליך ספציפי ואינו משתנה, בעוד ש-PID יכול להיות משויך לתהליך אחר לאחר התהליך הנוכחי המשויך ל- ש-PID מסתיים). הטמיע את היכולת ליצור יחידות היקף באמצעות PIDFD במקום PID לבחירת תהליכים.
- התמיכה בהיררכיות ספריות נפרדות הופסקה (כאשר /usr מותקן בנפרד מהשורש, או שהספריות /bin ו- /usr/bin, /lib ו- /usr/lib מופרדות). בעתיד, הוחלט גם להפסיק את התמיכה ב-cgroups v1, סקריפטים של שירות System V ומשתני SystemdOptions EFI.
- הפקודה "systemctl switch-root" מוגבלת לשימוש ב-initrd בלבד. כדי להחליף את מערכת קבצי השורש בסביבה רגילה, השתמש ב-"systemctl soft-reboot".
- הוצא משימוש הפרמטרים SuspendMode, HybridSleepMode, HibernateStat ו-HybridSleepState בקטע "[Sleep]" של systemd-sleep.conf. כעת מתעלמים מפרמטרים אלה ויכולים לקבל רק ערכי ברירת מחדל.
- האפשרות SurviveFinalKillSignal נוספה ליחידות, המאפשרת להתעלם מהאות הסופי של SIGTERM/SIGKILL שהופק במהלך הכיבוי, מה שעשוי להיות שימושי עבור השארת יחידה פועלת במהלך אתחול רך של המערכת במצב אתחול רך.
- נוספה הגדרת NFTSet המאפשרת לך להשתמש במזהי cgroup כדי להחליף לוגיקה בחוקי חומת אש.
- נוספה אפשרות ConditionSecurity=measured-uki כדי להבטיח שניתן להפעיל את היחידה רק על מערכת שאותחל מתמונת ליבה מאומתת בפורמט UKI.
- systemd-boot הוסיפה מקשי קיצור חדשים "B" ו-"O" כדי לאתחל ולכבות את המערכת מתפריט האתחול. נוספה הגדרה "מושבתת בתפריט" כדי להשבית את תפריט האתחול.
- אפשרויות חדשות נוספו לכלי השירות systemd-repart: "-copy-from" כדי לקבל תיאורי מחיצות מתמונת מערכת הקבצים שצוינה, "-copy-source" כדי לציין את ספריית הבסיס עבור הפרמטר CopyFiles, "-make-ddi =confext", "—make-ddi=sysext" ו-"--make-ddi=portable" ליצירת סוגי DDI שונים, ו-"--tpm2-device-key" כדי לאגד את הדיסק למפתח ציבורי TPM2 ספציפי.
- בכלי השירות journalctl, הערך "+N" נוסף לפרמטר "-lines" כדי להציג את N הרשומות הישנות ביותר.
- נוסף דגל "--json" ל-udevadm עבור פלט בפורמט JSON.
- נוספה אפשרות "--tldr" ל-systemd-analyze, systemd-tmpfiles, systemd-sysusers, systemd-sysctl ו-systemd-binfmt כדי להדפיס רק את פרמטרי התצורה בפועל ללא רווחים או הערות.
- תמיכה בארכיטקטורת LoongArch64 נוספה למערכת המשנה של seccomp. אפשר את השימוש ב-seccomp כדי לסנן קריאות מערכת בשירותים הפועלים כמשתמש שאינו שורש מבלי להפעיל את ההגדרה NoNewPrivileges=yes.
- נוספה אפשרות "--tmpfs" לכלי השירות systemd-mount כדי לטעון מופע 'tmpfs' חדש.
מקור: OpenNet.ru
