21Aug

Jaka jest dziś korzyść z używania formatu pliku Tar?

click fraud protection


Format archiwizacji tar jest w czasach obliczu prawdziwym Metuselahem, ale wciąż jest intensywnie wykorzystywany dzisiaj. Co sprawia, że ​​format tara jest tak użyteczny długo po jego powstaniu?

Dzisiejsze pytanie &Sesja odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, opartego na społecznościach grupy Q & A.

Pytanie Czytnik

SuperUser MarcusJ jest ciekawy formatu tar i dlaczego używamy go po tylu latach:

Wiem, że tar został stworzony dla archiwów taśm w ciągu dnia, ale dzisiaj mamy formaty plików archiwalnych, którezagregować pliki i wykonać kompresję w tym samym formacie pliku logicznego.

Pytania:

  • Czy podczas agregacji etapów dekompresji /compression/ używa się gamy skompresowanej w gzip lub bzip2, w porównaniu z użyciem formatu plików, który agreguje i kompresuje w tej samej strukturze danych? Załóżmy, że czas pracy porównywalnej kompresora jest identyczny( np. Gzip i Deflate są podobne).
  • Czy istnieją funkcje formatu pliku tar, którego nie mają inne formaty plików, takie jak. 7z i. zip?
  • instagram viewer
  • Ponieważ tar jest takim starym formatem plików i istnieją nowsze formaty plików, dlaczego jest on tak szeroko używany dzisiaj na systemach GNU / Linux, Android, BSD i innych tego typu programach? Systemy operacyjne UNIX, do przesyłania plików, źródła programu i plików binarnych, a czasami nawet jako format menedżera pakietów?

Jest to całkowicie uzasadnione pytanie;tak wiele zmieniło się w świecie komputerów w ciągu ostatnich trzydziestu lat, ale wciąż używamy formatu tar. Jaka jest historia?

Odpowiedź Autor

SuperUżytkownik Allquixotic oferuje wgląd w długowieczność i funkcjonalność formatu tar:

Część 1: Wydajność

Oto porównanie dwóch oddzielnych przepływów pracy i ich działania.

Masz plik na dysku blah.tar.gz, czyli 1 GB danych skompresowanych gzipem, które po nieskompresowaniu zajmują 2 GB( czyli współczynnik kompresji 50%).

Sposób, w jaki byś to zrobił, gdybyś wykonywał archiwizowanie i kompresję osobno, byłby następujący:

tar cf blah.tar files. ..

To spowodowałoby blah.tar, który jest zwykłą agregacją plików.w nieskompresowanej formie.

Następnie zrobiłbyś

gzip blah.tar

To odczytałoby zawartość blah.tar z dysku, skompresuj je za pomocą algorytmu kompresji gzip, zapisz zawartość do blah.tar.gz, a następnie odłącz( usuń) plik bla.smoła.

Teraz rozpakujmy!

Droga 1

Masz blah.tar.gz, w taki czy inny sposób.

Zdecydowałeś się uruchomić:

gunzip blah.tar.gz

To będzie

  • ODCZYTAJ zawartość danych skompresowanych 1GB blah.tar.gz.
  • Przetwórz skompresowane dane za pomocą dekompresora gzip w pamięci.
  • Gdy bufor pamięci zapełnia się wartością "bloku", WRITE spakuj dane do pliku fileblah.tar na dysku i powtarzaj, aż wszystkie skompresowane dane zostaną odczytane.
  • Odłącz( usuń) plik blah.tar.gz.

Teraz masz blah.tar na dysku, który jest nieskompresowany, ale zawiera jeden lub więcej plików w nim, z bardzo niskim obciążeniem strukturą danych. Rozmiar pliku to prawdopodobnie o kilka bajtów większy niż suma wszystkich danych pliku.

Uruchomiono:

tar xvf blah.tar

To

  • ODCZYT 2GB nieskompresowanej zawartości danych blah.tar i struktur danych formatu tar, w tym informacje o uprawnieniach do plików, nazwach plików, katalogach itp.
  • WRITE do dysku2 GB danych plus metadane. Obejmuje to: tłumaczenie informacji o strukturze danych / metadanych w celu utworzenia nowych plików i katalogów na dysku, lub przepisanie istniejących plików i katalogów z nową zawartością danych.

Łączne dane, które READ z dysku w tym procesie wynosiły 1 GB( dla gunzip) + 2 GB( dla tar) = 3 GB.

Łączne dane, które WROTE na dysku w tym procesie wynosiły 2 GB( dla gunzip) + 2 GB( dla tar) + kilka bajtów dla metadanych = około 4 GB.

Way 2

Masz blah.tar.gz, w ten czy inny sposób.

Zdecydowałeś się uruchomić:

tar xvzf blah.tar.gz

To będzie

  • PRZECZYTAĆ zawartość pamięci skompresowanej 1GB blah.tar.gz, blok na raz, do pamięci.
  • Przetwórz skompresowane dane za pomocą dekompresora gzip w pamięci.
  • Gdy bufor pamięci zapełni się, potraktuje jako dane, w pamięci, do parsera formatu pliku tar, który odczyta informacje o metadanych itp. Oraz nieskompresowane dane pliku.
  • Gdy bufor pamięci zapełni się w parserze pliku tar, zapisze nieskompresowane dane na dysk, tworząc pliki i katalogi i wypełniając je nieskompresowaną zawartością.

Łączna ilość danych, które READ z dysku w tym procesie wynosiła 1 GB skompresowanych danych, kropka.

Łączne dane, które WROTE na dysku w tym procesie to 2 GB nieskompresowanych danych + kilka bajtów dla metadanych = około 2 GB.

Jeśli zauważysz, ilość dyskowych operacji we / wy w Way 2 jest identyczna jak z dyskowymi wejściami / wyjściami wykonywanymi przez, powiedzmy, programy Zip or7-Zip, dostosowując się do wszelkich różnic w stopniu kompresji.

A jeśli chodzi o stopień kompresji, użyj kompresora Xz do enkapsulacji tar, a masz archiwum TAR LZMA2, które jest tak samo wydajne jak najbardziej zaawansowany algorytm dostępny dla 7-Zip: -)

Część 2: Funkcje

tar przechowuje uprawnienia systemu UNIX w swoich metadanych plików i jest bardzo dobrze znany i przetestowany pod kątem pomyślnego upakowania katalogu z różnego rodzaju różnymi uprawnieniami, dowiązaniami symbolicznymi itd. Jest więcej niż kilka przypadków, w których trzeba by zgrupować kilka plikówdo pojedynczego pliku lub strumienia, ale niekoniecznie go kompresuj( chociaż kompresja jest przydatna i często używana).

Część 3: Kompatybilność

Wiele narzędzi jest rozpowszechnianych w źródłowej lub binarnej formie jako. tar.gz lub. tar.bz2, ponieważ jest to format pliku "najniższy wspólny mianownik": podobnie jak większość użytkowników systemu Windows ma dostęp do. zip lub. rardekompresory, większość instalacji Linuksowych, nawet te najbardziej podstawowe, będą miały dostęp do przynajmniej tar i gunzip, bez względu na to, ile lat i nie zostanie zmniejszona. Nawet oprogramowanie układowe Androida ma dostęp do tych narzędzi.

Nowe projekty kierowane na odbiorców z nowoczesnymi dystrybucjami mogą bardzo dobrze dystrybuować w bardziej nowoczesnym formacie, takim jak. tar.xz( przy użyciu formatu kompresji Xz( LZMA), który kompresuje lepiej niż gzip lub bzip2), lub. 7z, który jest podobnydo formatów plików Zip lub Rar, ponieważ kompresuje i określa układ enkapsulacji wielu plików w jeden plik.

Nie widzisz. 7z częściej używanych z tego samego powodu, dla którego muzyka nie jest sprzedawana z internetowych sklepów z plikami do pobrania w zupełnie nowych formatach, takich jak Opus lub wideo w WebM.Zgodność z osobami używającymi systemów starożytnych lub bardzo podstawowych.

Czy chcesz coś dodać do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.