इसका उत्तर इस बात पर निर्भर करता है कि क्या आप का शाब्दिक अर्थ बिना किसी फ़ाइल सिस्टम से है या यदि प्रश्न का आशय यह है कि इसे वास्तव में कैसे बताया गया है, उससे थोड़ा अलग है। प्रश्न की व्याख्या कैसे की जाती है, इसमें थोड़े बदलाव के उत्तर हैं:
- बिना किसी ब्लॉक डिवाइस के लिनक्स चलाना पूरी तरह से संभव है और कुछ विशेष उपयोग के मामलों के लिए उपयोगी है।
- किसी भी फाइल सिस्टम के बिना लिनक्स चलाना कर्नेल कोड के कुछ हिस्सों को फिर से लिखने की आवश्यकता है और यह एक उपयोगी प्रयास होने की संभावना नहीं है।
- किसी भी फाइल डिस्क्रिप्टर का उपयोग किए बिना लिनक्स चलाना बहुत सारे प्रयासों की आवश्यकता है। मुझे पूरा यकीन है कि यह प्रयास के लायक नहीं होगा।
फ़ाइल सिस्टम के बिना कार्य प्रणाली बनाने के लिए आपको कर्नेल कोड के कुछ हिस्सों को फिर से लिखना होगा:
- हर थ्रेड में रूट डायरेक्टरी और करंट वर्किंग डायरेक्टरी होती है जो किसी न किसी फाइल सिस्टम की ओर इशारा करती है।
- प्रोग्राम को
execve
सिस्टम कॉल द्वारा शुरू किया जाता है जिसे एक फाइल सिस्टम से एक निष्पादन योग्य की आवश्यकता होती है।
- कर्नेल बूट प्रक्रिया के दौरान एक मेमोरी आधारित फाइल सिस्टम बनाता है।
एक प्रोग्राम को शुरू करने के बाद execve
इसका उपयोग करना संभव है इसके लिए निष्पादन योग्य को अनमैप करना जिससे यह शुरू किया गया था, हालांकि ऐसा करने के लिए बिना इसे तुरंत क्रैश करने के लिए पहले एक निष्पादन योग्य मेमोरी मैपिंग बनाना होगा जो फ़ाइल द्वारा समर्थित नहीं है, और इसे शुरू करने से पहले कुछ उपयोगी कोड के साथ इसे निष्पादित करना होगा और निष्पादन योग्य को अनमैप करना होगा।
इस प्रकार एक रनिंग यूजर मोड प्रोग्राम एक ऐसी स्थिति में मौजूद हो सकता है, जिसमें फाइलों द्वारा समर्थित कोई मेमोरी मैपिंग नहीं है और यह फाइलों द्वारा समर्थित सभी फाइल डिस्क्रिप्टर को बंद कर सकता है। यह रूट डायरेक्टरी और वर्तमान वर्किंग डायरेक्टरी को रोक नहीं सकता है, लेकिन यह इनसे बच सकता है।
इस अवस्था में हालांकि आप प्रोग्राम के तहत फाइल सिस्टम को चीरने के लिए कर्नेल कोड लागू कर सकते हैं और इसे चालू रख सकते हैं, लेकिन यह उपयोगी नहीं है। और फ़ाइल सिस्टम का उपयोग करने के एक मध्यवर्ती राज्य के माध्यम से जाने के बिना उस अंतिम स्थिति में प्रवेश करना किसी भी उपयोगी लाभ के लिए और भी अधिक काम आने वाला है।
कुछ विशेष उपयोग के मामलों के लिए एक उपयोगी सेटअप
ब्लॉक उपकरणों के उपयोग से बचना उपयोगी हो सकता है। बूट के दौरान कर्नेल एक मेमोरी फाइल सिस्टम बनाता है, और यह cpio
निष्पादित करने से पहले एक संग्रह से सामग्री के साथ उस फाइल सिस्टम को भी पॉप्युलेट कर सकता है init
। इस तरह आप किसी सिस्टम को बिना किसी ब्लॉक डिवाइस के मेमोरी सिस्टम फाइल से पूरी तरह से चला सकते हैं।
यह उन प्रणालियों के लिए उपयोगी हो सकता है जहां आप किसी भी राज्य को संरक्षित नहीं करना चाहते हैं और सिस्टम को रिबूट करने पर साफ स्लेट से शुरू करना चाहते हैं।
बेशक कर्नेल और cpio संग्रह को किसी भी तरह से मेमोरी में मौजूद होना चाहिए, इससे पहले कि कर्नेल को नियंत्रण दिया जाए। उन्हें कैसे मिला कि बूट लोडर के लिए एक नौकरी है। बूट लोडर को ब्लॉक डिवाइस से लोड किया जा सकता था, भले ही अंतिम रनिंग सिस्टम ब्लॉक डिवाइस का उपयोग नहीं करता हो। लेकिन बूट लोडर के लिए नेटवर्क पर बूट करके उदाहरण के लिए ब्लॉक डिवाइस का उपयोग किए बिना कर्नेल और cpio संग्रह प्राप्त करना संभव है।
useful exposure to the outside world