Xar (архиватор) - Xar (archiver)

XAR
Расширения имени файла.xar, .pkg, .xip[1]
Тип интернет-СМИ
приложение / x-xar[1]
Единый идентификатор типа (UTI)com.apple.xar-архив
Магическое числоxar!
Последний релиз
1.6.1
(17 сентября 2012 г.; 8 лет назад (2012-09-17))
Тип форматаформат файла архива
Расширен сXML, gzip
Интернет сайтмакил.github.io/ xar/ github.com/ mackyle/ xar

XAR (Короче для еИксрастяжимый ARформат чеснока) является Открытый исходный код файловый архиватор и архиватора формат файла. Он был создан в OpenDarwin проект и используется в macOS X 10.5 и выше для процедур установки программного обеспечения, а также расширений браузера в Сафари 5.0 и выше. Xar заменил использование сжатый pax файлы.[2]

Один ветвь разработки из Об / мин, RPM5, использует xar.[3]

Файловая структура

Файл XAR Structure.svg

Файл состоит из трех разделов: заголовка, оглавления и кучи. Все поля хранятся в прямой порядок байтов порядок.[4]

Заголовок

Компенсировать#Размер
(в байтах)
Цель
04Файл подпись используется для идентификации формата файла как Xar.
Это всегда должно быть равно xar!
42Размер заголовка
62Версия формата Xar для использования.
На данный момент есть только версия 1.
88Длина сжатых данных TOC.
168Длина несжатых данных TOC.
244Алгоритм контрольной суммы:
280, 4 , 36иногда набивка имя алгоритма байтов или контрольной суммы

Оглавление

Xar отличается от cpio, деготь или же ар в том, что он хранит оглавление в начале файла, что усложняет добавление в архив, но делает ненужным сканирование архива для извлечения отдельного содержащегося файла. Оглавление сохраняется как zlib сжатый, UTF-8 закодированный, XML-документ.[6][4] Каждый файл, хранящийся в Xar, независимо сжимается / кодируется. Это дает возможность закодировать файл (ы) с помощью gzip в то время как другой файл в том же архиве закодирован другим методом, например bzip2. В некоторых системах член архива также может быть закодирован xz или же Lzma метод сжатия.[5]

Пример содержания

<?xml version="1.0" encoding="UTF-8"?><xar> <toc>  <контрольная сумма style ="sha1">   <offset>0</offset>   <size>20</size>  </checksum>  <файл id ="1">   <group>сотрудники</group>   <gid>20</gid>   <user>Джо</user>   <uid>501</uid>   <mode>0755</mode>   <type>каталог</type>   <name>com.foobar</name>   <файл id ="2">    <group></group>    <gid>20</gid>    <user></user>    <uid>501</uid>    <mode>0775</mode>    <type>каталог</type>    <name>Содержание</name>    <файл id ="3">     <data>      <length>428</length>      <offset>20</offset>      <size>1005</size>      <кодировка style ="приложение / x-gzip"/>      <архивная контрольная сумма style =«SHA1»>a5f6f1461213a904f831d4ef6f214638342842ed</archived-checksum>      <извлеченная контрольная сумма style =«SHA1»>21d21a0c90378248ce0dfb6f345376d1b00d65fc</extracted-checksum>     </data>     <group></group>     <gid>20</gid>     <user></user>     <uid>501</uid>     <mode>0664</mode>     <type>файл</type>     <name>Info.plist</name>    </file>    <файл id ="4">     <group></group>     <gid>20</gid>     <user></user>     <uid>501</uid>     <mode>0775</mode>     <type>каталог</type>     <name>Ресурсы</name>     <файл id ="5">      <data>       <length>14868</length>       <offset>448</offset>       <size>274432</size>       <кодировка style ="приложение / x-gzip"/>       <архивная контрольная сумма style =«SHA1»>efe5c97921de7ccc5aebc158d158e9d4280d6814</archived-checksum>       <извлеченная контрольная сумма style =«SHA1»>45c8be42d1d9afdb57ddd5e9311453010ec46161</extracted-checksum>      </data>      <group></group>      <gid>20</gid>      <user></user>      <uid>501</uid>      <mode>0664</mode>      <type>файл</type>      <name>foobar</name>     </file>     <файл id ="6">      <data>       <length>17635</length>       <offset>15316</offset>       <size>45056</size>       <кодировка style ="приложение / x-gzip"/>       <архивная контрольная сумма style =«SHA1»>3c761ffcc81ee6e232e4f4a1c4a81654c26c4e52</archived-checksum>       <извлеченная контрольная сумма style =«SHA1»>0ea31f8ef0e5987a1838a64ab5c26ebf3ee4bc37</extracted-checksum>      </data>      <group></group>      <gid>20</gid>      <user></user>      <uid>501</uid>      <mode>0664</mode>      <type>файл</type>      <name>docSet.skidx</name>     </file>     <файл id ="7">      <group></group>      <gid>20</gid>      <user></user>      <uid>501</uid>      <mode>0775</mode>      <type>каталог</type>      <name>Документы</name>      <файл id ="8">       <data>        <length>35790</length>        <offset>32951</offset>        <size>209242</size>        <кодировка style ="приложение / x-gzip"/>        <архивная контрольная сумма style =«SHA1»>5242cd71585c34e722932f324706f8c00e1ae0c5</archived-checksum>        <извлеченная контрольная сумма style =«SHA1»>c0e013e53d829511835e2b429abb5198731e9a3e</extracted-checksum>       </data>       <group></group>       <gid>20</gid>       <user></user>       <uid>501</uid>       <mode>0664</mode>       <type>файл</type>       <name>foobar.html</name>      </file>     </file>    </file>   </file>  </file> </toc></xar>

Рекомендации

  1. ^ а б "приложение / x-xar". Получено 2019-03-19.
  2. ^ Наббл - xar в Mac OS X В архиве 7 февраля 2007 г. Wayback Machine
  3. ^ Менеджер пакетов RPM 5
  4. ^ а б https://github.com/mackyle/xar/wiki/xarformat
  5. ^ а б Браун, Роб; Фуллер, Лэндон; Леймбах, Дэвид; Ван Вехтен, Кевин (04.06.2015). "xar - страница руководства расширяемого ARchiver mojave". Получено 2019-03-26.
  6. ^ https://code.google.com/archive/p/xar/wikis/xarformat.wiki

внешняя ссылка