לאחר שלושה חודשים של פיתוח זמין שחרור מנהל המערכת במקום 261שינויים עיקריים כוללים: הכנה לתמיכה ב-API לאימות גיל, תמיכה בתת-מערכות Kexec Handover ו-Live Update Orchestration להפעלה מחדש ללא אובדן מצב, תת-מערכת IMDS (שירות מטא-נתונים של Instance), פונקציונליות להגנה על אתחול במערכות ללא TPM פיזי (מודול פלטפורמה מהימנה), ורכיב systemd-sysinstall עם יישום מתקין.
בין שינויים במהדורה החדשה:
- רכיב חדש נוסף systemd-sysinstall עם יישום של מתקין מערכת הפעלה פשוט שניתן לשלוט בו משורת הפקודה או דרך ממשק טקסט אינטראקטיבי. הפונקציונליות של systemd-sysinstall נוצרת מיכולות systemd קיימות: הוא משתמש systemd-repart, כדי להתקין את הליבה וליצור את תפריט האתחול - הפקודה "קישור bootctl"כדי להתקין את טוען האתחול אתחול מערכת — הפקודה "bootctl install" להגדרת תצורה ראשונית של המערכת המותקנת (לדוגמה, בחירת המיקום ופריסת המקלדת) — systemd-creds.
- כהכנה ליישום הדרישות חוקים אודות שילוב ה-API במערכת ההפעלה לאימות גיל במסד הנתונים userdb השדה birthDate נוסף כדי לציין את תאריך הלידה של המשתמש. ניתן להשתמש בשדה זה ב-xdg-desktop-portal (שפותח עבור הפצות) ובשירות AccountsService כדי לספק ליישומים מידע על קטגוריית הגיל של המשתמש דרך ממשק D-Bus org.freedesktop.AgeVerification1 או org.freedesktop.ParentalControls. האפשרות --birth-date נוספה לכלי homectl להגדרת גיל.
- למטפל PID1 נוספה תמיכה עבור תת-מערכות Linuxליבות לואו (תזמור עדכונים חיים) ו קה"ו (מסירת קסק), המאפשר לך לאתחל מחדש ולעדכן את הליבה באופן מלא מבלי להפסיק את העבודה ומבלי לאבד את מצב המערכת, המכשירים והתהליכים. קה"ו מספק את היכולת להריץ ליבה חדשה מהישנה מבלי לאבד את מצב המערכת, ו לואו מיישם את שימור מצב המכשירים וה-RAM, וגם מבטיח את המשכיות הפעולות הקשורות ל-DMA ולעיבוד פסיקות.
ב-systemd, יחידות מערכת ומשתמש יכולות כעת לשמור תיאורי קבצים לפני קריאה ל-kexec ולשחזר אותם לאחר אתחול מחדש של הליבה דרך kexec. יחידות יכולות גם ליצור sessions משלהן. לואו, נשמר ושוחזר במהלך ביצוע kexec. כדי לאפשר שימור מצב אחסון של מתאר הקבצים, השתמש בהגדרה FileDescriptorStorePreserve=yes. - תת-המערכת יושמה systemd-imdsd, המספק ממשק API מבוסס Varlink IPC עבור תוכניות מקומיות כדי לגשת לשירותי IMDS (שירות מטא-נתונים של מופעים) המוצעים על ידי ספקי ענן שונים. IMDS מאפשר למכונות וירטואליות לקבל מידע על סביבת הענן, כגון תצורת רשת, מיקום גיאוגרפי של הצומת, סוג המעבד וגודל האחסון. systemd-imdsd מספק גם ממשק API ברמה נמוכה לגישה לשדות בודדים וגם ממשק ברמה גבוהה לשאילתות באמצעות מפתחות סטנדרטיים הממופים למפתחות ספציפיים לפלטפורמה. כלי השירות systemd-imdsd, המאפשר ייבוא שדות IMDS למערכת החשבונות המקומית, נוסף כדי לקיים אינטראקציה עם systemd-imdsd.
מסד נתונים חדש, hwdb.d/40-imds.hwdb, נוסף כדי לזהות פלטפורמות ענן על סמך מידע SMBIOS ולקבוע את פונקציונליות ה-IMDS הזמינה בצומת הנוכחי. פלטפורמות ענן מזוהות כוללות את Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS ו-Vultr. המטפל systemd-imds-generator זמין להחלפה אוטומטית של השירות לאחזור נתונים דרך IMDS בעת הפעלה על פלטפורמת ענן נתמכת. ניתן ליצור תמונות אוניברסליות התומכות ב-IMDS בעת הפעלה בסביבות ענן, אך יכולות לפעול גם ללא IMDS. - В systemd-stub פונקציונליות סוד האתחול יושמה, המאפשרת יצירת מפתח המבוסס על משתנה EFI המאוחסן באזור שאינו נגיש למערכת ההפעלה ומאותחל עם ערך אקראי. המפתח מועבר ל-initrd דרך הקובץ /.extra/boot-secret. ייתכן שיידרש תכונה זו כדי ליצור מפתח אקראי ספציפי למערכת לאימות אתחול או הצפנה במערכות ללא TPM חומרתי (Trusted Platform Module).
- נוסף systemd-tpm2-swtpm.service כדי להפעיל את אמולטור שבב ה-TPM swtpm (אמולטור TPM תוכנה), שניתן להשתמש בו כדי לחזור אוטומטית ליישום TPM תוכנה לאתחול מאובטח במערכות ללא TPM חומרה. TPM תוכנה פועל במרחב המשתמש ואינו מספק את אותה רמת הגנה כמו TPM חומרה, אך במצבים מסוימים השימוש בו מוצדק בהשוואה לפעולה ללא TPM. לדוגמה, TPM תוכנה יכול להשיג מפתח הצפנת מחיצה באמצעות הפונקציונליות החדשה "סוד אתחול" ולהשתמש ב-ESP (מחיצת מערכת EFI) בדיסק כדי לאחסן את מצבו. פרמטר שורת הפקודה systemd.tpm2_software_fallback של הליבה מוצע להפעלה אוטומטית של TPM תוכנה.
- הוכרז כיציב והוצב ברכיב /usr/bin/ systemd-sysupdate, שנועד לזהות, להוריד ולהתקין עדכונים באופן אוטומטי באמצעות מנגנון אטומי להחלפת מקטעים, קבצים או ספריות (נעשה שימוש בשני מקטעים/קבצים/ספריות עצמאיים, אחד מהם מכיל את המשאב הפועל כעת, והשני הוא המקום שבו מותקן העדכון הבא, ולאחר מכן המקטעים/קבצים/ספריות מוחלפים).
- В נפתרה על ידי המערכת היכולת להגדיר מחדש או לציין רשומות DNS חדשות על ידי הצבת קבצי JSON בספריות systemd/resolve/static.d/ יושמה. שלא כמו /etc/hosts, קבצים חדשים אלה יכולים לא רק לקשור כתובות IP לשמות מארחים אלא גם להגדיר רשומות DNS RR של משאבים מלבד "A" ו-"AAAA". בנוסף, systemd-resolved תומך כעת בהגדרות גודל מטמון DNS: DNSCacheSize, MulticastDNSCacheSize ו-LLMNRCacheSize.
- תועלת נוספתאחסון' לבדיקת התקני אחסון וניהול החיבור של התקני בלוק ומערכות קבצים.
- כחלק מ יוזמות כדי להפחית תלויות, libsystemd טוען כעת באופן דינמי את הספריות libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk ו-libcryptsetup על ידי קריאה לפונקציה dlopen() במצבים בהם הפונקציות שלהן נדרשות בפועל.
- В systemd-tmpfiles הדגל --inline נוסף, המאפשר הגדרת הנחיות בשורת הפקודה מבלי ליצור קבצי תצורה ב-tmpfiles.d/ ומבלי לשלוח הגדרות דרך STDIN. סוג חדש של הנחיית k/K נוסף להגדרת יכולותנוסף קובץ התצורה tmpfiles.d/root.conf, אשר מגדיר את זכויות הגישה ל-0555 (-r-xr-xr-x) עבור ספריית השורש (/) כדי להגן מפני ציון זכויות שגויות בעת יצירה דינמית של מערכת קבצי השורש.
- בכלי השירות bootctl ודא שנשמר עותק גיבוי של טוען האתחול systemd-boot ושהגרסה הישנה רשומה ב-UEFI כאפשרות אתחול גיבוי.
- В systemd-vmspawn נוספה תמיכה באתחול ישיר של הליבה ללא שימוש בקושחת UEFI. יושמה האפשרות --firmware-features להפעלה או השבתה סלקטיבית של תכונות קושחה בודדות. נוספה מצב --console=headless להפעלת מכונה וירטואלית ללא קונסולה או מסך. נוספה האפשרות --image-disk-type לבחירת סוג אחסון הבלוקים המשמש במכונה הווירטואלית (virtio-blk, virtio-scsi, nvme או scsi-cd). נוספה האפשרות --coco (מחשוב סודי) להפעלת הצפנת זיכרון של מכונה וירטואלית באמצעות טכנולוגיית AMD SEV-SNP.
- В systemd-hostnamed תמיכה בצירוף תגיות מותאמות אישית למערכת הנוכחית נוספה לקובץ /etc/machine-info באמצעות הפרמטר Tags. לאחר מכן ניתן להשתמש בתגיות אלו כדי להחיל הגדרות באופן סלקטיבי, תוך אימות על ידי הביטוי ConditionMachineTag.
- נוספו הגדרות EventLoopRateLimitIntervalSec ו- EventLoopRateLimitBurst כדי להגביל את קצב לולאת עיבוד האירועים ב- PID1 ולפנות משאבי CPU במקרה של לולאה.
- מנהל השירות כולל כעת הגדרה של MinimumUptimeSec לקביעת זמן הפעולה המינימלי של המערכת (15 שניות כברירת מחדל). אם כיבוי או אתחול מתבצעים לפני שחלף זמן זה, עיכוב מתאים נוסף לשלב הסופי.
- יושמו הגדרות חדשות עבור יחידות: CPUSetPartition להגדרת סוג מחיצת cpuset ל-cgroup (root, isolated, member), RestrictFileSystemAccess לאפשר הפעלה של קבצי הפעלה בלבד שאומתו על ידי חתימה דיגיטלית באמצעות dm-verity, ו- CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec לקבלת התראות על עומס גבוה של המעבד וקלט/פלט.
- רשימת המדדים שמספקת חברת השירות הורחבה. דוח systemdלדוגמה, נוספו מידע על גודל הזיכרון הפיזי וליבות המעבד הפעילות, נתונים על תוכן השדות SMBIOS ו-/etc/machine-info, מידע על תמיכה במצב מחשוב סודי ומידע על יצרן השבב TPM2.
- В systemd-oomd יושמה היכולת להגדיר כללים לסינון תהליכים כאשר המערכת חווה מצבי זיכרון נמוכים. ניתן להגדיר כללים בספרייה /etc/systemd/oomd/rules.d/ או ביחידות שירות באמצעות הוראת OOMRule.
- В systemd-socket-proxy נוספה תמיכה בפרוטוקול PROXY, התואם לגרסה הראשונה של פרוטוקול haproxy.
- В systemd-networkd יושם שרת backend חדש של sd-dhcp-relay עבור ממסרי DHCP. ההגדרות הבאות במקטע [DHCPServer] הוצאו משימוש: BindToInterface, RelayTarget, RelayAgentCircuitId ו-RelayAgentRemoteId. במקום זאת, השתמש בפרמטר DHCPRelay במקטע [Network] ובסדרה של הגדרות חדשות במקטע [DHCPRelay] ובקובץ networkd.conf. הפקודה networkctl dhcp-lease INTERFACE נוספה לשמירת קובץ dump של מידע על קישור כתובות IP (חכירות DHCP).
- אל השירות systemd-nspawn האפשרות --restrict-address-families נוספה, יחד עם ההגדרה RestrictAddressFamilies בקבצי .nspawn כדי להגביל את משפחות כתובות ה-socket הנמצאות בשימוש במכולה. בגרסאות עתידיות, רק משפחות AF_INET, AF_INET6 ו-AF_UNIX יהיו מותרות כברירת מחדל.
- התמיכה בפורמט מסד הנתונים הישן של udev (גרסה 0.x) הופסקה. שדרוג מהיר מגרסאות systemd קודמות לגרסה זו. 247 (opennet.ru) לא נתמך עוד.
- בעת בנייה עם ספריית musl C, נדרשת כעת לפחות גרסה 1.2.6 של musl.
בנוסף, ניתן לציין שחרור פרוייקט מערכת משוחררת 261, אשר מפתחת פורק של systemd אשר מסיר קוד שעלול לשמש לריגול אחר משתמשים. שינויי הגרסה המוצעים מגבילים את עצמם להסרת קוד שמוסיף את השדה birthDate ל-userdb עם תאריך הלידה של המשתמש, ואת האפשרות --birth-date לכלי homectl להגדרת גיל.
מקור: linux.org.ru
