लिनक्स और विंडोज के बीच बड़ा अंतर, कम से कम जब उनके फाइल सिस्टम और निर्देशिका पेड़ों की बात आती है, तो यह है कि लिनक्स में "सब कुछ एक फाइल है", और सब कुछ एक रूट से उतरता है। यह लगभग सभी यूनिक्स-व्युत्पन्न ओएस जैसे कि बीएसडी, ओएस एक्स, सोलारिस, आदि पर भी लागू होता है, लेकिन मैं "लिनक्स" को सामान्य कहने के लिए जा रहा हूं (यदि पूरी तरह से सही नहीं है)।
लेकिन व्यवहार में इसका क्या मतलब है?
विंडोज अपने फाइल सिस्टम के लिए कई नामित जड़ों की अनुमति देता है। आप इन्हें ड्राइव अक्षर समझते हैं: C: D: E:इत्यादि। प्रत्येक के पास एक जड़ ( \) है, और एक पेड़ जो इससे उतरता है। विंडोज के हाल के संस्करण वॉल्यूम माउंटपॉइंट जैसी चीजों के लिए अनुमति देते हैं, जहां एक वॉल्यूम (जिसे आप एक विभाजन पर विचार करेंगे) एक मौजूदा, खाली फ़ोल्डर में रखा जा सकता है। तो, बजाय D:अपने ऑप्टिकल (सीडी / डीवीडी / बीआर) ड्राइव के रूट का प्रतिनिधित्व करने के, आप C:\Opticalइसके बजाय इसे माउंट कर सकते हैं । यह लिनक्स क्या करता है के समान है। लिनक्स में हर चीज के लिए एक अंतर्निहित, एकल-रूटेड, ऑब्जेक्ट नेमस्पेस भी है जो कि लिनक्स का उपयोग करता है और ऑब्जेक्ट मैनेजर द्वारा प्रबंधित किया जाता है , लेकिन ज्यादातर उपयोगकर्ता इसे शायद ही कभी संदर्भित देखते हैं क्योंकि यह मुख्य रूप से कर्नेल उपयोग के लिए है।
लिनक्स में एक रूट है /:। सब कुछ इससे उतरता है, और यह जरूरी नहीं कि आपकी हार्ड ड्राइव का प्रतिनिधित्व करे। हार्ड ड्राइव, ऑप्टिकल ड्राइव, मेमोरी कार्ड, नेटवर्क शेयर, प्रिंटर, स्कैनर्स, सीपीयू, रैम, प्रोसेसेस, ... सब कुछ इस सिंगल नेमस्पेस के अंदर कहीं दर्शाया गया है, और मानक फ़ाइल प्रबंधन एपीआई के साथ किसी भी प्रक्रिया तक पहुंच सकता है, आपको अनुमान लगा सकता है पहुंच का एक उच्च पर्याप्त स्तर। सिर्फ इसलिए कि आप इसे पढ़ या लिख सकते हैं इसका मतलब यह नहीं है कि यह लिनक्स में आपकी हार्ड ड्राइव पर एक फ़ाइल है। उदाहरण के लिए, उपकरणों को आम तौर पर माउंट किया जाता है /dev, इसलिए वहां चीजों को एक्सेस करने का मतलब है कि आप अक्सर डिवाइस से बात कर रहे हैं - शायद यह साउंड कार्ड, या स्कैनर, या कैमरा, आदि। इन्हें डिवाइस फ़ाइलों के रूप में जाना जाता है । Procfsएक विशेष "फाइलसिस्टम" है जो सामान्य रूप से /procप्रत्येक रनिंग प्रक्रिया के लिए "निर्देशिका" है और प्रत्येक डाइरेक्टरी में फाइलों के साथ है जिसमें कमांड लाइन जैसी चीजें हैं जो उस प्रक्रिया को लागू करने के लिए उपयोग की जाती हैं, मेमोरी मैप्स, ओपन फाइल्स आदि। Sysfs एक और है विशेष फ़ाइलसिस्टम (पर घुड़सवार /sys) का उपयोग चल रहे कर्नेल ऑब्जेक्ट्स के बारे में जानकारी के धन को उजागर करने के लिए किया जाता है और किसी विशेष फ़ाइल पर बस लिखने से रनिंग कर्नेल को ठीक करने के लिए भी इस्तेमाल किया जा सकता है।