क्या स्वैप स्पेस में एक फाइल सिस्टम है?


26

भंडारण उपकरणों के साथ काम करने के लिए हमें एक फ़ाइल सिस्टम की आवश्यकता है, स्वैप स्पेस के बारे में क्या?

यदि इसमें फ़ाइल सिस्टम नहीं है, तो ऑपरेटिंग सिस्टम इसके साथ कैसे काम करता है? डिस्क से डेटा (रैम से) कैसे लिखा जाता है और इसे फिर से कैसे एक्सेस किया जाता है?


6
स्वैप के लिए फाइल सिस्टम की जरूरत नहीं है। यह फ़ाइलों को संग्रहीत नहीं करता है।
पायलट

3
यह RAM पेज को स्टोर करता है।
पायलट

2
क्या आप कृपया बता सकते हैं कि आप क्या करने की कोशिश कर रहे हैं? क्या आप कह रहे हैं कि आपको अस्थायी रूप से डेटा स्टोर करने के लिए एक जगह की आवश्यकता है?
जेक

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

4
यह एक एकल फ़ाइल (अला टार और डी डी) को अनफ़ॉर्मेट स्टोरेज में लिखने के लिए काफी सामान्य है, और यहां तक ​​कि नेस्टेड फ़ाइल सिस्टम (वर्चुअल डिस्क, .iso, स्क्वॉशफ्स) के लिए भी सामान्य है। फ्लॉपी पर खेल कभी-कभी एक पूर्ण (निश्चित) स्थान पर उच्च स्कोर लिखेंगे, और कुछ एप्लिकेशन सिलेंडर, हेड, सेक्टर आधारित हैं। स्वैप विभाजन अभी भी विभाजन हैं, लेकिन नहीं, ऑफसेट और रन के अलावा कोई फाइलसिस्टम, या "मैपिंग" नहीं है?
मैकेंज़्म

जवाबों:


28

तकनीकी रूप से स्वैप के पास विशिष्ट फाइल सिस्टम नहीं है। फाइलसिस्टम का पूरा उद्देश्य निश्चित तरीके से डेटा की संरचना करना है। विशेष रूप से स्वैप विभाजन में संरचना नहीं है, लेकिन इसमें एक विशिष्ट हेडर है, जो mkswapप्रोग्राम द्वारा बनाया गया है। विशेष रूप से, यह ( कर्नेल से लिया गया है ):

 25 union swap_header {
 26     struct 
 27     {
 28         char reserved[PAGE_SIZE - 10];
 29         char magic[10];
 30     } magic;
 31     struct 
 32     {
 33         char     bootbits[1024];
 34         unsigned int version;
 35         unsigned int last_page;
 36         unsigned int nr_badpages;
 37         unsigned int padding[125];
 38         unsigned int badpages[1];
 39     } info;
 40 };

प्रत्येक विभाजन में विशिष्ट कोड जुड़ा होता है, और TLDP के अनुसार :

ext2 के लिए कोड 0x83 और linux स्वैप 0x82 है

जब स्वैप फ़ाइल शामिल होती है, तो वह थोड़ी अलग कहानी होती है। कर्नेल को इस तथ्य का सम्मान करना चाहिए कि डेटा को संरचित करने के लिए फाइल सिस्टम का अपना तरीका हो सकता है। उसी kern.org लिंक से:

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

अंत में, तकनीकी रूप से आप स्वैप स्पेस को अपने प्रकार का एक फाइल सिस्टम कह सकते हैं, लेकिन यह NTFS या ext4 जैसे फाइल सिस्टम के साथ काफी तुलनीय नहीं है।

आपने भी पूछा है

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

कड़ाई से बोलते हुए, रैम को संरचित करने की कोई आवश्यकता नहीं है। हालांकि, यूनिक्स जैसे ओएस के तहत रैम के कुछ हिस्सों को टैम्पो के रूप में संरचित किया जा सकता है । वहाँ भी है ramfs , और initramfs, जो कि बूट प्रक्रिया के दौरान लोड हो जाता है। लेकिन तकनीकी रूप से RAM डेटा केवल कच्चा 1s और 0s माना जाता है, इसलिए उन्हें किसी भी तरह से संरचना करने की कोई आवश्यकता नहीं है।


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

मुझे लगता है कि उनका मतलब यहां डिस्क स्पेस है "मैं जानना चाहता हूं कि रैम के बजाय" फाइल सिस्टम के बिना स्टोरेज स्पेस में लिखना कैसे संभव है?
अनवर

@ अनवर, हाँ, लेकिन मुझे यह मिल गया
सिनियोश

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

1
माना। अनिवार्य रूप से इसे तब मैप किए गए क्षेत्र के रूप में वर्णित किया जा सकता है। यह वास्तविक मेमोरी का विस्तार नहीं है, लेकिन चंक्स को स्टोर करने के लिए एक कार्य स्थान है जिसे मांग पर वापस किया जा सकता है।
मैकेंज़्म

14

स्वैप स्पेस कर्नेल द्वारा अस्थायी रूप से सिस्टम मेमोरी (RAM) के पृष्ठों को स्टोर करने के लिए उपयोग किया जाता है क्योंकि यह पूर्ण हो जाता है। कर्नेल इसका उपयोग आंतरिक तालिकाओं को "याद रखने" के लिए करता है, जहां स्वैप डिस्क के भीतर यह पृष्ठ डालता है। नतीजतन, स्वैप डिस्क में एक उचित फाइल सिस्टम नहीं होता है और आमतौर पर डिस्क पर सिर्फ खाली विभाजन होता है।

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


13

स्‍पैप स्‍पेस को मेमोरी पेज (आमतौर पर 4kB) के समान आकार में विभाजित किया जाता है, और मेमोरी को एप्‍लीकेशन करने के लिए इन पेजों की मैपिंग का एक रिकॉर्ड सीपीयू और ओएस में वर्चुअल मेमोरी सबसिस्टम का एक एक्सटेंशन बनाता है।

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

जब मेमोरी को डिस्क पर स्वैप किया जाता है, तो एक संबंधित सिस्टम डिस्क पर ब्लॉक करने के लिए किसी एप्लिकेशन की मेमोरी स्पेस की मैपिंग करता है।

मानचित्रण तालिका स्वयं डिस्क पर संग्रहीत नहीं होती है, और रिबूट के बाद डिस्क पर शेष डेटा बेकार है।

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