ค้นหาเว็บไซต์

6 ระบบ 'init' Linux ที่ทันสมัยที่สุด (1992-2023)


ใน Linux และระบบปฏิบัติการที่คล้ายกับ Unix อื่นๆ กระบวนการ init (การเริ่มต้น) เป็นกระบวนการแรกที่ดำเนินการโดยเคอร์เนล ณ เวลาบูต ซึ่งมีกระบวนการ ID (PID) ของ 1 ที่ถูกดำเนินการในเบื้องหลังจนกว่าระบบจะปิดตัวลง

กระบวนการ init จะเริ่มต้นกระบวนการ Linux อื่นๆ ทั้งหมด นั่นคือ daemons บริการ และกระบวนการเบื้องหลังอื่นๆ ดังนั้นจึงเป็นแม่ของกระบวนการอื่นๆ ทั้งหมดในระบบ

กระบวนการสามารถเริ่มต้นกระบวนการลูกอื่นๆ จำนวนมากบนระบบได้ แต่ถ้ากระบวนการหลักไม่ทำงาน init จะกลายเป็นกระบวนการระดับบนสุดของกระบวนการเด็กกำพร้า

ในช่วงหลายปีที่ผ่านมา ระบบ init จำนวนมากได้ถือกำเนิดขึ้นใน Linux รุ่นหลักๆ และในคู่มือนี้ เราจะมาดูระบบเริ่มต้นที่ดีที่สุดบางระบบที่คุณสามารถใช้งานบนระบบปฏิบัติการ Linux ได้

1. เริ่มต้นระบบ V

System V (SysV) เป็นรูปแบบ init ที่พัฒนาแล้วและได้รับความนิยมบนระบบปฏิบัติการที่มีลักษณะคล้าย Unix และเป็นพาเรนต์ของกระบวนการทั้งหมดบนระบบ Unix/Linux SysV เป็นระบบปฏิบัติการ Unix เชิงพาณิชย์ระบบแรกที่ได้รับการออกแบบ

ลีนุกซ์เกือบทั้งหมดใช้รูปแบบเริ่มต้นของ SysV เป็นครั้งแรก ยกเว้น Gentoo ซึ่งมีรูปแบบเริ่มต้นที่กำหนดเองและ Slackware ซึ่งใช้รูปแบบเริ่มต้นสไตล์ BSD

หลายปีผ่านไป เนื่องจากข้อบกพร่องบางประการ จึงมีการพัฒนาการแทนที่ SysV init หลายครั้งเพื่อสร้างระบบ init ที่มีประสิทธิภาพและสมบูรณ์แบบยิ่งขึ้นสำหรับ Linux

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

2. ระบบดี

SystemD เป็นรูปแบบเริ่มต้นที่ค่อนข้างใหม่บนแพลตฟอร์ม Linux เปิดตัวใน Fedora 15 โดยเป็นกลุ่มเครื่องมือสำหรับการจัดการระบบที่ง่ายดาย วัตถุประสงค์หลักคือเพื่อเริ่มต้น จัดการ และติดตามกระบวนการของระบบทั้งหมดในกระบวนการบูตและในขณะที่ระบบกำลังทำงาน

Systemd init มีความโดดเด่นจากระบบ Unix init แบบดั้งเดิมอื่นๆ โดยสิ้นเชิง ในแง่ที่ระบบเข้าถึงการจัดการระบบและบริการได้จริง นอกจากนี้ยังเข้ากันได้กับสคริปต์เริ่มต้น SysV และ LBS

มันมีคุณสมบัติเด่นบางประการดังต่อไปนี้:

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

3. พุ่งพรวด

Upstart เป็นระบบเริ่มต้นตามเหตุการณ์ที่พัฒนาโดยผู้สร้าง Ubuntu เพื่อทดแทนระบบเริ่มต้น SysV โดยจะเริ่มงานและกระบวนการต่างๆ ของระบบ ตรวจสอบในขณะที่ระบบกำลังทำงาน และหยุดการทำงานระหว่างการปิดระบบ

เป็นระบบ init แบบไฮบริดที่ใช้ทั้งสคริปต์เริ่มต้น SysV และสคริปต์ Systemd คุณลักษณะเด่นบางประการของระบบ Init ของ Upstart ได้แก่:

  • เดิมพัฒนาขึ้นสำหรับ Ubuntu Linux แต่สามารถทำงานบนดิสทริบิวชันอื่นๆ ทั้งหมดได้
  • การเริ่มต้นและการหยุดงานและบริการตามเหตุการณ์
  • เหตุการณ์จะถูกสร้างขึ้นในระหว่างการเริ่มต้นและการหยุดงานและบริการ
  • เหตุการณ์สามารถส่งโดยกระบวนการของระบบอื่นได้
  • การสื่อสารกับกระบวนการเริ่มต้นผ่าน D-Bus
  • ผู้ใช้สามารถเริ่มและหยุดกระบวนการของตนได้
  • การเกิดใหม่ของบริการที่ตายกะทันหันและอีกมากมาย

4. โอเพนอาร์ซี

OpenRC เป็นรูปแบบ init ที่อิงการพึ่งพาสำหรับระบบปฏิบัติการที่คล้ายกับ Unix และเข้ากันได้กับ SysV init แม้ว่าจะมีการนำการปรับปรุงบางอย่างมาสู่ Sys V แต่คุณต้องจำไว้ว่า OpenRC ไม่ใช่การแทนที่ไฟล์ /sbin/init ได้อย่างสมบูรณ์

มันมีคุณสมบัติที่โดดเด่นบางอย่างเช่น:

  • มันสามารถทำงานบนลีนุกซ์รุ่นอื่น ๆ รวมถึง Gentoo และบน BSD
  • รองรับสคริปต์เริ่มต้นที่เริ่มต้นโดยฮาร์ดแวร์
  • รองรับไฟล์การกำหนดค่าเดียว
  • ไม่รองรับการกำหนดค่าต่อบริการ
  • วิ่งเป็นภูต
  • การเริ่มต้นบริการแบบขนานและอีกมากมาย

5. รูนิต

runit ยังเป็นระบบ init ข้ามแพลตฟอร์มที่สามารถทำงานบน GNU/Linux, Solaris, *BSD และ Mac OS X และเป็นทางเลือกแทน SysV init ซึ่งมีการดูแลบริการ

มันมาพร้อมกับคุณประโยชน์และส่วนประกอบที่น่าทึ่งบางอย่างที่ไม่มีใน SysV init และอาจเป็นระบบ init อื่นๆ ใน Linux ซึ่งได้แก่:

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

6.ส6

s6 นำเสนอชุดเครื่องมือขนาดกะทัดรัดสำหรับ UNIX ซึ่งปรับแต่งมาเพื่อการกำกับดูแลกระบวนการ คล้ายกับ daemontools และ runit มันอำนวยความสะดวกในการดำเนินการกับกระบวนการและเดมอน

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

ตามที่ฉันได้กล่าวไปก่อนหน้านี้ ระบบ init จะเริ่มต้นและจัดการกระบวนการอื่นๆ ทั้งหมดบนระบบ Linux นอกจากนี้ SysV เป็นรูปแบบเริ่มต้นหลักบนระบบปฏิบัติการ Linux แต่เนื่องจากจุดอ่อนด้านประสิทธิภาพบางประการ โปรแกรมเมอร์ระบบจึงได้พัฒนาโปรแกรมทดแทนหลายรายการ

ที่นี่ เราได้ดูการแทนที่บางส่วนแล้ว แต่อาจมีระบบ init อื่นๆ ที่คุณคิดว่าคุ้มค่าที่จะกล่าวถึงในรายการนี้ คุณสามารถแจ้งให้เราทราบได้ผ่านทางส่วนความคิดเห็นด้านล่าง