मेटाडाटा पर भ्रम | नामित फोर्क्स | विस्तारित गुण | संसाधन कांटा - HFS +


10

मुझे लगता है कि पूरे वेब में बिखरे हुए इन चार वस्तुओं के बीच संबंध पर कुछ सामान्य भ्रम है। मैं इसे सीधा करना चाहता था।

  1. कर रहे हैं कांटे नामित के रूप में ही विस्तारित गुण ? यदि नहीं, तो विस्तारित विशेषताएँ क्या हैं?
  2. क्या संसाधन कांटा अभी भी एक कांटा के रूप में या एक विस्तारित विशेषता के रूप में लागू किया गया है ? यदि इसे किसी अन्य तरीके से लागू किया जाता है, तो कैसे?
  3. मेटाडाटा एक फ़ाइल के साथ संग्रहीत (निर्माता, संशोधित तिथि ...) वहाँ अन्य तीन उल्लेख के बीच कोई संबंध या शब्दावली में ओवरलैप है। एक उदाहरण होगा, एक फ़ाइल पर संग्रहीत अतिरिक्त मेटाडेटा जोड़े (कुंजी + मान) के लिए विस्तारित विशेषताएँ हैं ।

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


HFS Plus के बारे में जानने के लिए : fileXray उपयोगकर्ता गाइड और संदर्भ (पीडीएफ, 1.8 एमबी, 173 पृष्ठ) बहुत उपयोगी है। मैं fileXray का उपयोगकर्ता हूं । इसके अलावा: तकनीकी नोट TN1150: एचएफएस प्लस वॉल्यूम प्रारूप विरासत है, जो ऐप्पल द्वारा सेवानिवृत्त है, लेकिन अभी भी कई उद्देश्यों के लिए उपयोगी है।
ग्राहम पेरिन

जवाबों:


5

भ्रम इस तथ्य से उत्पन्न होता है कि इन अवधारणाओं के बीच संबंध जटिल है और समय के साथ बदल गया है। वर्तमान प्रणालियों में एक नामित कांटा और एक विस्तारित विशेषता के बीच का अंतर काफी हद तक अकादमिक है।

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

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

बेसिक फाइल सिस्टम मेटाडेटा को फाइल सिस्टम रिकॉर्ड के समर्पित तत्वों में संग्रहीत किया जाता है, जो कि विशेषताओं से स्वतंत्र होता है और कांटा संदर्भ का नाम दिया जाता है।


1
लेकिन क्या एक विस्तारित विशेषता वास्तव में स्वयं के कांटे के रूप में संग्रहीत है, या विस्तारित विशेषताओं के लिए एक कांटा है? यह OSX के सबसे हाल के संस्करण से कैसे संबंधित है?
rubixibuc

1
मुझे समझ में नहीं आता, जब आप कहते हैं कि विशेषता यू का अर्थ है "विस्तारित विशेषता।" यदि ऐसा है तो विशेषता रिकॉर्ड कहां रखा गया है। क्या इसे फ़ाइल सिस्टम संरचना के भाग के रूप में संग्रहीत किया जाता है HFS + या किसी प्रकार के डेटाबेस में संग्रहीत किया जाता है? जब आप कर सकते हैं तो कृपया पहली टिप्पणी का जवाब दें।
रुबिक्सिब्यूक

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

"... फाइल सिस्टम मेटाडाटा के समर्पित तत्वों में संग्रहीत किया जाता फाइल सिस्टम रिकॉर्ड ..." - इसके बजाय, मैं शायद कहेंगे "... फ़ाइल मेटाडाटा के लिए रिकॉर्ड के समर्पित तत्वों में संग्रहित है फ़ाइल ..."
ग्राहम पेरिन

हो सकता है कि लायक कुछ भी नहीं है कि जब com.apple.FinderInfoएक विस्तारित गुण, के रूप में प्रकट हो सकता है विस्तारित खोजक जानकारी (आमतौर पर date_added, extended_flagsके अलावा तीन आरक्षित क्षेत्रों) है नहीं एक विस्तारित विशेषता।
ग्राहम पेरिन

2

मैं इस पर एक विशेषज्ञ नहीं हूं, लेकिन मैंने यह समझने की कोशिश करने के लिए थोड़ा पढ़ा है कि क्या चल रहा है।

मैं कहूंगा "भ्रम इस तथ्य से उत्पन्न होता है कि:

  • इन अवधारणाओं के बीच संबंध जटिल है और
  • समय के साथ बदल गया है और
  • ऐप्पल ने प्रोग्राम स्तर एपीआई और उपकरण दोनों को लागू किया है जैसे कि एलएस या सीपीपी इस तरह से अवधारणाओं के बीच कई अंतरों को छिपाने के लिए है। "

AIUI, HFS + कैटलॉग फ़ाइल में कैटलॉग फ़ाइल रिकॉर्ड (अन्य बातों के अलावा) शामिल हैं। कैटलॉग फ़ाइल रिकॉर्ड में फ़ाइल के बारे में सामान्य प्रकार की जानकारी होती है जैसे निर्माण तिथि, अभिगमन तिथि आदि। कैटलॉग फ़ाइल रिकॉर्ड में दो संरचनाएँ भी होती हैं जो डेटा कांटे और संसाधन कांटे के स्थान और आकार के बारे में जानकारी देती हैं।

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

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

वे डेटा संरचनाएं हैं, इसलिए उनका उपयोग कैसे किया जाता है?

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

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

यह संभव है (लेकिन मुझे नहीं पता) 10.4 में और उसके बाद, किसी भी संसाधन कांटे को गुण फ़ाइल से इंगित किया जाता है। आपके पहले प्रश्न के उत्तर में, मैं कहूंगा कि कांटे नाम विस्तारित गुण हैं, जब तक कि वे संसाधन कांटे नहीं हैं, और संसाधन कांटा कैटलॉग फ़ाइल से संदर्भित है।

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

हम सामान्य टर्मिनल कमांड लाइन टूल से नहीं बता सकते हैं कि डेटा वास्तव में कहां आयोजित किया जा रहा है।

इसलिए, एक्सेस का rsrcसुझाव हो सकता है कि कैटलॉग फ़ाइल में संसाधन कांटा एक्सेस किया जा रहा है।

$ ls -l Icon^M/rsrc
-rwxr-xr-x  1 root  admin  486 23 Jul  2004 Icon?/rsrc

हालाँकि, हम जानते हैं कि यद्यपि सिंटैक्स Icon^Mनिर्देशिका के नीचे एक फ़ाइल की तरह दिखता है, पर पहुँचा जा रहा है, यह वास्तव में ऐसा नहीं है, क्योंकि

$ ls -lR Icon^M
-rwxr-xr-x@ 1 root  admin  0 23 Jul  2004 Icon?

इसलिए Apple ने संसाधन फोर्क्स के लिए एक विशेष मामला लागू किया है।

अगर इसके बजाय हम करते हैं

$ ls -l@
-rwxr-xr-x@ 1 root  admin   0 23 Jul  2004 Icon?
    com.apple.FinderInfo    32 
    com.apple.ResourceFork  486 

इससे पता चलता है कि हम एट्रिब्यूट्स फाइल को एक्सेस कर रहे हैं। लेकिन फिर, lsसंसाधन फोर्क्स के लिए एक विशेष मामले का कार्यान्वयन हो सकता है।

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

(ध्यान दें कि यह विशेष मामला प्रसंस्करण उपकरण के कोड में हो सकता है, या अंतर्निहित API के कोड में हो सकता है जो उपकरण तक पहुंचते हैं।)

ग्रेग, यदि आप इसे देखते हैं, तो अधिक विशेषज्ञ राय प्राप्त करना अच्छा होगा क्योंकि मैं सही लाइनों के साथ हूं, या बस निराशाजनक रूप से भ्रमित हूं।


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