XZ Utils для QNX(English version)
XZ Utils -- это универсальное программное обеспечение сжатия данных с высокой степенью сжатия.
XZ Utils были разработаны для POSIX-подобных операционных систем (
GNU/Linux,
*BSD и т.д.), но могут работать на некоторых не POSIX системах, например,
Windows.
XZ Utils это замена для
LZMA Utils.
Ядро кода сжатия
XZ Utils основано на во многом переработанном коде
LZMA SDK. Теперь основным алгоритмом сжатия стал
LZMA2, который используется внутри
.xz контейнера. При сжатии среднестатистического файла при помощи
XZ Utils, получается файл на 30% меньше, чем при сжатии
gzip, и на 15% меньше, чем при использовании
bzip2.
XZ Utils состоят из нескольких компонент:
- библиотека сжатия
liblzma с API подобному библиотеке
zlib;
- утилита командной строки
xz с синтаксисом подобным утилите
gzip;
- утилита распаковки
xzdec, меньшего размера, чем полнофункциональная программа
xz;
- набор небольших скриптов (
xzgrep,
xzdiff и т.д.) адаптированных из gzip для облегчения просмотра, обработки при помощи
grep и сравнения сжатых файлов;
- имитация утилит командной строки
LZMA Utils облегчает переход с
LZMA Utils на
XZ Utils.
Несмотря на то, что
liblzma имеет API подобный
zlib, сама библиотека
liblzma не включает некоторые функции ввода-вывода. Проектируется отдельная библиотека ввода-вывода, которая будет абстрактно обрабатывать файлы
.gz,
.bz2 и
.xz и иметь простой API.
Формат
XZ используется
GNU coreutils начиная с версии 7.1. Начиная с версии 1.22,
GNU tar позволяет автоматически сжимать и распаковывать архивы
tar с помощью
xz, обеспечивая прозрачную работу с ними (так же как это делают
gzip и
bzip2).
На самом деле очень интересное и перспективное ПО. Сборка в QNX6 проходит без проблем. Также существует проект XZ Embedded на который, тоже стоит обратить внимание, т.к. при достаточно маленьком объёме исполняемого кода (от 8 до 20 кб) обеспечивается распаковка данных с высокой степенью сжатия.ЛицензированиеБольшинство интересных частей
XZ Utils (например,
liblzma) находятся в общественном достоянии. Вы можете делать всё, что Вам угодно с частями, находящимися в общественном достоянии.
Некоторые части
XZ Utils (например, система сборки и некоторые утилиты) находятся под различными свободными программными лицензиями такими как GNU LGPLv2.1, GNU GPLv2 или GNU GPLv3.
Начиная с версии 5.0, планируется перевести
XZ Utils в общественное достояние.
Установка XZ Utils 5.0.1 в QNX4Для сборки
XZ Utils 5.0.1 под QNX4 понадобится исходный код, патч и скрипт для сборки. Сборка проводится в инструментальной среде
Linux при помощи
OpenWatcom. Чтобы не утомлять малозначительными подробностями процесса сборки, необходимые команды были собраны в один скрипт. Если собирать
XZ Utils из исходных кодов не планируется, то можно скачать и установить уже собранный архив. Все ссылки на скачивание расположены внизу этого сообщения.
1. СборкаСкачиваем архив с исходным кодом, патч и скрипт сборки в один каталог. При необходимости надо отредактировать скрипт -- можно изменить каталог, в который будет выполняться установка
XZ Utils или указат дополнительные опции для компилятора. После этого необходимо запустить скрипт:
В результате будет создан архив
xz-5.0.1-qnx4-bin-YYYYMMDD.tar.gz с исполняемыми модулями для QNX4. Полномасштабное тестирование этого пакета не проводилось. Из известных особенностей стоит упомянуть, что некоторые скрипты (xzmore, xzdiff) не работают. Возможно, что это будет исправлено в будущем. Также будем благодарны сообщениям об ошибках в версии для QNX4.
2. Установка из архиваНеобходимо скопировать архив
xz-5.0.1-qnx4-bin-YYYYMMDD.tar.gz в корневой каталог QNX4 и выполнить команду:
#cd /
# /etc/install -u xz-5.0.1-qnx4-bin-YYYYMMDD.tar.gz
Установка XZ Utils 5.0.1 в QNX6Для сборки
XZ Utils 5.0.1 под QNX6 понадобится исходный код и скрипт для сборки. Сборка проводится в инструментальной среде
Linux при помощи QNX SDP. Чтобы не утомлять малозначительными подробностями процесса сборки, необходимые команды были собраны в один скрипт. Если собирать
XZ Utils из исходных кодов не планируется, то можно скачать и установить уже собранный архив. Все ссылки на скачивание расположены внизу этого сообщения.
1. СборкаСкачиваем архив с исходным кодом и скрипт сборки в один каталог. При необходимости надо отредактировать скрипт -- можно установить платформу, для которой будет выполняться сборка, и каталог, в который будет выполняться установка
XZ Utils. После этого необходимо запустить скрипт:
В результате будет создан архив
xz-5.0.1-i486-pc-nto-qnx6.5.0-YYYYMMDD.tar.bz2 с исполняемыми модулями для QNX6.
2. Установка из архиваНеобходимо скопировать архив
xz-5.0.1-i486-pc-nto-qnx6.5.0-YYYYMMDD.tar.bz2 в корневой каталог QNX6 и выполнить команду:
# tar -C / -xf /xz-5.0.1-i486-pc-nto-qnx6.5.0-YYYYMMDD.tar.bz2
Если требуется установка в инструментальную машину, то команда может быть следующей:
# tar -C ${QNX_HOST} -xf /xz-5.0.1-i486-pc-nto-qnx6.5.0-YYYYMMDD.tar.bz2
Ссылки -
Сайт проекта XZ Utils -
Описании в Wikipedia -
Дистрибутив XZ Utils 5.0.1 для QNX6 -
Скрипт сборки для QNX6 -
Настройка OpenWatcom для QNX4 -
Утилита waccСсылки для QNX4