คำตอบจะขึ้นอยู่กับว่าคุณหมายถึงแท้จริงโดยไม่มีระบบไฟล์หรือถ้าคำถามมีวัตถุประสงค์ที่จะตีความแตกต่างกันเล็กน้อยจากวิธีการระบุไว้จริง คำตอบสำหรับความแตกต่างเล็กน้อยในการตีความคำถามคือ:
- การใช้งาน Linux โดยไม่ต้องใช้อุปกรณ์บล็อคใด ๆเป็นไปได้และมีประโยชน์สำหรับกรณีการใช้งานเฉพาะบางอย่าง
- การรันลีนุกซ์โดยไม่มีระบบไฟล์ใด ๆจะต้องมีการเขียนใหม่บางส่วนของรหัสเคอร์เนลและไม่น่าจะเป็นประโยชน์
- การใช้งานลีนุกซ์โดยไม่ใช้ไฟล์อธิบายใด ๆจะต้องใช้ความพยายามอย่างมาก ฉันค่อนข้างแน่ใจว่านั่นจะไม่คุ้มค่ากับความพยายาม
เหตุผลที่คุณต้องเขียนใหม่บางส่วนของรหัสเคอร์เนลเพื่อสร้างระบบการทำงานที่ไม่มีระบบไฟล์คือ:
- ทุกเธรดมีไดเรกทอรีรากและไดเรกทอรีทำงานปัจจุบันซึ่งต้องชี้ไปที่ระบบไฟล์บางระบบ
- โปรแกรมเริ่มต้นโดยการ
execve
เรียกของระบบซึ่งจำเป็นต้องมีไฟล์ที่เรียกทำงานได้จากระบบไฟล์
- เคอร์เนลสร้างระบบไฟล์ที่ใช้หน่วยความจำในระหว่างกระบวนการบูต
หลังจากที่โปรแกรมได้เริ่มใช้งานexecve
แล้วมันเป็นไปได้ที่จะยกเลิกการทำแผนที่ไฟล์ที่เริ่มต้นแม้ว่ามันจะสามารถทำได้โดยไม่ต้องหยุดทำงานทันทีก่อนอื่นต้องสร้างการแมปหน่วยความจำที่สามารถเรียกใช้งานได้ซึ่งไม่มีไฟล์สำรองไว้ และจะต้องเริ่มต้นด้วยรหัสที่มีประโยชน์บางอย่างก่อนที่จะกระโดดไปหามันและเลิกทำแผนที่ปฏิบัติการ
ดังนั้นโปรแกรมโหมดผู้ใช้ที่ทำงานอยู่จะอยู่ในสถานะที่ไม่มีการแม็พหน่วยความจำที่สำรองข้อมูลโดยไฟล์และสามารถปิดไฟล์ descriptor ทั้งหมดที่สำรองข้อมูลด้วยไฟล์ มันไม่สามารถหยุดการมีไดเรกทอรีรากและไดเรกทอรีการทำงานปัจจุบัน แต่มันสามารถละเว้นได้
ดังนั้นในสถานะนี้คุณสามารถใช้เคอร์เนลโค๊ดเพื่อตัดระบบไฟล์ออกจากใต้โปรแกรมและทำให้มันทำงานต่อไปได้ แต่มันก็ไม่ได้ฟังว่ามันมีประโยชน์ และการเข้าสู่สถานะสุดท้ายนั้นโดยไม่ต้องผ่านสถานะระดับกลางของการใช้ระบบไฟล์จะยิ่งทำงานได้มากขึ้นเพื่อประโยชน์ที่ไม่มีประโยชน์
การตั้งค่าที่มีประโยชน์สำหรับกรณีการใช้งานเฉพาะบางอย่าง
การหลีกเลี่ยงการใช้อุปกรณ์บล็อคอาจมีประโยชน์ ในระหว่างการบูตเคอร์เนลสร้างระบบแฟ้มหน่วยความจำและก็ยังสามารถเติมว่าระบบไฟล์ที่มีเนื้อหาจากที่เก็บก่อนที่จะดำเนินcpio
init
ด้วยวิธีนี้คุณสามารถเรียกใช้ระบบทั้งหมดจากระบบไฟล์ที่ใช้หน่วยความจำโดยไม่มีอุปกรณ์บล็อกใด ๆ เพื่อสำรองข้อมูล
สิ่งนี้มีประโยชน์สำหรับระบบที่คุณไม่ต้องการรักษาสถานะใด ๆ และต้องการให้ระบบเริ่มต้นจากกระดานชนวนใหม่ทั้งหมดเมื่อรีบูตเครื่อง
แน่นอนเคอร์เนลและไฟล์เก็บถาวร cpio ต้องมีอยู่ในหน่วยความจำก่อนที่เคอร์เนลจะได้รับการควบคุม วิธีที่พวกเขามีงานสำหรับบูตโหลดเดอร์ บูตโหลดเดอร์อาจโหลดสิ่งเหล่านั้นจากอุปกรณ์บล็อกแม้ว่าระบบสุดท้ายที่ทำงานไม่ได้ใช้อุปกรณ์บล็อก แต่ก็เป็นไปได้เช่นกันที่บูตโหลดเดอร์ได้รับเคอร์เนลและไฟล์เก็บถาวร cpio โดยไม่ต้องใช้อุปกรณ์บล็อกเช่นโดยการบู๊ตผ่านเครือข่าย
useful exposure to the outside world