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 อื่นๆ ที่คุณคิดว่าคุ้มค่าที่จะกล่าวถึงในรายการนี้ คุณสามารถแจ้งให้เราทราบได้ผ่านทางส่วนความคิดเห็นด้านล่าง