क्या POSIX ओएस रूट में निर्देशिका की संख्या को सीमित करता है?


12

मैं POSIX मानक सीखने की कोशिश कर रहा हूं। यूनिक्स का उपयोग कर, मैं है /bin, /etc, /dev, /media, और आमतौर पर /optहै, लेकिन उस मानकीकृत या अपने कल्पना कार्यान्वयन के लिए किया जाता है? क्या रूट में कई निर्देशिकाएं हो सकती हैं, या क्या यह मानक द्वारा सीमित है?


3
इस क्षेत्र पर POSIX स्पर्श नहीं करता है।
थॉमस डिके

जवाबों:


17

द ओपन ग्रुप के प्रकाशित मानक के अनुसार , केवल आवश्यक निर्देशिकाएं हैं:

  • /
  • /dev, शामिल है जो console, nullऔरtty
  • /tmp, गारंटी योग्य लेकिन जरूरी नहीं कि संरक्षित हो।

लिनक्स फाउंडेशन एक फाइलसिस्टम पदानुक्रम मानक (FHS) को बनाए रखता है जो इसे उस निर्देशिका को शामिल करने के लिए विस्तारित करता है जिसे आप आमतौर पर लिनक्स सिस्टम पर देखेंगे:

  • /bin: आवश्यक उपयोगकर्ता कमांड बायनेरिज़
  • /boot: बूटलोडर की स्टेटिक फाइलें
  • /dev: डिवाइस फ़ाइलें
  • /etc: होस्ट-विशिष्ट सिस्टम कॉन्फ़िगरेशन
  • /home: उपयोगकर्ता के घर निर्देशिका (वैकल्पिक)
  • /lib: आवश्यक साझा पुस्तकालय और कर्नेल मॉड्यूल
  • /lib<qual>: वैकल्पिक स्वरूप आवश्यक साझा पुस्तकालय (वैकल्पिक)
  • /media: हटाने योग्य मीडिया के लिए माउंट बिंदु
  • /mnt: एक अस्थायी रूप से घुड़सवार फाइल सिस्टम के लिए माउंट बिंदु
  • /opt: ऐड-ऑन एप्लिकेशन सॉफ्टवेयर पैकेज
  • /root: रूट उपयोगकर्ता के लिए होम निर्देशिका (वैकल्पिक)
  • /run: रन-टाइम चर डेटा
  • /sbin: सिस्टम बायनेरिज़
  • /srv: इस प्रणाली द्वारा प्रदान की गई सेवाओं के लिए डेटा
  • /tmp: अस्थायी फ़ाइलें
  • साथ ही /usrपदानुक्रम और /varपदानुक्रम

FHS को किसी भी UNIX सिस्टम में शामिल करने की अनुमति देने के लिए यथासंभव सामान्य बनाया गया था। अतिरिक्त निर्देशिका किसी भी उचित प्रणाली में मौजूद होने की संभावना है, लेकिन यह POSIX द्वारा अनिवार्य नहीं है।

हालाँकि, ध्यान दें कि ओपन ग्रुप भी यही बताता है

जब तक नीचे निर्दिष्ट नहीं किया जाता है, तब तक कड़ाई से अनुरूपता वाले अनुप्रयोग इनमें से किसी भी निर्देशिका में फाइल बनाने की क्षमता नहीं मानेंगे।

चूंकि निर्देशिकाएं वास्तव में सिर्फ फाइलें हैं, इसका मतलब यह है कि एक सख्ती से अनुरूप अनुप्रयोग रूट स्तर पर कोई भी फाइल या निर्देशिका नहीं बनाएगा। इसलिए, POSIX जरूरी नहीं बताती है कि कोई वितरण मूल स्तर पर क्या हो सकता है, लेकिन यह बताता है कि इसके विनिर्देश के अनुरूप एक एप्लिकेशन यह नहीं मान सकता है कि यह करने में सक्षम होगा।


5
यह सवाल नहीं था कि कौन सी निर्देशिका मानक है , लेकिन पूछा गया कि क्या कोई सीमा थी । POSIX उस प्रश्न का उत्तर नहीं देता है।
थॉमस डिके

यह POSIX के एक उद्धरण की ओर इशारा किए बिना एक राय जोड़ता है।
थॉमस डिके

अंतिम पैराग्राफ जो मैंने संदर्भित किया है: "राज्य के लिए प्रतीत होता है"। POSIX इस क्षेत्र में एक सीमा का उल्लेख करने से बचता है , मतभेदों के बजाय समानता पर ध्यान केंद्रित करता है।
थॉमस डिके

1
धन्यवाद फॉक्स। आपका जवाब वह जानकारी थी जिसकी मुझे तलाश थी।
निकल्स

13

में 10.1 निर्देशिका संरचना और फ़ाइलें , POSIX सूचियों निर्देशिका जो चाहिए मौजूद हैं। लेकिन यह अन्य निर्देशिकाओं की संख्या पर कोई सीमा निर्दिष्ट नहीं करता है जो किसी फ़ाइल सिस्टम के रूट-स्तर पर मौजूद हो सकते हैं।

उस मामले के लिए, यह अन्य निर्देशिकाओं के आकार पर सीमाएं नहीं दिखाता है।

इस क्षेत्र में POSIX का ध्यान मतभेदों के बजाय सामान्यता पर केंद्रित है।


जैसा कि * nix सिस्टम संभावित रूप से हर डाइरेक्टरी (सहित /) एक रूट डायरेक्टरी हो सकता है, रूट डायरेक्टरी में प्रविष्टियों की संख्या पर ऊपरी सीमा लगाने के लिए यह मूर्खतापूर्ण होगा। /इस संबंध में विशेष रूप से विशेष नहीं है, इस प्रकार यह निम्नानुसार है कि /विशेष रूप से प्रविष्टियों की संख्या पर एक ऊपरी सीमा लगाने के लिए यह उतना ही मूर्खतापूर्ण होगा ।
एक CVn

8

किसी निर्देशिका में प्रविष्टियों की संख्या के लिए कोई सीमा नहीं है, या तो POSIX में या विशिष्ट यूनिक्स कार्यान्वयन में। उपनिर्देशिका की संख्या के लिए एक अप्रत्यक्ष सीमा हो सकती है, जो कि अधिकतम हार्ड लिंक काउंट है (प्रत्येक उपनिर्देशिका की ..प्रविष्टि निर्देशिका की एक हार्ड लिंक है); यह कई सामान्य फाइल सिस्टम के लिए 2 16 है , जो एक निर्देशिका को 65533 उपनिर्देशिका (कम से कम उन फाइल सिस्टम के लिए जो सीमित ..रूप से प्रविष्टियों को संग्रहीत करता है ) के लिए सीमित करता है । आप इससे पहले खराब प्रदर्शन मारना शुरू कर देंगे। POSIX के अनुसार, एक कार्यान्वयन को एक फ़ाइल ( _POSIX_LINK_MAX) पर केवल 8 हार्ड लिंक का समर्थन करने की अनुमति है , लेकिन कोई वास्तविक कार्यान्वयन 6 असीमित सीमाओं तक सीमित नहीं है। और वैसे भी, ext4 सहित कई फाइल सिस्टम पर, हार्ड लिंक काउंट को बनाए नहीं रखा जाता है.. प्रविष्टियाँ, इसलिए एकमात्र सीमा यह है कि फ़ाइल सिस्टम पर कितनी जगह या कितने इनोड उपलब्ध हैं।

POSIX सिस्टम पर फ़ाइलों के संगठन के बारे में बहुत कुछ नहीं कहता है। यह केवल कुछ फाइलों के अस्तित्व को अनिवार्य करता है । रूट निर्देशिका में केवल अनिवार्य प्रविष्टियाँ हैं /devऔर /tmp। जैसे अन्य अभ्यस्त यूनिक्स प्रविष्टियों /usr, /var, /bin, /etc, /lib, /home, आदि कर रहे हैं यूनिक्स सम्मेलनों कि POSIX द्वारा संहिताबद्ध नहीं कर रहे हैं।

लिनक्स पर, FHS क्लासिक्स और एक जोड़े को अधिक कोडित करता है। अधिकांश लिनक्स वितरण FHS प्रविष्टियों से चिपके रहते हैं। अन्य यूनिक्स प्रणालियों में आमतौर पर एक ही प्रविष्टि होती है, शायद कुछ अंतरों के साथ, लेकिन संख्या लगभग उसी के बारे में होती है।

हालांकि यह हतोत्साहित किया जाता है प्रणाली प्रशासकों, और अधिक बना सकते हैं: सबसे चीजों के लिए अच्छी तरह से परिभाषित स्थानों (सॉफ्टवेयर के तहत चला जाता है देखते हैं /usrया /optप्रणाली डेटा के तहत चला जाता है, /var, उपयोगकर्ता डेटा के तहत चला जाता है /net, माउंट अंक के नीचे जा /mediaया /mntआदि), तो वहाँ शायद ही कभी होता है शीर्ष स्तर पर नई निर्देशिका बनाने का कोई अच्छा कारण।


यह सही नहीं है। अधिकांश "उचित" फाइलसिस्टम में प्रति डायरेक्टरी की अधिकतम संख्या, या प्रति उपकरण इनकोड की अधिकतम संख्या होती है। हालाँकि, यह आमतौर पर उन निर्देशिकाओं की संख्या के सापेक्ष बहुत बड़ा होता है, जिन्हें आप ड्राइव के रूट में देख सकते हैं।
केविन

@ केविन ओह, अच्छा बिंदु, आम फाइलसिस्टम पर आप सबसे पहले कड़ी कड़ी गणना को मारेंगे, और वह 16 बिट्स जितनी कम हो सकती है।
गिल्स एसओ- बुराई को रोकें '

@ केविन हालांकि यह ext4 पर मामला नहीं है, लेकिन उपलब्ध स्पेस (ब्लॉक या इनोड्स) के अलावा उपनिर्देशिकाओं की संख्या पर एक सीमा नहीं लगती है। क्या आप प्रति निर्देशिका उप-सीमाओं की संख्या पर कुछ अन्य सीमा के बारे में सोच रहे थे?
गिल्स एसओ- बुराई को रोकना '

एक ठीक से डिज़ाइन किया गया फ़ाइल सिस्टम .. निर्देशिका प्रविष्टियों के लिए हार्ड लिंक नहीं बनाता है। ठीक से डिज़ाइन किए गए फ़ाइल सिस्टम में एक निर्देशिका की लिंक गिनती 1 है जब तक कि मैन्युअल रूप से हार्ड लिंक नहीं बनाए जाते हैं।
schul

1
नहीं, 100% POSIX अनुरूप फाइल सिस्टम पर ऐसी कोई सीमा नहीं है। जैसा कि पहले ही उल्लेख किया गया है, पोसिक्स की आवश्यकता नहीं है। और .. अन्य निर्देशिकाओं के लिए हार्डलिंक होना। यदि वे हैं, तो यह एक कार्यान्वयन विवरण है जो V7 फाइल सिस्टम में शुरू किए गए हैक का परिणाम है। अन्य POSIX अनुरूप फाइल सिस्टम हैं जो पूरी तरह से अलग काम करते हैं।
विद्वान

2

FAT के विपरीत, UNIX द्वारा उपयोग किए गए फाइल सिस्टम में रूट डायरेक्टरी पर विशेष आकार की सीमा नहीं होती है, लेकिन एक बार विभाजन पूरा हो जाने के बाद आप अधिक जोड़ नहीं पाएंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.