การปิดระบบของเคอร์เนล linux ทำงานอย่างไรภายใน
ฉันมีความคิดคร่าวๆเกี่ยวกับวิธีที่ userspace และ init-system (ไม่ว่าจะเป็น sysV / upstart / systemd แบบคลาสสิค) ทำงานเมื่อปิดระบบ (ที่สำคัญคือมีการสืบทอดคำสั่ง "หยุด!", "กรุณาหยุดตอนนี้จริงๆ", "กระบวนการที่ฉันต้องฆ่าคุณเพื่อหยุด" และรอ ... สิ่งที่เกิดขึ้น) ฉันไม่ทราบว่าการปิดระบบทำงานอย่างไรในเคอร์เนล (ซึ่งแน่นอนว่ายังมีสิ่งที่ต้องทำอีกมากมาย) ฉันพยายามตรวจสอบเอกสารเกี่ยวกับเคอร์เนลhttps://www.kernel.org/doc/htmldocs/และใช้เครื่องมือค้นหาเพื่อนของ NSAเพื่อให้ฉันได้เริ่มต้นค้นหาวิธีการทำงาน ฉันค้นหาด้วย SE U + L และไม่พบสิ่งใด (ฉันมองข้ามไปหรือไม่) อย่างไรก็ตามคำถามอาจมีความท้าทายอยู่บ้าง แต่จะได้รับคำตอบในเครือข่ายคำถาม & คำตอบนี้เนื่องจากฉันคิดว่าผู้คนจำนวนมากสนใจที่จะร่างภาพสิ่งที่เกิดขึ้นในเคอร์เนลลินุกซ์เมื่อปิดเครื่อง อาจมีการเปลี่ยนแปลงเพื่อเชื่อมโยงไปยังคำอธิบายรายละเอียดเพิ่มเติม คำตอบอาจรวมถึงการที่ระบบเรียกและสัญญาณ kernal ใดบ้าง? https://github.com/torvalds/linux/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/arch/x86/kernel/reboot.c น่าจะเป็นไฟล์ x86 ที่เกี่ยวข้องกับการรีบูต (แล้วปิดการปิดระบบใช่มั้ย) อาจพบข้อมูลโค้ดได้ที่นี่http://lxr.free-electrons.com/source/kernel/reboot.c#L176 สามารถใช้เพื่ออธิบาย 176 โมฆะ kernel_power_off (เป็นโมฆะ) 177 …