GNU Shepherd, מנהל שירות שפותח על ידי Guix

שנתיים לאחר היווצרות הגרסה העיקרית האחרונה, הוכרזה לציבור יציאתה של הגרסה החדשה של מנהל השירותים של GNU Shepherd 0.9 (שנקרא בעבר dmd) . היא מפותחת על ידי מפתחי הפצת GNU Guix כחלופה לאתחול SysV-init המודע לתלות המערכת.

Shepherd מספק פונקציונליות של מרחב המשתמש באופן אסינכרוני כ-services , שהם ב-Shepherd פונקציות גנריות וסוגי נתוני אובייקטים המיוצאים עבור Shepherd לשימוש בהרחבת מערכת ההפעלה הבסיסית בצורה מוגדרת. שלא כמו systemd, תהליך ניטור של מרחב המשתמש פועל כמשתמש זה.

על שפרד

ליבת מודל האתחול של מרחב המשתמש של Shepherd היא מושג ההרחבה, צורה של קומפוזביליות שבה שירותים מתוכננים לחפוף עם שירותים אחרים, ולהרחיב אותם בהתנהגויות מורכבות או מיוחדות יותר לפי הצורך. זה מבטא את יחסי התלות מבוססי-מופעים הנמצאים במערכות init מודרניות רבות, מה שהופך את המערכת למודולרית, אך גם מאפשר לשירותים אינטראקציה משתנה עם שירותים אחרים בדרכים שרירותיות.

Shepherd מספקת גם שירותים וירטואליים המאפשרים מסירה דינמית על פני מחלקה של אובייקטי שירות קשורים, כגון כל אלה שיוצרים מופעים של סוכן העברת דואר (MTA) עבור המערכת.

מערכת הנשלטת על ידי דמון שפרד יכולה לייצג את מרחב המשתמש שלה כגרף א-מחזורי מכוון, כאשר "שירות המערכת" (אחראי על שלבי האתחול וההפעלה המוקדמים) כשורש וכל השירותים המאתחלים לאחר מכן כהרחבות של הפונקציונליות של שירות המערכת , באופן ישיר או טרנזיטיבי על פני שירותים אחרים.

מכיוון שהוא כתוב ומוגדר ב-Guile Scheme, GNU Shepherd מתוכנן להיות ניתן לתכנות בקלות על ידי מנהל המערכת, אך ניתן להשתמש בו גם לניהול פרופילים לפי משתמש של דמונים ושירותים לא מורשים.

השירותים והתצורה שלה מאוחסנים באופן אחיד כקוד Scheme מונחה עצמים, ולמרות שמערכת שירותים מרכזית מסופקת עם מערכת Guix הבסיסית, ניתן להצהיר באופן גמיש שירותים חדשים באופן שרירותי, ובאמצעות מערכת האובייקטים של Guile, GOOPS, ניתן להגדיר מחדש שירותים קיימים לפי שיקול דעתו של המשתמש על ידי בקשה מ-Shepherd לכתוב מחדש באופן דינמי שירותים בדרכים ספציפיות בעת יצירת מופעים.

GNU Shepherd תוכנן במקור לעבוד עם GNU Hurd ומאוחר יותר אומץ על ידי מערכת Guix.

תכונות חדשות עיקריות של GNU Shepherd 0.9

גרסה חדשה זו מדגישה את יישום הקונספט של שירותים זמניים (חולפים), אשר מנותקים אוטומטית לאחר סיום עקב סיום תהליך או קריאה לשיטת "stop", שעשויה להידרש עבור שירותים מסונתזים שלא ניתן להפעיל אותם מחדש לאחר סיום.

שינוי בולט נוסף הוא שעבור שירותים ללא הפרמטר "#:log-file" , הפלט מסופק ל-syslog , ועבור שירותים עם הפרמטר "#:log-file", הלוג נכתב לקובץ נפרד המציין את זמן הלוגים בתהליך Shepherd הלא-פריבילגי, המאוחסן בספרייה $XDG_DATA_DIR.

בנוסף, ראוי לציין כי נוהל "make-inetd-constructor" נוסף ליצירת שירותים דומים ל-inetd וכי נוהל "make-systemd-constructor" נוסף ליצירת שירותים המופעלים בפעילות הרשת (סגנון systemd socket הַפעָלָה).

שינויים בולטים נוספים בגרסה החדשה כוללים:

  • נוסף נוהל להפעלת שירות הרקע:
  • נוספו פרמטרים ":supplementary-groups", "#:create-session" ו-"#:resource-limits" להליך "make-forkexec-constructor".
  • פעולה ללא נעילה מובטחת בזמן ההמתנה לקבצי PID.
  • הוסרה תמיכה עבור קומפילציה עם Guile 2.0. תיקנו בעיות בעת שימוש בגירסאות Guile 3.0.5-3.0.7.
  • ספריית Fibres 1.1.0 ואילך נדרשת כעת כדי לעבוד.
  • תיעוד ודוגמאות משופרים
  • לא ניתן עוד לבנות את Shepherd עם Guile 2.0
  • תקן באג המהדר של Guile 3.0.[5-7]
  • תרגומים מעודכנים

לבסוף, אם אתם מעוניינים ללמוד עוד או רוצים להשיג את הגרסה החדשה הזו, תוכלו לעיין בפרטים, בתיעוד ולהוריד מהקישור הבא.


הוסף כמקור מועדף בגוגל