Формат Z-архива

Формат файла Z — это устаревший формат сжатия, который широко использовался в системах UNIX в 1980-х и 1990-х годах. Он использует алгоритм Лемпеля-Зива-Велча (LZW) для сжатия файлов, значительно уменьшая их размер при сохранении целостности данных. Хотя файлы Z в значительной степени вытеснены более современными форматами, такими как gzip и bzip2, они все еще встречаются в устаревших системах и архивах.

Общая информация архива Z

Z-архивы — это устаревший формат сжатия файлов, который в основном использовался в UNIX и ранних версиях Linux. Они используют алгоритм Лемпеля-Зива-Велча (LZW), который на момент своего появления был новаторским методом сжатия данных. Формат Z предназначен для уменьшения размера файлов за счет эффективного кодирования повторяющихся шаблонов данных, что делает его полезным для экономии дискового пространства и пропускной способности в эпоху ограниченной емкости хранилища. Z-архивы обычно сжимают отдельные файлы, а не целые каталоги, хотя их можно комбинировать с такими инструментами, как tar, для одновременного архивирования и сжатия нескольких файлов. Хотя формат Z в значительной степени был заменен более современными методами сжатия, он остается важной частью истории вычислений и до сих пор встречается в некоторых старых архивах программного обеспечения и системах на базе UNIX.

Информация об истории Z-архива

  • 1980-е годы: формат Z был разработан на заре UNIX как средство эффективного сжатия файлов и экономии места для хранения, которое в то время было ценным ресурсом.
  • 1983: Утилита сжатия, создающая Z-архивы, была представлена ​​как часть операционной системы UNIX. Он быстро стал стандартным инструментом для сжатия файлов в средах UNIX.
  • Конец 1980-х годов: по мере распространения систем UNIX формат Z стал широко использоваться при распространении программного обеспечения, особенно для отправки и хранения больших файлов по сетям.
  • 1990-е годы: появление более совершенных форматов сжатия, таких как gzip и bzip2, начало вытеснять формат Z из-за их более высокой степени сжатия и дополнительных функций.
  • 2000-е годы: хотя формат Z утратил популярность для большинства современных приложений, он продолжал поддерживаться в системах UNIX и Linux для обеспечения обратной совместимости со старым программным обеспечением.
  • Присутствует: хотя формат Z в значительной степени устарел, он все еще встречается в устаревших системах и в некоторых конкретных случаях использования, где требуется совместимость со старыми инструментами UNIX.

Структура Z-архива

Формат архива Z относительно прост по сравнению с более современными форматами сжатия. Он был разработан для сжатия отдельных файлов и лишен некоторых расширенных функций, имеющихся в новых форматах. Вот обзор структуры Z-архива:

  • Заголовок: Заголовок Z-архива содержит основные метаданные, включая магическое число (0x1f9d), которое идентифицирует файл как Z-архив. Он также может включать некоторые управляющие флаги, определяющие параметры сжатия, хотя они минимальны по сравнению с современными форматами.
  • Поток сжатых данных: Основным компонентом Z-архива является поток сжатых данных, в котором данные файла сохраняются после обработки алгоритмом сжатия LZW (Lempel-Ziv-Welch). Данные сжимаются в один непрерывный поток, а это означает, что для доступа к любой части данных необходимо распаковать весь файл.
  • Маркер конца файла (EOF): Формат Z не имеет формального нижнего колонтитула, как некоторые другие форматы. Вместо этого конец сжатого потока данных отмечает завершение архива. В базовом формате Z нет встроенных контрольных сумм или функций проверки целостности.

Z-методы сжатия

Формат Z опирается исключительно на алгоритм сжатия LZW (Лемпель-Зив-Велч). Этот метод был инновационным для своего времени и отличался балансом простоты и эффективности. Вот более детальный взгляд на метод сжатия, используемый в Z-архивах:

  1. LZW-сжатие. Алгоритм LZW — это метод сжатия на основе словаря, который заменяет повторяющиеся последовательности данных более короткими кодами, уменьшая общий размер файла. Это метод сжатия без потерь, что означает, что исходные данные могут быть полностью восстановлены из сжатого файла. LZW стал популярным на заре сжатия файлов благодаря относительно высокой скорости сжатия и распаковки.
  2. Без дополнительных фильтров и методов. В отличие от современных форматов сжатия, которые могут поддерживать различные фильтры и дополнительные методы сжатия, формат Z использует только LZW без дополнительных фильтров или улучшений. Эта простота является одновременно и сильной стороной, и ограничением, поскольку она делает формат простым в реализации, но менее гибким и эффективным по сравнению с новыми форматами.
  3. Нет проверок целостности. Формат Z не включает встроенные механизмы контрольной суммы, такие как CRC32 или SHA-256, для проверки целостности данных. В результате обнаружить повреждение внутри Z-архива становится сложнее, вместо этого полагаясь на внешние методы или поведение процесса распаковки.

Операции, поддерживаемые расширением .Z

Aspose.ZIP предлагает комплексную поддержку для работы с Z-архивами, обычно используемыми в Unix-подобных операционных системах. Эта функция упрощает управление и манипулирование сжатыми файлами в ваших приложениях. Вот какие возможности Aspose.ZIP дает вам:

  • Извлечение Z-архивов: с легкостью извлекайте все содержимое из архива .z. Aspose.ZIP гарантирует сохранение целостности и исходной структуры ваших данных в процессе извлечения.
  • Точное выборочное извлечение: выберите для извлечения определенные файлы в архиве .z. Это позволяет вам выборочно восстанавливать данные на основе имен файлов или других критериев, оптимизируя рабочий процесс и экономя время.
  • Оптимизированное сжатие: Создавайте Z-архивы из файлов и каталогов непосредственно в ваших приложениях. Aspose.ZIP использует эффективный метод сжатия LZMA2, позволяющий значительно уменьшить размер файлов и сэкономить ценное пространство для хранения. Используйте эту функцию для архивирования данных, резервного копирования или эффективной передачи файлов.
  • Варианты настройки: настраивайте процесс сжатия, регулируя уровни сжатия и другие параметры. Aspose.ZIP позволяет найти баланс между скоростью сжатия и размером файла. Вы можете адаптировать процесс для оптимизации более быстрого сжатия или достижения максимального сжатия для конкретных нужд.

Структура Z-файлового архива

Формат файла .Z, устаревший метод сжатия, структурирован так, чтобы обеспечить базовое эффективное сжатие с использованием алгоритма LZW. Несмотря на то, что файловая структура Z проще современных, таких как форматы .xz , она по-прежнему имеет решающее значение для понимания того, как обрабатывались данные в ранних системах UNIX. Вот обзор структуры архива .Z:

  1. Заголовок файла:

    • Магические байты: файл начинается с магического числа (0x1f9d), которое идентифицирует его как сжатый файл .Z. Это имеет решающее значение для распознавания типа файла при распаковке.
    • Флаги: заголовок может включать базовые флаги, определяющие способ выполнения сжатия. Эти флаги могут указывать, используются ли определенные дополнительные функции, такие как использование кодов переменной длины.
  2. Поток сжатых данных:

    • Сжатые данные LZW: основная часть файла .Z содержит фактические данные файла, сжатые с использованием алгоритма LZW (Лемпель-Зив-Велч). Данные хранятся в виде единого непрерывного потока сжатой информации, что снижает избыточность за счет кодирования повторяющихся шаблонов данных более короткими кодами.
    • Никаких блоков и сегментации. В отличие от более сложных форматов, которые делят данные на блоки или сегменты для независимого сжатия и упрощения устранения ошибок, формат Z сжимает весь файл за один раз. Эта простота была выгодна из-за ограниченных вычислительных ресурсов того времени, но может стать недостатком, если файл поврежден.
  3. Маркер конца файла (EOF):

    • Неявное завершение: формат Z не имеет явного маркера конца файла или нижнего колонтитула. Поток сжатых данных просто выполняется до тех пор, пока не будет достигнут конец файла. Процесс распаковки продолжается до тех пор, пока все данные не будут извлечены или пока не возникнет ошибка.
    • Отсутствие встроенных проверок целостности: в отличие от современных форматов сжатия, архивы .Z не включают в структуру файла контрольные суммы или другие механизмы проверки целостности данных. Отсутствие встроенного средства обнаружения ошибок означает, что повреждение можно заметить только во время распаковки, если выходные данные неполны или неверны.
  4. Необязательные метаданные:

    • Минимальные метаданные: формат файла Z является очень простым и не поддерживает дополнительные метаданные, такие как имена файлов, временные метки или расширенные атрибуты в сжатом файле. Любая такая информация должна обрабатываться извне, обычно файловой системой или сопутствующими файлами.

Структура Z-файлового архива

Популярность формата Z-архива

Формат файлов .Z был очень популярен на заре существования UNIX и ранних систем Linux, в основном в 1980-х и 1990-х годах. Он стал стандартом сжатия файлов на этих платформах благодаря относительно эффективному использованию места для хранения и быстрому времени распаковки. Этот формат обычно использовался для распространения программного обеспечения, обновлений системы и больших файлов данных, особенно в средах с ограниченной емкостью хранилища. Хотя формат Z в значительной степени был заменен более современными форматами сжатия, такими как gzip и bzip2 , он по-прежнему поддерживается для совместимости с устаревшими версиями во многих системах UNIX и Linux. Несмотря на снижение общего использования, формат Z все еще встречается в определенных архивных контекстах и ​​старых репозиториях программного обеспечения, сохраняя свою нишу, но важную роль в истории вычислений.

Примеры использования Z-архивов

В этом разделе представлены примеры кода, демонстрирующие, как сжимать и распаковывать Z-архивы с помощью C# и Java. Ниже приведены примеры использования класса ZArchive для работы с файлами Z, иллюстрирующие, как ими можно управлять программно как в средах C#, так и в Java.

Сompress the Z file into .Z extension via C# using ZArchive instance.

    using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
    {
        using (ZArchive archive = new ZArchive())
        {
            archive.SetSource(source);
            archive.Save("alice29.txt.Z");
        }
    }

Open Z Archive via C#

    FileInfo fi = new FileInfo("data.bin.Z");

    using (ZArchive archive = new ZArchive(fi.OpenRead()))
    {
        archive.Extract("data.bin");
    }

Сompress the Z file into .Z extension via Java using ZArchive instance.

    try (FileInputStream source = new FileInputStream("alice29.txt")) {
        try (ZArchive archive = new ZArchive()) {
            archive.setSource(source);
            archive.save("alice29.txt.Z");
        }
    } catch (IOException ex) {
    }

Open Z Archive via Java

    try (ZArchive archive = new ZArchive("data.bin.Z")) {
        archive.extract("data.bin");
    }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Дополнительная информация

Часто Задаваемые Вопросы

1. Что такое Z-файл и чем он отличается от других форматов сжатых файлов, таких как ZIP или GZIP?

Файл Z представляет собой сжатый архив, созданный с использованием алгоритма Лемпеля-Зива-Велча (LZW), обычно используемого в системах UNIX. В отличие от ZIP или GZIP, которые более современны и предлагают лучшую степень сжатия и дополнительные функции, формат Z проще и был популярен на заре вычислительной техники. Файлы Z обычно встречаются в старых дистрибутивах программного обеспечения или устаревших системах.

2. Z-файлы все еще широко используются сегодня?

Файлы Z сегодня широко не используются, поскольку они в основном заменены более эффективными форматами сжатия, такими как GZIP, BZIP2 и XZ. Однако файлы Z по-прежнему поддерживаются во многих системах UNIX и Linux для обеспечения совместимости с устаревшими версиями, и их все еще можно встретить в архивах старого программного обеспечения.

3. Могу ли я преобразовать файл Z в другой формат, например ZIP или GZIP?

Да, Z-файл можно конвертировать в другой формат на лету. Вы можете извлечь определенную запись из Z-архива непосредственно в память, не создавая промежуточный файл. Это обеспечивает плавную интеграцию с другими форматами сжатия, такими как gzip или zip.