डिवाइस फ़ाइल

यूनिक्स जैसे ऑपरेटिंग प्रणाली में, डिवाइस फ़ाइल या विशेष फ़ाइल डिवाइस ड्राइवर के लिए इंटरफ़ेस (कंप्यूटर विज्ञान) है जो फाइल प्रणाली में दिखाई देती है जैसे कि यह सामान्य कम्प्यूटर फाइल हो। डॉस, ओएस/2, और विंडोज में भी विशेष फ़ाइलें हैं। ये विशेष फाइलें मानक इनपुट/आउटपुट प्रणाली कॉल के माध्यम से अपने डिवाइस ड्राइवर का उपयोग करके एप्लिकेशन प्रोग्राम को डिवाइस के साथ इंटरैक्ट करने की अनुमति देती हैं। मानक प्रणाली कॉल का उपयोग करना कई प्रोग्रामिंग कार्यों को सरल करता है, और डिवाइस सुविधाओं और कार्यों को ध्यान किए बिना संगत उपयोगकर्ता-स्थान इनपुट/आउटपुट प्रणाली की ओर जाता है।

अवलोकन
डिवाइस फ़ाइलें सामान्यतः मानक उपकरणों (जैसे प्रिंटर और सीरियल पोर्ट) के लिए सरल इंटरफेस प्रदान करती हैं, किंतु उन उपकरणों पर विशिष्ट अद्वितीय संसाधनों तक पहुंचने के लिए भी उपयोग की जा सकती हैं, जैसे कि डिस्क विभाजन हैं। इसके अतिरिक्त, डिवाइस फ़ाइलें उन प्रणाली संसाधनों (कंप्यूटर विज्ञान) तक पहुँचने के लिए उपयोगी होती हैं जिनका किसी वास्तविक उपकरण से कोई संबंध नहीं होता है, जैसे डेटा सिंक और यादृच्छिक संख्या जनरेटर है।

यूनिक्स जैसे ऑपरेटिंग प्रणाली में दो सामान्य प्रकार की डिवाइस फाइलें होती हैं, जिन्हें कैरेक्टर स्पेशल फाइल्स और ब्लॉक स्पेशल फाइल्स के रूप में जाना जाता है। इनके मध्य का अंतर यह है कि ऑपरेटिंग प्रणाली और हार्डवेयर द्वारा कितना डेटा पढ़ा और लिखा जाता है। इन्हें एक साथ नामित पाइपों के विपरीत 'डिवाइस विशेष फ़ाइलें' कहा जा सकता है, जो डिवाइस से कनेक्ट नहीं हैं किंतु सामान्य फ़ाइलें भी नहीं हैं।

एमएस-डॉस ने यूनिक्स से विशेष फाइलों की अवधारणा को उधार ली थी किंतु उनका नाम परिवर्तित करके डिवाइस कर दिया। क्योंकि एमएस-डॉस के प्रारंभिक संस्करण निर्देशिका (फ़ाइल प्रणाली) पदानुक्रम का समर्थन नहीं करते थे, उपकरणों को उनके नाम आरक्षित शब्द बनाकर नियमित फ़ाइलों से भिन्न किया गया था, उदाहरण के लिए: इन्फमोउस  हैं। इन्हें सीपी/एम के साथ संगतता की डिग्री के लिए चयन किया गया था और अभी भी पिछड़े संगतता के लिए आधुनिक विंडोज़ में उपस्थित हैं।

कुछ यूनिक्स जैसी प्रणालियों में, अधिकांश डिवाइस फ़ाइलों को वर्चुअल फाइल प्रणाली के भाग के रूप में प्रबंधित किया जाता है जो परंपरागत रूप से, पर आरोहित होता है, संभवतः नियंत्रित डेमॉन से जुड़ा हुआ है, जो रन टाइम पर हार्डवेयर जोड़ने और विस्थापित करने का निरीक्षण करता है, डिवाइस फ़ाइल प्रणाली में संबंधित परिवर्तन करता है यदि यह स्वचालित रूप से कर्नेल द्वारा नहीं किया जाता है, और संभवतः विशेष डिवाइस की आवश्यकताओं को पूर्ण करने के लिए प्रणाली या उपयोगकर्ता स्थान में स्क्रिप्ट को प्रारम्भ करता है। फ्रीबीएसडी, ड्रेगनफ्लाईबीएसडी और डार्विन (ऑपरेटिंग प्रणाली) के पास समर्पित फ़ाइल प्रणाली devfs है; इस फाइल प्रणाली द्वारा कर्नेल स्थान में डिवाइस नोड्स को स्वचालित रूप से प्रबंधित किया जाता है। लिनक्स में एक समान devfs कार्यान्वयन हुआ करता था, किंतु पश्चात में इसे छोड़ दिया गया, और फिर संस्करण 2.6.17 के पश्चात से विस्थापित कर दिया गया; लिनक्स अब मुख्य रूप से उपयोगकर्ता स्थान कार्यान्वयन का उपयोग करता है जिसे udev के रूप में जाना जाता है, किंतु इसके कई संस्करण हैं।

यूनिक्स प्रणाली में जो क्रोट प्रक्रिया भिन्नता का समर्थन करता है, जैसे कि सोलारिस कंटेनर, सामान्यतः प्रत्येक क्रोट वातावरण को स्वयं की आवश्यकता होती है; ये आरोह बिंदु वैश्विक फ़ाइल प्रणाली ट्री में विभिन्न नोड्स पर होस्ट ओएस पर दिखाई देंगे।   के क्रोट पॉप्युलेट किए गए डिवाइस नोड्स को प्रतिबंधित करके, हार्डवेयर भिन्नता को क्रोट वातावरण द्वारा प्रारम्भ किया जा सकता है (प्रोग्राम हार्डवेयर के साथ हस्तक्षेप नहीं कर सकता है जिसे वह न तो देख सकता है और न ही नाम दे सकता है- यूनिक्स फ़ाइल प्रणाली अनुमतियों की तुलना में अभिगम नियंत्रण का एक और भी स्थिर रूप)।

एमएस-डॉस प्रत्येक डिवाइस फ़ाइल को विशेष रूप से विवृत बनाकर हार्डवेयर डिवाइस विवाद को प्रबंधित करता है (टर्मिनेट-एंड-स्टे-रेजिडेंट प्रोग्राम देखें)। पहले से उपयोग में आने वाले डिवाइस तक पहुंचने का प्रयास करने वाला एप्लिकेशन स्वयं को डिवाइस फ़ाइल नोड विवृत करने में असमर्थ पाएगा। यूनिक्स और लिनक्स में समवर्ती पहुंच के संबंध में विभिन्न प्रकार के डिवाइस ड्राइवर सिमेंटिक्स प्रारम्भ किए गए हैं।

यूनिक्स और यूनिक्स जैसी प्रणालियाँ
डिवाइस नोड्स उन संसाधनों के अनुरूप होते हैं जो ऑपरेटिंग प्रणाली के कर्नेल (कंप्यूटर साइंस) ने पहले ही आवंटित कर दिए हैं। यूनिक्स उन संसाधनों की प्रमुख संख्या और छोटी संख्या द्वारा पहचान करता है, दोनों नोड (कंप्यूटर विज्ञान) की संरचना के भाग के रूप में संग्रहीत हैं। इन नंबरों का असाइनमेंट भिन्न-भिन्न ऑपरेटिंग प्रणाली और भिन्न-भिन्न कंप्यूटर प्लेटफॉर्म पर विशिष्ट रूप से होता है। सामान्यतः, प्रमुख संख्या डिवाइस ड्राइवर की पहचान करती है और छोटी संख्या विशेष डिवाइस (संभवतः कई में से) की पहचान करती है जिसे ड्राइवर नियंत्रित करता है: इस स्थिति में, प्रणाली ड्राइवर को माइनर नंबर दे सकता है। चूँकि, डायनेमिक नंबर आवंटन की उपस्थिति में, यह विषय नहीं हो सकता है (उदाहरण के लिए फ्रीबीएसडी 5 और ऊपर)।

अन्य विशेष फ़ाइल प्रकारों की तरह, कंप्यूटर प्रणाली मानक प्रणाली कॉल का उपयोग करके डिवाइस नोड्स तक पहुँचता है और उन्हें नियमित कंप्यूटर फ़ाइलों की तरह व्यवहार करता है। दो मानक प्रकार की डिवाइस फ़ाइलें उपस्थित हैं; दुर्भाग्य से उनके नाम ऐतिहासिक कारणों से प्रति-सहज हैं, और परिणामस्वरूप दोनों के मध्य अंतर की व्याख्या अक्सर गलत होती है।

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

चरित्र उपकरणों को कभी-कभी कच्चे उपकरणों के रूप में जाना जाता है ताकि इस तथ्य के आस-पास के भ्रम से बचा जा सके कि ब्लॉक-आधारित हार्डवेयर के एक टुकड़े के लिए एक चरित्र डिवाइस को सामान्यतः संरेखित ब्लॉकों को पढ़ने और लिखने के लिए प्रोग्राम की आवश्यकता होगी।

ब्लॉक डिवाइस
विशेष फ़ाइलों को ब्लॉक करें या डिवाइस को ब्लॉक करें, हार्डवेयर डिवाइस को बफ़र्ड एक्सेस प्रदान करें, और उनकी बारीकियों से कुछ अमूर्तता प्रदान करें। चरित्र उपकरणों के विपरीत, ब्लॉक डिवाइस हमेशा प्रोग्रामर को किसी भी आकार (एकल अक्षर/बाइट सहित) और किसी भी संरेखण के ब्लॉक को पढ़ने या लिखने की अनुमति देगा। नकारात्मक पक्ष यह है कि क्योंकि ब्लॉक डिवाइस बफ़र किए जाते हैं, प्रोग्रामर को यह नहीं पता होता है कि कर्नेल के बफ़र्स से लिखित डेटा को वास्तविक डिवाइस पर पास करने में कितना समय लगेगा, या वास्तव में किस क्रम में भौतिक डिवाइस पर दो अलग-भिन्न राइट्स आएंगे। इसके अतिरिक्त, यदि एक ही हार्डवेयर कैरेक्टर और ब्लॉक डिवाइस दोनों को उजागर करता है, तो कैरेक्टर डिवाइस का उपयोग करने वाले क्लाइंट को ब्लॉक डिवाइस के बफ़र्स में किए गए परिवर्तनों से अनजान होने के कारण डेटा भ्रष्टाचार का खतरा होता है।

अधिकांश प्रणाली हार्ड डिस्क जैसे हार्डवेयर का प्रतिनिधित्व करने के लिए ब्लॉक और कैरेक्टर डिवाइस दोनों बनाते हैं। FreeBSD और Linux विशेष रूप से नहीं; पूर्व ने ब्लॉक उपकरणों के लिए समर्थन हटा दिया है, जबकि पश्चात वाला केवल ब्लॉक डिवाइस बनाता है। लिनक्स में, डिस्क के लिए एक कैरेक्टर डिवाइस प्राप्त करने के लिए, कच्चे ड्राइवर का उपयोग करना चाहिए, हालांकि लिनक्स-विशिष्ट के साथ ब्लॉक डिवाइस को खोलकर एक कैरेक्टर डिवाइस को खोलने के समान प्रभाव प्राप्त कर सकते हैं। O_DIRECT झंडा।

छद्म उपकरण
यूनिक्स जैसी प्रणालियों पर डिवाइस नोड्स को भौतिक उपकरणों के अनुरूप होना जरूरी नहीं है। जिन नोड्स में इस पत्राचार की कमी है, वे छद्म उपकरणों का समूह बनाते हैं। वे ऑपरेटिंग प्रणाली द्वारा संचालित विभिन्न कार्य प्रदान करते हैं। सबसे अधिक इस्तेमाल किए जाने वाले कुछ (चरित्र-आधारित) छद्म-उपकरणों में शामिल हैं:


 * /dev/null – इसमें लिखे गए सभी इनपुट को स्वीकार करता है और खारिज करता है; से पढ़ने पर फ़ाइल का अंत संकेत प्रदान करता है।
 * /dev/zero – इसमें लिखे गए सभी इनपुट को स्वीकार करता है और खारिज करता है; जब से पढ़ा जाता है तो आउटपुट के रूप में अशक्त वर्णों (शून्य-मान बाइट्स) की एक सतत धारा उत्पन्न करता है।
 * /dev/full – से पढ़ने पर आउटपुट के रूप में अशक्त वर्णों (शून्य-मान बाइट्स) की एक सतत धारा उत्पन्न करता है, और एक उत्पन्न करता है ENOSPC (डिस्क भर गई) त्रुटि जब इसमें लिखने का प्रयास किया गया।
 * /dev/random – कर्नेल के क्रिप्टोग्राफिक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर द्वारा उत्पन्न बाइट उत्पन्न करता है। इसका सटीक व्यवहार कार्यान्वयन से भिन्न होता है, और कभी-कभी भिन्न होता है जैसे /dev/urandom या /dev/arandom भी दिए गए हैं।
 * /dev/stdin, /dev/stdout, /dev/stderr – प्रक्रिया की मानक धाराओं तक पहुंचें।
 * /dev/fd/एन – प्रक्रिया के फाइल डिस्क्रिप्टर n तक पहुँचता है।

इसके अतिरिक्त, बीएसडी-विशिष्ट स्यूडो-डिवाइस a ioctl इंटरफ़ेस में ये भी शामिल हो सकते हैं:
 * /dev/pf – उपयोगकर्ताभूमि प्रक्रियाओं को पीएफ (फ़ायरवॉल) को नियंत्रित करने की अनुमति देता है a ioctl इंटरफेस।
 * /dev/bio – प्रदान करता है ioctl उपकरणों तक पहुंच अन्यथा नहीं मिली /dev नोड्स, द्वारा उपयोग किया जाता है bioctl OpenBSD और NetBSD में RAID प्रबंधन प्रारम्भ करने के लिए।
 * /dev/sysmon – प्रणाली मॉनिटर के लिए NetBSD के envsys फ्रेमवर्क द्वारा उपयोग किया जाता है, जिसके माध्यम से यूजरलैंड में एक्सेस किया जाता है proplib(3) से envstat उपयोगिता।

नोड निर्माण
द्वारा नोड बनाए जाते हैं mknod प्रणाली कॉल। नोड बनाने के लिए कमांड-लाइन प्रोग्राम को भी कहा जाता है mknod. सामान्य फाइलप्रणाली प्रणाली कॉल द्वारा नोड्स को स्थानांतरित या हटाया जा सकता है (rename, unlink) और कमांड (कंप्यूटिंग) (mv, rm).

कुछ यूनिक्स संस्करणों में निर्देशिका में सभी आवश्यक उपकरण बनाने के लिए Makedev या MAKEDEV नाम की एक स्क्रिप्ट शामिल है /dev. यह केवल उन प्रणालियों पर समझ में आता है जिनके उपकरणों को स्थिर रूप से प्रमुख संख्याएँ सौंपी जाती हैं (उदाहरण के लिए, उनके कर्नेल मॉड्यूल में हार्डकोडिंग के माध्यम से)।

जबकि कुछ अन्य यूनिक्स प्रणाली जैसे कि FreeBSD, कर्नेल-आधारित डिवाइस नोड प्रबंधन का उपयोग केवल devfs के माध्यम से करते हैं, और मैन्युअल नोड निर्माण का समर्थन नहीं करते हैं। mknod(2) प्रणाली कॉल और mknod(8) कमांड POSIX के साथ संगतता बनाए रखने के लिए उपस्थित है, किंतु devfs के बाहर मैन्युअल रूप से बनाए गए डिवाइस नोड काम नहीं करेंगे।

नामकरण परंपराएं
निम्नलिखित उपसर्गों का उपयोग कुछ उपकरणों के नामों के लिए किया जाता है /dev पदानुक्रम, डिवाइस के प्रकार की पहचान करने के लिए:


 * lp: लाइन प्रिंटर (एलपी की तुलना करें (यूनिक्स))
 * pt: छद्म टर्मिनल|छद्म-टर्मिनल (वर्चुअल टर्मिनल)
 * tty: कंप्यूटर टर्मिनल

कुछ ऑपरेटिंग प्रणाली में कुछ अतिरिक्त उपसर्ग सामान्य उपयोग में आ गए हैं:


 * fb: फ्रेम बफर
 * fd: (प्लेटफ़ॉर्म) फ्लॉपी डिस्क, हालांकि इसी संक्षिप्त नाम का इस्तेमाल सामान्यतः फ़ाइल डिस्क्रिप्टर को संदर्भित करने के लिए भी किया जाता है
 * hd: (क्लासिक) एकीकृत ड्राइव इलेक्ट्रॉनिक्स  ड्राइवर (पहले ATA हार्ड डिस्क ड्राइव, ATAPI ऑप्टिकल डिस्क ड्राइव, आदि के लिए उपयोग किया जाता था)
 * hda: पहले एटीए चैनल पर मास्टर डिवाइस (सामान्यतः प्रमुख संख्या 3 और छोटी संख्या 0 द्वारा पहचाना जाता है)
 * hdb: पहले ATA चैनल पर स्लेव डिवाइस
 * hdc: दूसरे एटीए चैनल पर मास्टर डिवाइस
 * hdd: दूसरे ATA चैनल पर स्लेव डिवाइस
 * parport, pp: समानांतर बंदरगाह
 * mem: मुख्य मेमोरी (कैरेक्टर डिवाइस)
 * एनवीएम एक्सप्रेस चालक:
 * nvme0: पहले पंजीकृत डिवाइस का डिवाइस कंट्रोलर (कैरेक्टर डिवाइस)
 * nvme0n1: पहले पंजीकृत डिवाइस का पहला नेमस्पेस (ब्लॉक डिवाइस)
 * nvme0n1p1: पहले पंजीकृत डिवाइस का पहला नामस्थान का पहला विभाजन (ब्लॉक डिवाइस)
 * मल्टीमीडिया कार्ड ड्राइवर:
 * mmcblk: मल्टीमीडिया कार्ड मीडिया के लिए स्टोरेज ड्राइवर (एसडी कार्ड कार्ड, लैपटॉप पर eMMC चिप्स, आदि)
 * mmcblk0: पहला पंजीकृत उपकरण
 * mmcblk0p1: पहले पंजीकृत डिवाइस का पहला विभाजन
 * SCSI ड्राइवर, libATA (आधुनिक समानांतर ATA/सीरियल ATA ड्राइवर), यूनिवर्सल सीरियल बस, IEEE 1394, आदि द्वारा भी उपयोग किया जाता है।
 * sd: मास-स्टोरेज ड्राइवर (ब्लॉक डिवाइस)
 * sda: पहला पंजीकृत उपकरण
 * sdb, sdc, आदि: दूसरा, तीसरा, आदि पंजीकृत उपकरण
 * ses: संलग्नक चालक
 * sg: सामान्य एससीएसआई परत
 * sr: ROM ड्राइवर (डेटा-उन्मुख ऑप्टिकल डिस्क ड्राइव; scd केवल एक द्वितीयक उपनाम है)
 * st: चुंबकीय टेप चालक
 * tty: कंप्यूटर टर्मिनल
 * ttyS: (प्लेटफ़ॉर्म) आनुक्रमिक द्वार  ड्राइवर
 * ttyUSB: यूएसबी सीरियल कन्वर्टर्स, मोडेम, आदि।

Linux में उपयोग किए जाने वाले उपसर्गों की विहित सूची Linux Device List में पाई जा सकती है, आवंटित डिवाइस नंबरों की आधिकारिक रजिस्ट्री और /dev लिनक्स ऑपरेटिंग प्रणाली के लिए निर्देशिका नोड। अधिकांश उपकरणों के लिए, इस उपसर्ग के पश्चात विशिष्ट रूप से विशिष्ट उपकरण की पहचान करने वाला एक नंबर होता है। हार्ड ड्राइव के लिए, उपकरणों की पहचान के लिए एक अक्षर का उपयोग किया जाता है और उसके पश्चात डिस्क विभाजन की पहचान करने के लिए एक संख्या होती है। इस प्रकार एक फाइल प्रणाली डिस्क पर एक क्षेत्र को जान सकता है /dev/sda3, उदाहरण के लिए, या नेटवर्क से जुड़े टर्मिनल सत्र को देखें /dev/pts/14.

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

डिवाइस के नाम सामान्यतः विभिन्न यूनिक्स-जैसे प्रणाली वेरिएंट के मध्य पोर्टेबल नहीं होते हैं, उदाहरण के लिए, कुछ बीएसडी प्रणाली पर, आईडीई डिवाइसों को नाम दिया जाता है /dev/wd0, /dev/wd1, वगैरह।

डेवफ्स
devfs यूनिक्स जैसे ऑपरेटिंग प्रणाली पर डिवाइस फ़ाइल प्रणाली का एक विशिष्ट कार्यान्वयन है, जिसका उपयोग डिवाइस फ़ाइलों को प्रस्तुत करने के लिए किया जाता है। ओएस के आधार पर कार्यान्वयन की अंतर्निहित तंत्र भिन्न हो सकती है।

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

डिवाइस प्रदर्शित होने के लिए तैयार होने पर परिभाषित करना तुच्छ नहीं है। devfs दृष्टिकोण डिवाइस ड्राइवर के लिए सक्षम और अक्षम डिवाइस से संबंधित devfs प्रविष्टियों को बनाने और हटाने का अनुरोध करने के लिए है।

PC DOS, TOS, OS/2, और Windows
एक डिवाइस फ़ाइल आईबीएम पीसी डॉस, टीओएस (अटारी), ओएस / 2, और विंडोज प्रणाली में कुछ बंदरगाहों और उपकरणों तक पहुंच की अनुमति देने के लिए उपयोग किया जाने वाला एक आरक्षित कीवर्ड है।

MS-DOS ने यूनिक्स से विशेष फाइलों की अवधारणा को उधार लिया किंतु उनका नाम बदलकर डिवाइस कर दिया। क्योंकि MS-DOS के प्रारंभिक संस्करण एक निर्देशिका (फाइल प्रणाली) पदानुक्रम का समर्थन नहीं करते थे, उपकरणों को उनके नाम को आरक्षित शब्द बनाकर नियमित फाइलों से भिन्न किया गया था। इसका अर्थ है कि कुछ फ़ाइल नाम उपकरणों के लिए आरक्षित थे, और उन्हें नई फ़ाइलों या निर्देशिकाओं के नाम के लिए उपयोग नहीं किया जाना चाहिए। आरक्षित नामों को विशेष फाइलों को संभालने के साथ संगत होने के लिए चुना गया था  सीपी/एम में कमांड। डॉस में दो प्रकार के उपकरण थे: ब्लॉक डिवाइसेस (डिस्क ड्राइव के लिए प्रयुक्त) और कैरेक्टर डिवाइसेस (सामान्यतः कॉम और पीआरएन डिवाइस सहित अन्य सभी डिवाइस)। DOS प्रिंटर और पोर्ट तक पहुँचने के लिए डिवाइस फ़ाइलों का उपयोग करता है। विंडोज के अधिकांश संस्करणों में भी यह समर्थन होता है, जो कुछ नामों की फाइलों और फ़ोल्डरों को बनाने की कोशिश करते समय भ्रम पैदा कर सकता है, क्योंकि उनके पास ये नाम नहीं हो सकते। MS-DOS के संस्करण 2.x प्रदान करते हैं  CONFIG.SYS पैरामीटर, यदि सेट किया गया है , इन विशेष नामों को केवल तभी सक्रिय बनाता है जब इसके साथ उपसर्ग किया जाता है  , इस प्रकार साधारण फ़ाइलों को इन नामों से बनाने की अनुमति देता है। GEMDOS, अटारी TOS का DOS जैसा हिस्सा, DOS के समान डिवाइस नामों का समर्थन करता है, किंतु DOS के विपरीत इसे एक अनुगामी की आवश्यकता होती है: सामान्य फ़ाइलनामों के विपरीत उपकरणों के रूप में उनकी पहचान करने के लिए वर्ण (DOS पर, यह वैकल्पिक है) (इस प्रकार CON: होगा DOS और TOS दोनों पर काम करते हैं, किंतु CON TOS पर एक साधारण फ़ाइल का नाम देगा किंतु DOS पर कंसोल डिवाइस)। MiNT और MagiC में, U: ड्राइव लेटर के माध्यम से एक्सेस किए गए एक विशेष यूनिक्स-जैसे एकीकृत फ़ाइल प्रणाली व्यू में डिवाइस फ़ाइलों को U:\DEV में भी रखा गया है।

शेल पुनर्निर्देशन (कंप्यूटिंग)  और पाइप का उपयोग करके, डेटा को डिवाइस से भेजा या प्राप्त किया जा सकता है। उदाहरण के लिए, निम्नलिखित टाइप करने से फाइल भेज दी जाएगी   प्रिंटर के लिए: टाइप c:\data.txt > PRN

पाइप, मेलस्लॉट और एमयूपी अन्य मानक विंडोज डिवाइस हैं।

आईओसीएस
Sharp Corporation पॉकेट कंप्यूटर के 8-बिट ऑपरेटिंग प्रणाली जैसे Sharp PC-E500|PC-E500, Sharp PC-E500S|PC-E500S आदि में एक BASIC दुभाषिया, एक DOS 2-जैसी फाइल कंट्रोल प्रणाली (FCS) प्रारम्भ होता है। एक अल्पविकसित 12-बिट FAT-जैसी फाइलप्रणाली, और एक BIOS-जैसी इनपुट/आउटपुट कंट्रोल प्रणाली (IOCS) कई मानक कैरेक्टर और ब्लॉक डिवाइस ड्राइवरों को प्रारम्भ करने के साथ-साथ STDO:/SCRN: (डिस्प्ले), STDI सहित विशेष फाइल डिवाइस :/KYBD: (कीबोर्ड), COM: (सीरियल I/O), STDL:/PRN: (प्रिंटर), CAS: (कैसेट टेप), E:/F:/G: (मेमोरी फ़ाइल), S1:/S2 :/S3: (मेमोरी कार्ड), X:/Y: (फ्लॉपी), SYSTM: (प्रणाली), और NIL: (फंक्शन)।

यह भी देखें

 * डीईएफ़एसडी
 * सिसफ
 * ब्लॉक (डेटा संग्रहण)
 * अतुल्यकालिक I/O
 * डेटा बफ़र
 * फाइल सिस्टम
 * हार्डवेयर अमूर्त
 * संरक्षण क्षेत्र नियंत्रण कार्य
 * उपयोगकर्ता स्थान और कर्नेल स्थान
 * यूनिक्स फ़ाइल प्रकार
 * उदेव