xar (архиватор)
Расширения имен файлов | .xar , .pkg , .xip [1] |
---|---|
Тип интернет-СМИ | приложение/x-xar [1] |
Единый идентификатор типа (UTI) | com.apple.xar-архив |
Магическое число | что! |
Тип формата | формат файла архива |
Расширено с | XML , gzip |
XAR (сокращение от e X tensible AR chive format ) — с открытым исходным кодом архиватор файлов архиватора и формат файлов . Он был создан в рамках проекта OpenDarwin и используется в macOS X 10.5 и более поздних версиях для процедур установки программного обеспечения, а также в расширениях браузера в Safari 5.0 и более поздних версиях. Xar заменил использование gzip- файлов pax . [2]
Одна веток разработки из RPM , RPM5 , использует xar. [3]
Структура файла
[ редактировать ]Файл состоит из трех разделов: заголовка, оглавления и кучи. Все поля хранятся в порядке с обратным порядком байтов . [4]
Заголовок
[ редактировать ]Компенсировать# | Размер (в байтах) | Цель |
---|---|---|
0 | 4 | файла Подпись , используемая для идентификации формата файла как Xar. Это всегда должно быть равно xar! |
4 | 2 | Размер заголовка |
6 | 2 | Версия формата Xar для использования. На данный момент существует только версия 1. |
8 | 8 | Длина сжатых данных TOC. |
16 | 8 | Длина несжатых данных TOC. |
24 | 4 | Алгоритм контрольной суммы: |
28 | 0, 4 , 36 | иногда заполнение байтов или имени алгоритма контрольной суммы |
Оглавление
[ редактировать ]Xar отличается от cpio , tar или ar тем, что он сохраняет TOC (оглавление) в начале файла, что усложняет добавление в архив, но делает ненужным сканирование архива для извлечения отдельного содержащегося файла. . Оглавление хранится в виде zlib , сжатого UTF-8 и кодированного XML-документа . [6] [4] Каждый файл, хранящийся в Xar, независимо сжимается/кодируется. Это дает возможность закодировать файл(ы) с помощью gzip , в то время как другой файл в том же архиве закодирован другим методом, например bzip2 . В некоторых системах элемент архива также может быть закодирован методом сжатия xz или lzma . [5]
Пример содержания
<?xml version="1.0" encoding="UTF-8"?><xar> <toc> <checksum style="sha1"> <offset>0</offset> <size>20</size> </checksum> <file id="1"> <group>staff</group> <gid>20</gid> <user>joe</user> <uid>501</uid> <mode>0755</mode> <type>directory</type> <name>com.foobar</name> <file id="2"> <group></group> <gid>20</gid> <user></user> <uid>501</uid> <mode>0775</mode> <type>directory</type> <name>Contents</name> <file id="3"> <data> <length>428</length> <offset>20</offset> <size>1005</size> <encoding style="application/x-gzip"/> <archived-checksum style="SHA1">a5f6f1461213a904f831d4ef6f214638342842ed</archived-checksum> <extracted-checksum style="SHA1">21d21a0c90378248ce0dfb6f345376d1b00d65fc</extracted-checksum> </data> <group></group> <gid>20</gid> <user></user> <uid>501</uid> <mode>0664</mode> <type>file</type> <name>Info.plist</name> </file> <file id="4"> <group></group> <gid>20</gid> <user></user> <uid>501</uid> <mode>0775</mode> <type>directory</type> <name>Resources</name> <file id="5"> <data> <length>14868</length> <offset>448</offset> <size>274432</size> <encoding style="application/x-gzip"/> <archived-checksum style="SHA1">efe5c97921de7ccc5aebc158d158e9d4280d6814</archived-checksum> <extracted-checksum style="SHA1">45c8be42d1d9afdb57ddd5e9311453010ec46161</extracted-checksum> </data> <group></group> <gid>20</gid> <user></user> <uid>501</uid> <mode>0664</mode> <type>file</type> <name>foobar</name> </file> <file id="6"> <data> <length>17635</length> <offset>15316</offset> <size>45056</size> <encoding style="application/x-gzip"/> <archived-checksum style="SHA1">3c761ffcc81ee6e232e4f4a1c4a81654c26c4e52</archived-checksum> <extracted-checksum style="SHA1">0ea31f8ef0e5987a1838a64ab5c26ebf3ee4bc37</extracted-checksum> </data> <group></group> <gid>20</gid> <user></user> <uid>501</uid> <mode>0664</mode> <type>file</type> <name>docSet.skidx</name> </file> <file id="7"> <group></group> <gid>20</gid> <user></user> <uid>501</uid> <mode>0775</mode> <type>directory</type> <name>Documents</name> <file id="8"> <data> <length>35790</length> <offset>32951</offset> <size>209242</size> <encoding style="application/x-gzip"/> <archived-checksum style="SHA1">5242cd71585c34e722932f324706f8c00e1ae0c5</archived-checksum> <extracted-checksum style="SHA1">c0e013e53d829511835e2b429abb5198731e9a3e</extracted-checksum> </data> <group></group> <gid>20</gid> <user></user> <uid>501</uid> <mode>0664</mode> <type>file</type> <name>foobar.html</name> </file> </file> </file> </file> </file> </toc></xar>
Ссылки
[ редактировать ]- ^ Jump up to: а б "приложение/x-xar" . Проверено 19 марта 2019 г.
- ^ Nabble - xar в Mac OS X. Архивировано 7 февраля 2007 г., в Wayback Machine.
- ^ Менеджер пакетов RPM 5
- ^ Jump up to: а б «Xarformat · mackyle/Xar Wiki» . Гитхаб .
- ^ Jump up to: а б Браун, Роб; Фуллер, Лэндон; Леймбах, Дэвид; Ван Вехтен, Кевин (4 июня 2015 г.). «xar — справочная страница расширяемого архиватора mojave» . Проверено 26 марта 2019 г.
- ^ «Архив кода Google — долгосрочное хранилище для хостинга проектов Google Code» .
Внешние ссылки
[ редактировать ]- Оригинальный проект Xar (не поддерживается)
- форк исходного проекта (не поддерживается)
- Apple xar на GitHub