GNU Shepherd ผู้จัดการบริการที่พัฒนาโดย Guix

หลังจากสองปีของการก่อตัวของเวอร์ชันหลักล่าสุด ได้รับการประกาศเมื่อเขาเผยแพร่การเปิดตัวของ เวอร์ชันใหม่ของตัวจัดการบริการ GNU ต้อน 0.9 (ก่อนหน้านี้เรียกว่า dmd) ซึ่งกำลัง พัฒนาโดยผู้พัฒนา GNU Guix distribution เป็นทางเลือกแทนการเริ่มต้น SysV-init ที่รับรู้การพึ่งพาระบบ

คนเลี้ยงแกะ ให้ฟังก์ชันพื้นที่ผู้ใช้แบบอะซิงโครนัสเป็นบริการซึ่งใน Shepherd เป็นฟังก์ชันทั่วไปและชนิดข้อมูลอ็อบเจ็กต์ที่ส่งออกเพื่อใช้โดย Shepherd เพื่อขยายระบบปฏิบัติการพื้นฐานในลักษณะที่กำหนดไว้ ต่างจาก systemd กระบวนการตรวจสอบพื้นที่ผู้ใช้ทำงานในฐานะผู้ใช้รายนั้น

เกี่ยวกับเชพเพิร์ด

แก่นแท้ของโมเดล Shepherd ของการเริ่มต้นพื้นที่ผู้ใช้คือแนวคิดของการขยาย ซึ่งเป็นรูปแบบของความสามารถในการทำงานร่วมกันได้ ซึ่งบริการต่างๆ ได้รับการออกแบบมาเพื่อซ้อนทับบริการอื่นๆ เสริมด้วยพฤติกรรมที่ซับซ้อนหรือเฉพาะเจาะจงมากขึ้นตามที่ต้องการ นี่เป็นการแสดงออกถึงความสัมพันธ์ที่อิงตามอินสแตนซ์ที่พบในระบบบูตสมัยใหม่จำนวนมาก ซึ่ง ทำให้ระบบเป็นแบบแยกส่วน แต่ยังช่วยให้บริการสามารถโต้ตอบกันได้ บริการโดยพลการ

คนเลี้ยงแกะ ยังให้บริการเสมือนที่เรียกว่า ที่อนุญาตไดนามิกไดนามิกบนคลาสของอ็อบเจ็กต์บริการที่เกี่ยวข้อง เช่น ที่ยกตัวอย่าง Mail Transfer Agent (MTA) สำหรับระบบ

ระบบที่ควบคุมโดย Shepherd daemon สามารถแสดงพื้นที่ผู้ใช้เป็นกราฟ acyclic ที่กำหนด โดยมี "บริการของระบบ" (รับผิดชอบสำหรับขั้นตอนการบู๊ตก่อนเวลาและการเริ่มต้นใช้งาน) เป็นรูทและบริการเริ่มต้นที่ตามมาทั้งหมดเป็นส่วนขยายของฟังก์ชันการทำงานของบริการระบบ ไม่ว่าจะโดยตรงหรือโดยผ่านบริการอื่นๆ

ถูกเขียนและกำหนดค่าใน Guile Scheme GNU Shepherd ได้รับการออกแบบมาให้สามารถตั้งโปรแกรมได้สูง โดยผู้ดูแลระบบ แต่ยังสามารถใช้เพื่อจัดการโปรไฟล์ต่อผู้ใช้ของ daemons และบริการที่ไม่ได้รับสิทธิพิเศษ

บริการและการตั้งค่าของคุณจะถูกเก็บไว้อย่างสม่ำเสมอเป็น Scheme code เชิงวัตถุและแม้ว่าชุดบริการหลักจะมาพร้อมกับระบบ Guix พื้นฐาน แต่บริการใหม่ตามอำเภอใจสามารถประกาศได้อย่างยืดหยุ่นและผ่าน GOOPS ระบบวัตถุของ Guile บริการที่มีอยู่สามารถกำหนดใหม่ได้ตามดุลยพินิจของผู้ใช้โดยขอให้ Shepherd เขียนบริการใหม่แบบไดนามิกใน วิธีการเฉพาะในการสร้างอินสแตนซ์

GNU Shepherd เดิมได้รับการออกแบบให้ทำงานร่วมกับ GNU Hurd และนำมาใช้ในภายหลังโดย Guix System

คุณสมบัติใหม่หลักของ GNU Shepherd 0.9

ในเวอร์ชั่นใหม่ที่นำเสนอนี้ขอเน้นว่า แนวคิดของบริการชั่วคราวถูกนำมาใช้ (ชั่วคราว) ซึ่งจะถูกตัดการเชื่อมต่อโดยอัตโนมัติหลังจากการยุติเนื่องจากการยุติกระบวนการหรือการเรียกใช้เมธอด "หยุด" ซึ่งอาจจำเป็นสำหรับบริการสังเคราะห์ที่ไม่สามารถเริ่มใหม่ได้หลังจากสิ้นสุด

การเปลี่ยนแปลงที่โดดเด่นอีกอย่างคือ สำหรับบริการที่ไม่มีพารามิเตอร์ "#:log-file", เอาต์พุตไปยัง syslog มีให้ และสำหรับบริการที่มีพารามิเตอร์ "#:log-file" บันทึกจะถูกเขียนไปยังไฟล์แยกต่างหากเพื่อระบุเวลาของบันทึกในกระบวนการ Shepherd ที่ไม่มีสิทธิพิเศษซึ่งจัดเก็บไว้ในไดเร็กทอรี $XDG_DATA_DIR

นอกจากนี้ ควรสังเกตว่ามีการเพิ่มขั้นตอน "make-inetd-constructor" เพื่อสร้างบริการที่คล้ายกับ inetd และมีการเพิ่มขั้นตอน "make-systemd-constructor" เพื่อสร้างบริการที่เปิดใช้งานในกิจกรรมเครือข่าย ( สไตล์การเปิดใช้งานซ็อกเก็ต systemd)

จากการเปลี่ยนแปลงอื่น ๆ ที่โดดเด่นกว่ารุ่นใหม่นี้:

  • เพิ่มขั้นตอนในการเริ่มบริการพื้นหลัง:
  • เพิ่มพารามิเตอร์ “:supplementary-groups”, “#:create-session” และ “#:resource-limits” ให้กับขั้นตอน “make-forkexec-constructor”
  • รับประกันการทำงานที่ปราศจากการล็อกขณะรอไฟล์ PID
  • ลบการสนับสนุนการคอมไพล์ด้วย Guile 2.0 แก้ไขปัญหาเมื่อใช้ Guile เวอร์ชัน 3.0.5-3.0.7
  • ต้องใช้ไลบรารี Fibers 1.1.0 หรือใหม่กว่าจึงจะใช้งานได้
  • ปรับปรุงเอกสารและตัวอย่าง
  • ไม่สามารถสร้าง Shepherd ด้วย Guile 2.0 . ได้อีกต่อไป
  • แก้ไขข้อบกพร่องของคอมไพเลอร์ Guile 3.0[5-7]
  • การแปลที่อัปเดต

ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม หรือต้องการรับเวอร์ชันใหม่นี้ สามารถศึกษารายละเอียด เอกสารประกอบ และดาวน์โหลดจาก ลิงค์ต่อไปนี้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา