aspose.info
TR

XAR - Genişletilebilir Arşiv Dosyası Formatı

Güncellendi

XAR dosyası nedir?

.xar (Genişletilebilir Arşiv Biçimi) uzantılı bir dosya, sıkıştırılmış veya sıkıştırılmamış biçimde olabilen bir UNIX arşividir. Paketlerin kurulumu için Mac OS’de de kullanılır. XAR açık kaynaklıdır ve Safari tarayıcısı ile kullanım için Mac OS X 10.5’in bir parçasıdır.

XAR Dosya Biçimi

Bir XAR dosyasının üç ana bölgesi vardır.

  • Başlık
  • İçindekiler
  • yığın

XAR Başlığı

XAR başlığı aşağıdaki gibi yapılandırılmıştır.

AlanVeri TürüBayt Olarak Boyut
Sihirİmzasız Int 324
Boyutİmzasız Int 162
Sürümİmzasız Int 162
TOC Uzunluğu Sıkıştırılmışİmzasız Int 648
TOC Uzunluğu Sıkıştırılmamışİşaretsiz Int 648
Sağlamaİmzasız Int 324
Mesaj Özeti AdıNull Sonlandı

XAR başlığının C yapısı aşağıdaki gibi tanımlanabilir.

struct xar_header {
    uint32_t magic;
    uint16_t size;
    uint16_t version;
    uint64_t toc_length_compressed;
    uint64_t toc_length_uncompressed;
    uint32_t cksum_alg;
    /* A nul-terminated, zero-padded to multiple of 4, message digest name
     * appears here if cksum_alg is 3 which must not be empty ("") or "none".
     */
};

Başlığın tüm alanlarının (sihir, boyut, sürüm, toc_length_compressed, toc_length_uncompressed, cksum_alg) her zaman XAR dosyalarında ağ baytı (diğer adıyla big endian) düzeninde depolandığını unutmayın.

XAR İçindekiler Tablosu (TOC)

İçindekiler tablosu, UTF-8 olarak kodlanmış (ve kodlanması gereken) bir XML belgesidir. Dosyanın başında saklanır, bu da tek tek dosyaları ayıklamak için arşivi taramayı kolaylaştırır. XAR arşivi, GZIP, BZIP2 ve diğer benzerleri gibi farklı sıkıştırma düzenlerini kullanarak arşivdeki tek tek dosyaları bağımsız olarak sıkıştırmanıza/kodlamanıza olanak tanır.

<?xml version="1.0"?>

<xar>
  <toc>
    <checksum style="sha1">
      <size>20</size>
      <offset>0</offset>
    </checksum>
    <file id="1">
      <name>xar</name>
      <type>file</type>
      <mode>0755</mode>
      <uid>0</uid>
      <gid>0</gid>
      <user>root</user>
      <group>wheel</group>
      <size>81180</size>
      <data>
        <offset>0</offset>
        <size>74108</size>
        <length>23083</length>
        <extracted-checksum style="md5">d852c77ac3c8e83f312c12b4c3198e6d</checksum>
        <archived-checksum style="md5">ceaf793ccb1990ecbadb20112d5f9e5d</checksum>
        <encoding style="application/x-gzip"/>
      </data>
      <ea>
        <name>com.apple.ResourceFork</name>
        <offset>0</offset>
        <size>7072</size>
        <length>3942</length>
        <extracted-checksum style="md5">0f7061dca2d7411352377db0e53792db</checksum>
        <archived-checksum style="md5">c72de8ac25abe462a930254d82958534</checksum>
        <encoding style="application/x-gzip"/>
      </ea>
    </file>
  </toc>
</xar>

yığın

Yığın, sıkıştırılmış toc’tan hemen sonra başlar. İçindekiler tarafından başvurulan yapılandırılmamış bir veri yığınıdır. TOC’de listelenen Ofset değerleri yığının başından başlar. toc’daki uzunluk değerleri öbekte depolanan (sıkıştırılmış veya sıkıştırılmamış) gerçek bayt sayısını ifade ederken, boyut değeri öğenin çıkarılan boyutunu (gerekirse sıkıştırmayı açtıktan sonra) ifade eder.

Referanslar