आज का प्रश्न और उत्तर सत्र हमारे पास सुपरयूसर की सौजन्य है - स्टैक एक्सचेंज का एक उपविभाग, क्यू एंड ए वेब साइट्स का एक समुदाय संचालित समूह।
प्रश्न
सुपर यूज़र रीडर मार्कस जे टैर प्रारूप के बारे में उत्सुक है और हम इन सभी वर्षों के बाद भी इसका उपयोग क्यों कर रहे हैं:
I know that tar was made for tape archives back in the day, but today we have archive file formats that both aggregate files and perform compression within the same logical file format.
Questions:
- Is there a performance penalty during the aggregation/compression/decompression stages for using tar encapsulated in gzip or bzip2, when compared to using a file format that does aggregation and compression in the same data structure? Assume the runtime of the compressor being compared is identical (e.g. gzip and Deflate are similar).
- Are there features of the tar file format that other file formats, such as.7z and.zip do not have?
- Since tar is such an old file format, and newer file formats exist today, why is tar (whether encapsulated in gzip, bzip2 or even the new xz) still so widely used today on GNU/Linux, Android, BSD, and other such UNIX operating systems, for file transfers, program source and binary downloads, and sometimes even as a package manager format?
यह एक बिल्कुल उचित सवाल है; पिछले तीस सालों में कंप्यूटिंग दुनिया में इतना बदल गया है, लेकिन हम अभी भी टैर प्रारूप का उपयोग कर रहे हैं। कहानी क्या है?
उत्तर
सुपरयूसर योगदानकर्ता ऑलक्विज़ोटिक टैर प्रारूप की दीर्घायु और कार्यक्षमता में कुछ अंतर्दृष्टि प्रदान करता है:
Part 1: Performance
Here is a comparison of two separate workflows and what they do.
You have a file on disk
blah.tar.gz
जो कहता है, 1 जीबी का जीजीआईपी-संपीड़ित डेटा, जो असम्पीडित होता है, 2 जीबी (इसलिए 50% का संपीड़न अनुपात) पर कब्जा करता है।
जिस तरह से आप इसे बनायेंगे, अगर आप अलग-अलग संग्रह और संपीड़न करना चाहते थे, तो यह होगा:
tar cf blah.tar files …
इसका परिणाम होगा
blah.tar
जो कि केवल एकत्रीकरण है
files …
असंपीड़ित रूप में।
फिर आप करेंगे
gzip blah.tar
यह सामग्री को पढ़ेगा
blah.tar
डिस्क से, उन्हें gzip संपीड़न एल्गोरिदम के माध्यम से संपीड़ित करें, सामग्री लिखें
blah.tar.gz
फिर फ़ाइल को अनलिंक (हटाएं)
blah.tar
अब, चलो डिकंप्रेस!
रास्ता 1
आपके पास
blah.tar.gz
इस तरह या किसी और तरह।
आप दौड़ने का फैसला करते हैं:
gunzip blah.tar.gz
यह करेगा
-
1 जीबी संपीड़ित डेटा सामग्री पढ़ें
blah.tar.gz
-
संपीड़ित डेटा को प्रोसेस करें
gzip
स्मृति में डिकंप्रेसर।
-
चूंकि मेमोरी बफर डेटा के लायक "ब्लॉक" के साथ भर जाता है, तो असम्पीडित डेटा को फ़ाइल में लिखें
blah.tar
डिस्क पर और दोहराएं जब तक कि सभी संकुचित डेटा पढ़ा नहीं जाता है।
-
फ़ाइल को अनलिंक (हटाएं)
blah.tar.gz
अब आपके पास है
blah.tar
डिस्क पर, जो असंपीड़ित है लेकिन इसमें बहुत कम डेटा संरचना ओवरहेड के साथ, इसमें एक या अधिक फ़ाइलें शामिल हैं। फ़ाइल का आकार शायद हैएक बाइट्स सभी फ़ाइल डेटा के योग से बड़ा होगा।
तुम दौड़ो:
tar xvf blah.tar
यह करेगा
-
2 जीबी की असंपीड़ित डेटा सामग्री पढ़ें
blah.tar
और यह
tar
फ़ाइल स्वरूपों के डेटा संरचनाओं, फ़ाइल अनुमतियों, फ़ाइल नाम, निर्देशिका, आदि के बारे में जानकारी सहित।
- 2 जीबी डेटा और मेटाडेटा डिस्क को डिस्क करने के लिए लिखें। इसमें शामिल है: डिस्क पर नई फाइलें और निर्देशिका बनाने के लिए डेटा संरचना / मेटाडेटा जानकारी का अनुवाद करना, या नई डेटा सामग्री के साथ मौजूदा फ़ाइलों और निर्देशिकाओं को फिर से लिखना।
कुल डेटा हम पढ़ें इस प्रक्रिया में डिस्क से 1 जीबी (गनज़िप के लिए) + 2 जीबी (टैर के लिए) = 3 जीबी थी।
कुल डेटा हम लिखा था इस प्रक्रिया में डिस्क 2 जीबी (गनज़िप के लिए) + 2 जीबी (टैर के लिए) + मेटाडाटा = लगभग 4 जीबी के लिए कुछ बाइट्स थी।
रास्ता 2
आपके पास
blah.tar.gz
इस तरह या किसी और तरह।
आप दौड़ने का फैसला करते हैं:
tar xvzf blah.tar.gz
यह करेगा
-
1 जीबी संपीड़ित डेटा सामग्री पढ़ें
blah.tar.gz
स्मृति में एक समय में एक ब्लॉक।
-
संपीड़ित डेटा को प्रोसेस करें
gzip
स्मृति में डिकंप्रेसर।
-
चूंकि मेमोरी बफर भर जाता है, यह होगा पाइप उस डेटा, स्मृति में, के माध्यम से
tar
फ़ाइल स्वरूप पार्सर, जो मेटाडेटा, आदि के बारे में जानकारी और असम्पीडित फ़ाइल डेटा पढ़ेगा।
-
जैसा कि मेमोरी बफर भरता है
tar
फ़ाइल पार्सर, यह असम्पीडित डेटा को डिस्क पर, फ़ाइलों और निर्देशिकाओं को बनाकर और असम्पीडित सामग्री के साथ भरकर, डिस्क पर लिख देगा।
कुल डेटा हम पढ़ें इस प्रक्रिया में डिस्क से 1 जीबी संपीड़ित डेटा, अवधि थी।
कुल डेटा हम लिखा था इस प्रक्रिया में डिस्क के लिए 2 जीबी असंपीड़ित डेटा + मेटाडाटा = लगभग 2 जीबी के लिए कुछ बाइट्स था।
यदि आप ध्यान दें, डिस्क I / O की मात्रा में रास्ता 2 हैसमान डिस्क I / O द्वारा निष्पादित, कहें,
Zip
या
7-Zip
संपीड़न अनुपात में किसी भी अंतर के लिए समायोजन, कार्यक्रम।
और यदि संपीड़न अनुपात आपकी चिंता है, तो इसका उपयोग करें
Xz
encapsulate करने के लिए कंप्रेसर
tar
और आपके पास LZMA2'ed TAR संग्रह है, जो कि सबसे उन्नत एल्गोरिदम के रूप में उतना ही कुशल है
7-Zip
:-)
भाग 2: विशेषताएं
tar
अपनी फ़ाइल मेटाडेटा के भीतर यूनिक्स अनुमतियों को संग्रहीत करता है, और विभिन्न प्रकार की विभिन्न अनुमतियों, प्रतीकात्मक लिंक इत्यादि के साथ सफलतापूर्वक निर्देशिका को पैक करने के लिए बहुत अच्छी तरह से जाना जाता है और परीक्षण किया जाता है। कुछ उदाहरणों से अधिक है जहां किसी को फ़ाइलों का एक गुच्छा ग्लोब करने की आवश्यकता हो सकती है एक फ़ाइल या स्ट्रीम, लेकिन यह आवश्यक रूप से संपीड़ित नहीं है (हालांकि संपीड़न उपयोगी है और अक्सर उपयोग किया जाता है)।
भाग 3: संगतता
कई टूल स्रोत या बाइनरी रूप में.tar.gz या.tar.bz2 के रूप में वितरित किए जाते हैं क्योंकि यह "सबसे कम आम denominator" फ़ाइल प्रारूप है: अधिकांश विंडोज उपयोगकर्ताओं की तरह.zip या.arar decompressors तक पहुंच है, अधिकांश लिनक्स इंस्टॉलेशन, यहां तक कि सबसे बुनियादी, कम से कम टैर और गनज़िप तक पहुंच होगी, इससे कोई फर्क नहीं पड़ता कि कितना पुराना या नीचे गिर गया। यहां तक कि एंड्रॉइड फर्मवेयर के पास इन उपकरणों तक पहुंच है।
आधुनिक वितरण चलाने वाले दर्शकों को लक्षित करने वाली नई परियोजनाएं अधिक आधुनिक प्रारूप में वितरित हो सकती हैं, जैसे.tar.xz (Xz (LZMA) संपीड़न प्रारूप का उपयोग करके, जो gzip या bzip2 से बेहतर संपीड़ित होती है), या.7z, जो समान है ज़िप या रार फ़ाइल प्रारूपों में यह दोनों एक ही फ़ाइल में एकाधिक फ़ाइलों को encapsulating के लिए एक लेआउट संकुचित और निर्दिष्ट करता है।
आपको नहीं लगता कि.7z उसी कारण से अधिक बार उपयोग किया जाता है कि संगीत को ओपस, या वेबएम में वीडियो जैसे नए नए प्रारूपों में ऑनलाइन डाउनलोड स्टोर्स से बेचा नहीं जाता है। प्राचीन या बहुत ही बुनियादी प्रणालियों वाले लोगों के साथ संगतता।
स्पष्टीकरण में जोड़ने के लिए कुछ है? टिप्पणियों में आवाज उठाओ।अन्य तकनीक-समझदार स्टैक एक्सचेंज उपयोगकर्ताओं से अधिक उत्तरों पढ़ना चाहते हैं? यहां पूर्ण चर्चा धागा देखें।