- systemd เป็นชุดแอปพลิเคชันแบบบูรณาการที่เกี่ยวข้องกับการจัดการระบบ ทำหน้าที่แทนกระบวนการ init แบบดั้งเดิม และครอบคลุมฟังก์ชันหลากหลาย เช่น การจัดการเซสชันผู้ใช้ การจัดการอุปกรณ์ การบันทึกล็อก และการตั้งเวลา
- ผู้ใช้ Linux ส่วนใหญ่ไม่ได้สนใจข้อดีข้อเสียของ systemd มากนัก แต่บางส่วนก็ต่อต้านหรือสนับสนุนอย่างหนักแน่น
- ดิสทริบิวชัน Linux กระแสหลักได้นำ systemd มาใช้ ซึ่งส่วนใหญ่เป็นเพราะข้อดีในสภาพแวดล้อมเดสก์ท็อปทั่วไป
ปัญหาใน Embedded Linux
- ในระบบ Embedded ข้อดีของ systemd อาจกลับกลายเป็นข้อเสียได้
- หากยกตัวอย่างการใช้หน่วยความจำบน Raspberry Pi 3B จะเห็นว่า systemd ใช้ทรัพยากรมากกว่า SystemV init
- เดมอนบันทึกล็อกของ systemd เช่น systemd-journald ก็ใช้ทรัพยากรมากเช่นกัน
- ในสภาพแวดล้อมแบบ Embedded จำเป็นต้องมีทางเลือกที่เล็กกว่า และ systemd ไม่ได้ถูกปรับแต่งมาให้เหมาะกับสภาพแวดล้อมลักษณะนี้
ความซับซ้อนของ systemd และเวลาในการบูต
- systemd อาจช่วยลดเวลาในการบูตได้ แต่ในระบบ Embedded กลับอาจทำให้เวลาในการบูตเพิ่มขึ้น
- ความซับซ้อนและฟังก์ชันของ systemd เป็นสิ่งจำเป็นในสภาพแวดล้อมทั่วไป แต่ในสภาพแวดล้อมแบบ Embedded มักไม่จำเป็น
การขาดหายไปของทางเลือก
- บริการหลายอย่างที่ systemd เข้ามาแทนที่นั้นมีทางเลือกที่เล็กกว่าและเร็วกว่าในสภาพแวดล้อม Embedded แต่บางอย่างกลับไม่มีทางเลือกอีกต่อไป
- ตัวอย่างเช่น เดมอน udev ถูกรวมเข้าไปในโครงการ systemd แล้ว และแทบไม่มีทางเลือกอิสระเหลืออยู่
การขยายตัวของ systemd และการลดลงของทางเลือก
- systemd มีฟังก์ชันจำนวนมาก และมอบความสะดวกให้กับผู้ดูแลดิสทริบิวชัน
- เมื่อ systemd ดูดซับฟังก์ชันเพิ่มขึ้นเรื่อย ๆ แรงจูงใจในการดูแลรักษาทางเลือกก็ลดลง
- สิ่งนี้อาจก่อให้เกิดปัญหาได้ หาก systemd ไม่เหมาะสมกับสภาพแวดล้อมแบบ Embedded
บทสรุป
- systemd อาจมีประสิทธิภาพน้อยกว่าทางเลือกแบบดั้งเดิมในสภาพแวดล้อม Embedded
- การหาดิสทริบิวชัน Linux กระแสหลักที่ไม่ใช้ systemd กำลังยากขึ้นเรื่อย ๆ
- การขยายตัวของ systemd กำลังพา Linux ไปสู่อนาคตที่ยากจะจินตนาการได้หากไม่มี systemd
- จำเป็นต้องเตรียมพร้อมในการพัฒนาหรือดูแลรักษาทางเลือก และต้องสนับสนุนดิสทริบิวชันที่ไม่ใช้ systemd ต่อไป
4 ความคิดเห็น
จะมีแค่ systemd ที่เป็นปัญหาก็คงไม่ใช่หรอก…
busyboxของinitเป็นทางเลือกที่ยอดเยี่ยมสำหรับsystemdสำหรับอุปกรณ์ฝังตัวและหากเป็นระบบที่มีข้อจำกัดเหมือนอุปกรณ์ฝังตัว ก็ไม่จำเป็นต้องใช้
udevโดยสามารถรวม device node แบบคงที่ไว้ในรูทไฟล์ซิสเต็มได้สำหรับผมแล้วอาจเป็นกรณียกเว้นในบรรดากรณียกเว้นก็จริง แต่ในฐานะคนที่ลง Ubuntu บน Galaxy Tab แล้วลง VS Code ใช้งานต่อบนนั้น บางทีก็ถึงกับอยากร้องไห้เพราะ systemd เหมือนกันครับ..
ความคิดเห็นจาก Hacker News
systemd แก้ปัญหาได้หลายอย่าง และชุมชนก็ตอบสนองไวและให้ความช่วยเหลือดีมาก
OpenEmbedded/Yocto, Devuan, Gentoo รองรับ init system ได้หลายแบบ
Rustysd เป็นตัวจัดการบริการที่จำลองพฤติกรรมบางส่วนของ systemd
คนที่ชอบ systemd ส่วนใหญ่คือผู้ดูแลดิสทริบิวชัน
ปรัชญา Unix คือการใช้เครื่องมือเล็ก ๆ มาแก้ปัญหา
runit ยอดเยี่ยมสำหรับการกำกับดูแลแอปพลิเคชันและบริการ
สามารถรันระบบ embedded โดยไม่ใช้ udev ได้
RPi เปลี่ยน form factor ของบอร์ดควบคุมอุตสาหกรรมให้กลายเป็นเดสก์ท็อป
Chimera Linux กำลังไปในทิศทางที่น่าสนใจในด้านการจัดการบริการและการจัดการ login/seat
ขนาดติดตั้งของ systemd คือปัญหาใหญ่ที่สุดใน Embedded Linux
systemd เป็นปัญหาใน Embedded Linux เพราะใช้ RAM 250MB
SysVInit อาศัยยูทิลิตีภายนอกในการเริ่มและหยุดโปรเซส