Unix file types
सात मानक यूनिक्स फ़ाइल प्रकार नियमित, निर्देशिका, प्रतीकात्मक लिंक, फीफो विशेष, ब्लॉक विशेष, चरित्र विशेष और पॉज़िक्स द्वारा परिभाषित साकेट हैं। विभिन्न ओएस-विशिष्ट कार्यान्वयन पोजिक्स की आवश्यकता से अधिक प्रकार की अनुमति देते हैं (जैसे। सोलारिस दरवाजे)। एक फ़ाइल के प्रकार को ls-l कमांड द्वारा पहचाना जा सकता है, जो फ़ाइल-सिस्टम अनुमति क्षेत्र के पहले वर्ण में प्रकार को प्रदर्शित करता है। नियमित फ़ाइलों के लिए, यूनिक्स किसी भी आंतरिक फ़ाइल संरचना को लागू या प्रदान नहीं करता है; इसलिए, उनकी संरचना और व्याख्या पूरी तरह से उनका उपयोग करने वाले सॉफ़्टवेयर पर निर्भर है। हालाँकि, फ़ाइल कमांड का उपयोग आमतौर पर यह निर्धारित करने के लिए किया जा सकता है कि उनमें किस प्रकार का डेटा है। प्रतिनिधित्व संख्यात्मक स्टेट संरचना में, फ़ाइल प्रकार और अनुमतियाँ (मोड) एक बिट फ़ील्ड में एक साथ संग्रहीत की जाती हैं, जिसका आकार कम से कम 12 बिट का होता है (सात संभावित प्रकार की फ़ाइलों में से प्रकार को निर्दिष्ट करने के लिए 3 बिट; अनुमतियों के लिए 9 बिट)। अनुमतियों के लिए लेआउट को पोसिक्स द्वारा कम से कम महत्वपूर्ण 9 बिट्स के रूप में परिभाषित किया गया है, लेकिन बाकी अव्याख्यायित हैं। परंपरा के अनुसार, मोड एक 16-बिट मान है जिसे बिना किसी प्रमुख शून्य के छह अंकों की अष्टक संख्या के रूप में लिखा जाता है। प्रारूप भाग में लीड 4-बिट (2 अष्टक अंक) होते हैं, और "010" (द्विआधारी में) आमतौर पर एक नियमित फ़ाइल के लिए होता है। अगले 3 बिट्स (1 अंक) का उपयोग आमतौर पर सेटुइड, सेटगिड और चिपचिपे के लिए किया जाता है। अनुमति रखने के लिए अंतिम भाग को पहले से ही पोसिक्स द्वारा परिभाषित किया गया है। एक विशिष्ट फ़ाइल के लिए एक उदाहरण "100644" है। इस प्रारूप को अन्य स्थानों के बीच गिट, टार और एआर में देखा जा सकता है। एस. आई. एस. डी. आई. आर. जैसे मैक्रो का उपयोग करके फ़ाइल के प्रकार का परीक्षण किया जा सकता है। इस तरह की जाँच आमतौर पर एस. आई. एफ. एम. टी. (अक्सर लीड 4 बिट्स कन्वेंशन के लिए ऑक्टल नंबर "170000") के साथ मोड को छिपाकर और यह जांचकर की जाती है कि परिणाम एस. आई. एफ. डी. आई. आर. से मेल खाता है या नहीं। एस. आई. एफ. एम. टी. एक मूल पोसिक्स अवधारणा नहीं है, बल्कि एक एक्स/ओपन सिस्टम इंटरफेस (एक्स. एस. आई.) विस्तार है; केवल पोसिक्स के अनुरूप सिस्टम कुछ अन्य तरीकों का उपयोग कर सकते हैं। मोड स्ट्रिंग उदाहरण के लिए ls-l आउटपुट में एक पंक्ति लेंः drwxr-xr-x 2 रूट रूट 0 जनवरी 1 1970 होम पोसिक्स लंबे प्रारूप (-l विकल्प) के लिए आउटपुट के प्रारूप को निर्दिष्ट करता है। विशेष रूप से, पहले क्षेत्र (पहले स्थान से पहले) को "फाइल मोड स्ट्रिंग" कहा जाता है, यहाँ drwxr-xr-x है। इसका पहला वर्ण फ़ाइल प्रकार का वर्णन करता है, यहाँ डी (निर्देशिका) है। इस स्ट्रिंग का बाकी हिस्सा फ़ाइल अनुमतियों को दर्शाता है। कार्यान्वयन के उदाहरण एल. एस. का जी. एन. यू. कोरूटिल्स संस्करण मोड स्ट्रिंग प्राप्त करने के लिए कॉल टू फाइलमोड () का उपयोग करता है, जो एक ग्लिब्स फ़ंक्शन (जी. एन. यू. एल. बी. लाइब्रेरी में उजागर) है। फ्रीबीएसडी एक सरल दृष्टिकोण का उपयोग करता है लेकिन कम संख्या में फ़ाइल प्रकारों की अनुमति देता है। निर्देशिका सबसे आम विशेष फ़ाइल निर्देशिका है। निर्देशिका फ़ाइल का लेआउट उपयोग किए गए फ़ाइल सिस्टम द्वारा परिभाषित किया जाता है। चूंकि यूनिक्स के तहत कई फाइल सिस्टम उपलब्ध हैं, दोनों देशी और गैर-देशी, कोई एक निर्देशिका फ़ाइल लेआउट नहीं है। एक निर्देशिका को ls-dl या स्टेट के आउटपुट में मोड क्षेत्र में पहले अक्षर के रूप में d के साथ चिह्नित किया जाता है, उदाहरण के लिए। $ls-dl/drwxr-xr-x 26 रूट रूट 4096 सितंबर 22 09:29/$स्टेट/फाइलः "/" आकारः 4096 ब्लॉकः 8 IO ब्लॉकः 4096 निर्देशिका उपकरणः 802h/2050d इनोडः 128 लिंकः 26 अभिगमः (0755/drwxr-xr-x) यूआईडीः (0/रूट) गीदः (0/रूट)। प्रतीकात्मक लिंक एक प्रतीकात्मक लिंक एक अन्य फ़ाइल का संदर्भ है। यह विशेष फ़ाइल संदर्भित फ़ाइल के पथ के पाठ प्रतिनिधित्व के रूप में संग्रहीत की जाती है (जिसका अर्थ है कि गंतव्य एक सापेक्ष पथ हो सकता है, या बिल्कुल भी मौजूद नहीं हो सकता है)। एक प्रतीकात्मक कड़ी को मोड स्ट्रिंग के पहले अक्षर के रूप में एल (लोअर केस एल) के साथ चिह्नित किया जाता है, जैसे। इस संक्षिप्त में एलएस-एल आउटपुटः एलआरडब्ल्यूएक्सआरडब्ल्यूएक्सआरडब्ल्यूएक्स. टर्मकैप->/यूएसआर/शेयर/मिस्क/टर्मकैप एलआरडब्ल्यूएक्सआरडब्ल्यूएक्सआरडब्ल्यूएक्स. एस03क्सीनेटडी->/init. d/xinetd एफआईएफओ (नामित पाइप) यूनिक्स की ताकतों में से एक हमेशा अंतर-प्रक्रिया संचार रही है। ओएस द्वारा प्रदान की जाने वाली सुविधाओं में पाइप हैं, जो एक प्रक्रिया के आउटपुट को दूसरे के इनपुट से जोड़ते हैं। यह ठीक है यदि दोनों प्रक्रियाएं एक ही मूल प्रक्रिया स्थान में मौजूद हैं, जो एक ही उपयोगकर्ता द्वारा शुरू की गई हैं, लेकिन ऐसी परिस्थितियां हैं जहां संचार प्रक्रियाओं को एफ. आई. एफ. ओ. का उपयोग करना चाहिए, जिन्हें यहां नामित पाइप के रूप में संदर्भित किया गया है। ऐसी ही एक परिस्थिति तब आती है जब प्रक्रियाओं को अलग-अलग उपयोगकर्ता नामों और अनुमतियों के तहत निष्पादित किया जाना चाहिए। नामित पाइप विशेष फाइल हैं जो फाइल सिस्टम में कहीं भी मौजूद हो सकती हैं। उन्हें mkfifo कमांड के साथ बनाया जा सकता है जैसा कि mkfifo मायपाइप में है। एक नामित पाइप को मोड स्ट्रिंग के पहले अक्षर के रूप में पी के साथ चिह्नित किया जाता है, जैसे। इस संक्षिप्त एल. एस.-एल. आउटपुटः पी. आर. डब्ल्यू.-आर. डब्ल्यू.----. मायपाइप साकेट में एक साकेट एक विशेष फाइल है जिसका उपयोग अंतर-प्रक्रिया संचार के लिए किया जाता है, जो दो प्रक्रियाओं के बीच संचार को सक्षम बनाता है। डेटा भेजने के अलावा, प्रक्रियाएं सेंडएमएसजी () और आरईसीवीएमएसजी () सिस्टम कॉल का उपयोग करके यूनिक्स डोमेन साकेट कनेक्शन में फ़ाइल डिस्क्रिप्टर भेज सकती हैं। नामित पाइपों के विपरीत जो केवल एक दिशात्मक डेटा प्रवाह की अनुमति देते हैं, साकेट पूरी तरह से डुप्लेक्स-सक्षम होते हैं। एक साकेट को मोड स्ट्रिंग के पहले अक्षर के रूप में एस के साथ चिह्नित किया जाता है, जैसे। एसआरडब्ल्यूएक्सआरडब्ल्यूएक्सआरडब्ल्यूएक्स/टीएमपी/. एक्स11-यूनिक्स/एक्स0 डिवाइस फाइल (ब्लॉक, कैरेक्टर) यूनिक्स में, लगभग सभी चीजों को फाइलों के रूप में संभाला जाता है और फाइल सिस्टम में एक स्थान होता है, यहां तक कि हार्ड ड्राइव जैसे हार्डवेयर उपकरण भी। सबसे बड़ा अपवाद नेटवर्क उपकरण हैं, जो फ़ाइल सिस्टम में नहीं आते हैं, लेकिन अलग से संभाले जाते हैं। उपकरण फ़ाइलों का उपयोग उपकरणों तक पहुँच के अधिकारों को लागू करने और फ़ाइलों पर संचालन को उपयुक्त उपकरण चालकों को निर्देशित करने के लिए किया जाता है। यूनिक्स चरित्र उपकरणों और ब्लॉक उपकरणों के बीच अंतर करता है। अंतर मोटे तौर पर इस प्रकार हैः वर्ण उपकरण केवल इनपुट की एक क्रमिक धारा प्रदान करते हैं या आउटपुट की एक क्रमिक धारा को स्वीकार करते हैं ब्लॉक उपकरण यादृच्छिक रूप से सुलभ हैं हालांकि, उदाहरण के लिए, डिस्क विभाजन में दोनों वर्ण उपकरण हो सकते हैं जो विभाजन और ब्लॉक उपकरणों पर ब्लॉकों को बिना-बफर यादृच्छिक पहुंच प्रदान करते हैं जो विभाजन पर ब्लॉकों को बफर यादृच्छिक पहुंच प्रदान करते हैं। एक वर्ण उपकरण को मोड स्ट्रिंग के पहले अक्षर के रूप में सी के साथ चिह्नित किया जाता है और एक ब्लॉक उपकरण को बी के साथ चिह्नित किया जाता है, जैसे। इस संक्षिप्त में एलएस-एल आउटपुटः क्रव-आरडब्ल्यू-आरडब्ल्यू-./देव/नल ब्रव-आरडब्ल्यू-----/ देव/एसडीए संदर्भ यूनिक्स फाइल सिस्टम प्रौद्योगिकी