'भौतिक' और 'तार्किक' आकार में क्या अंतर है?


7

मुझे बस उस mdlsकमांड के बारे में पता चला OS Xजिस पर किसी दिए गए फ़ाइल से जुड़े मेटाडेटा को प्रिंट करता है। यह कमांड मुझे एक 'भौतिक आकार' ("kMDItemPhysicalSize") और 'तार्किक आकार' ("kMDItemLogicalSize") दोनों बताता है। उदाहरण के लिए, वर्तमान पाठ फ़ाइल जो मैं देख रहा हूँ, वह है:

  • भौतिक आकार: 1152
  • तार्किक आकार: 4096

यदि मैं करता हूं ls -l, तो इसका आकार 1152 है। यदि मैं 'जानकारी प्राप्त करता हूं' पैनल खोलता हूं, तो यह "1,152 बाइट्स (डिस्क पर 4 केबी)" कहता है। तो जो भी 'तार्किक आकार' है, वह स्पष्ट रूप से "डिस्क पर" आकार के बराबर है।

जवाबों:


9

डिस्क को सेक्टरों में विभाजित किया गया है, जो आपके विशिष्ट हार्ड ड्राइव या एसएसडी पर 512 बाइट्स हैं।

फाइलसिस्टम नाम के आधार पर फाइलों के लिए अनुरोध लेने के लिए जिम्मेदार हैं (कुछ आप समझते हैं) और ब्लॉक रीड / राइट रिक्वेस्ट में अनुवाद (डिस्क कुछ समझता है)। यह काम करने के लिए, किन क्षेत्रों का नक्शा किस फ़ाइल की जरूरत है। ऐसा करने के कई तरीके हैं और इस प्रकार, अस्तित्व में कई फाइल सिस्टम हैं। उदाहरण के लिए, Windows NTFS और FAT32 का उपयोग करता है, और Linux में ext2, ext3, आदि सहित कई हैं। Mac filesystems के बारे में निश्चित नहीं है, लेकिन यह एक ही सिद्धांत है।

कुछ फाइलसिस्टमों में सेक्टरों के ऊपर एक स्तर होगा, जिन्हें क्लस्टर कहा जाता है, जो सेक्टरों के सेट हैं - क्योंकि बड़े डिस्क पर हर एक सेक्टर का नक्शा बहुत अधिक जगह ले सकता है। NTFS पर, उदाहरण के लिए, आप क्लस्टर आकार निर्दिष्ट कर सकते हैं ("आवंटन इकाई" इसके लिए एक और नाम है), और 4096 बाइट्स (8 सेक्टर) उनमें से एक है जिसे आप चुन सकते हैं।

तो, यह सब देखते हुए, जिस "न्यूनतम" को आप वास्तव में डिस्क पर पढ़ या लिख ​​सकते हैं वह सेक्टर आकार या क्लस्टर आकार होगा। इसलिए जब आप किसी डिस्क पर 4097 बाइट्स लिख सकते हैं, तो फाइल सिस्टम को उस फाइल को दो क्लस्टर्स देना होता है, इसलिए यह आपके खाली स्थान से 8192 बाइट ले लेता है। इस प्रकार, आपके पास तार्किक आकार (डिस्क पर इसका उपभोग होता है) और भौतिक आकार (फ़ाइल का वास्तविक आकार) है।


* कुछ नए "उन्नत प्रारूप" डिस्क पर यह आंतरिक रूप से 4Kbytes है, लेकिन फिर भी संगतता के लिए OS को 512 बाइट क्षेत्रों जैसा दिखता है। SSDs अंदर से बेतहाशा अलग हैं लेकिन फिर भी OS को 512 बाइट सेक्टर की तरह लगते हैं।


चित्त आकर्षण करनेवाला! धन्यवाद। तो एक हार्ड ड्राइव (इस शैली के साथ, उदाहरण के लिए) केवल 8192b फ़ाइलों के रूप में कई 4097b फ़ाइलों के रूप में (लगभग) धारण करने में सक्षम होगी?
दिल लिथियम लिथियम

हाँ। हालांकि अगली पीढ़ी के फाइल सिस्टम जैसे btrfs (शायद ext4 भी, मुझे नहीं पता कि यह कर्नेल में है या नहीं) फ़ाइल मेटाडेटा के साथ छोटी फ़ाइलों को इनलाइन करने का समर्थन करता है, इसलिए यदि यह एक निश्चित आकार से नीचे है तो यह एक अतिरिक्त क्लस्टर नहीं लेगा। । इसका मतलब है कि एक्सेस टाइम में सुधार के साथ-साथ संभावित रूप से कम हुई जगह।
user55325

1
@ user55325 NTFS भी ऐसा करता है (उनके डॉक्स में निवासी रिकॉर्ड / फ़ाइल के रूप में जाना जाता है), इसलिए यह शायद ही नया हो। हालांकि HFS + पर अधिक जानकारी नहीं मिल सकती है।
बॉब

0

तुम लोग इसे पीछे की तरफ करो।

MacOS पर 'तार्किक' आकार फ़ाइल का आकार है। हम fooआउटपुट के रूप में किसी फ़ाइल के आकार को परिभाषित कर सकते हैं :

$ cat foo | wc -c

'भौतिक' आकार बाइट्स की संख्या है जो फ़ाइल डिस्क पर कब्जा कर रही है।

सबूत:

$ cat /dev/urandom | head -c 1 > foo; mdls foo | grep 'Logical\|Physical'

आउटपुट:

kMDItemLogicalSize                 = 1
kMDItemPhysicalSize                = 4096

आप du -h fooकिस आउटपुट के साथ भौतिक आकार की पुष्टि कर सकते हैं4.0k

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