क्या एक फाइल सिस्टम स्टोरेज डिवाइस को (बहुत बड़े) बाइट ऐरे के रूप में देखता है?


12

मैं जानना चाहता हूं कि स्टोरेज डिवाइस से फाइल सिस्टम कैसे लिखता और पढ़ता है।

मुझे लगता है कि यह कैसे काम करता है:

एक फाइल सिस्टम सीधे स्टोरेज डिवाइस तक नहीं पहुंचता है, बल्कि स्टोरेज डिवाइस को (बहुत बड़े) बाइट ऐरे के रूप में फाइल सिस्टम में स्टोरेज डिवाइस के डिवाइस ड्राइवर द्वारा प्रस्तुत किया जाता है।

उदाहरण के लिए, यदि फ़ाइल सिस्टम हार्ड डिस्क को एक्सेस करना चाहता है, तो वह बस हार्ड डिस्क का प्रतिनिधित्व करने वाली बाइट सरणी तक पहुंच जाएगा।

इस तरह से एक फ़ाइल सिस्टम किसी भी प्रकार के स्टोरेज डिवाइस (पारंपरिक हार्ड डिस्क, एसएसडी, यूएसबी फ्लैश ड्राइव, आदि) के साथ काम कर सकता है, और स्टोरेज डिवाइस के लिए केवल डिवाइस ड्राइवर बदल जाता है।

यह चित्र दिखाता है कि मैंने अभी क्या समझाया है:

यहाँ छवि विवरण दर्ज करें

क्या मैं अपनी समझ में सही हूं?

जवाबों:


15

लिनक्स (और 1980 दशक के युग Unixes), एक भंडारण युक्ति (अक्सर एक पर डिस्क विभाजन से कुछ पर हार्ड डिस्क , या कुछ पर एसएसडी ) एक ब्लॉक है डिवाइस (देखें इस ) तो है एक [उप] के अनुक्रम ब्लॉक (जो भौतिक I / O की मूल इकाई )। भौतिक ब्लॉक आकार हार्डवेयर पर निर्भर करता है (पुराने आईडीई डिस्क में 512 बाइट्स का ब्लॉक आकार था, नए बड़े एसएटीए डिस्क में 4Kbytes का ब्लॉक आकार होता है, उन्नत प्रारूप wikipage पढ़ें ), और जब आप एक फ़ाइल सिस्टम बनाते हैं (उदाहरण के लिए mkfs, देखें mke2fs (8)) आप एक तार्किक ब्लॉक आकार निर्दिष्ट कर सकते हैं, जो कि भौतिक ब्लॉक आकार का एक मल्टीपल (अक्सर दो की एक छोटी शक्ति सहित) है। लॉजिकल ब्लॉक एड्रेसिंग के बारे में भी पढ़ें ।

अतीत में (1990 के सन 3 वर्कस्टेशंस के बारे में सोचें) डिस्क सेक्टरों में आयोजित किए गए सिर ( सीएचएस विकिपेज पढ़ें) के साथ सिलेंडर से बना था , जिसमें एक ब्लॉक होता था। आज, ये अभी भी बने हुए हैं, लेकिन हार्ड डिस्क कंट्रोलर (डिस्क पर सर्किट स्वयं) द्वारा प्रदान किया गया एक कृत्रिम आर्टिफैक्ट है। कुछ OSes में ब्लॉक डिवाइस ड्राइवर को डिस्क हेड मूवमेंट और रोटेशनल लेटेंसी को कम करने के लिए IO अनुरोधों को फिर से शेड्यूल किया गया और पुन: व्यवस्थित किया गया ।

इस तरह से एक फ़ाइल सिस्टम किसी भी प्रकार के स्टोरेज डिवाइस (पारंपरिक हार्ड डिस्क, एसएसडी, यूएसबी फ्लैश ड्राइव, आदि) के साथ काम कर सकता है, और स्टोरेज डिवाइस के लिए केवल डिवाइस ड्राइवर बदल जाता है।

हां, लेकिन बुराई विवरण में है (उदाहरण के लिए टीआरआईएम और राइट एम्प्लीफिकेशन के बारे में पढ़ें , एसएसडी के लिए विशिष्ट)। और विवरण महत्वपूर्ण हैं, इसलिए वास्तविक कार्यान्वयन आपके आंकड़े से कम सरल है। फाइल सिस्टम के बारे में और पढ़ें (और SMB & NFS सहित क्लस्टर और रिमोट फाइल सिस्टम के बारे में सोचें ; लॉजिकल वॉल्यूम मैनेजर के बारे में भी पढ़ें )।

ऑपरेटिंग सिस्टम पढ़ें : तीन आसान टुकड़े (और इसकी दृढ़ता वाला हिस्सा)।

ध्यान दें कि ब्लॉक डिवाइस FreeBSD में चला गया है (वास्तव में चरित्र और ब्लॉक डिवाइस के लिए एक आम अमूर्त प्रदान करता है)। मुझे संदेह है कि विंडोज पर भी ओएस विभाजन, ब्लॉक आकार, आदि के बारे में जानता है (लेकिन आपको जांच करनी चाहिए)।


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

मुझे पता था कि एमएसडीओएस ज्यादातर काम करता था।
बेसिल स्टारीनेविच 11

दरअसल, फ्रीबीएसडी अभी भी "ब्लॉक डिवाइसेस" का उपयोग करता है। ब्लॉक के एक बड़े सरणी के अलावा हार्ड डिस्क तक पहुंचने का कोई तरीका नहीं है। उन्हें FreeBSD पर सिर्फ कैरेक्टर / रॉ डिवाइस कहा जाता है। वे अभी भी डिवाइस को ब्लॉक के एक बड़े सरणी के रूप में एक्सेस करते हैं। FreeBSD में गायब होने वाली एकमात्र चीज़ डिवाइस स्तर पर कैशिंग है, जिसकी आवश्यकता नहीं है क्योंकि फ़ाइल सिस्टम पहले से ही कैशिंग प्रदान करता है।
जूही २

3

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

फ़ाइल सिस्टम ने कच्चे उपकरणों के साथ काम किया, और इस तरह उन्हें बाइट्स की एक बड़ी सरणी के रूप में नहीं देखा, बल्कि ब्लॉक का एक बड़ा सरणी, जैसा कि बीएस ने समझाया।

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