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

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

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

על שפרד

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

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

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

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

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

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

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

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

עוד אחד מהשינויים הבולטים הוא עבור שירותים ללא הפרמטר ""#: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]
  • תרגומים מעודכנים

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


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.