xar (arkiverare)

XAR
Filnamnstillägg .xar , .pkg , .xip
Internet mediatyp
applikation/x-xar
Uniform Type Identifier (UTI) com.apple.xar-arkiv
Magiskt nummer xar!
Typ av format arkivfilformat
Förlängt från XML , gzip

XAR (förkortning för e X tensible AR chive format ) är en filarkiverare med öppen källkod och arkiveringsfilformatet . Det skapades inom OpenDarwin- projektet och används i macOS X 10.5 och uppåt för programvaruinstallationsrutiner, samt webbläsartillägg i Safari 5.0 och uppåt. Xar ersatte användningen av gzippade pax-filer .

En utvecklingsgren av RPM , RPM5 , använder xar.

Filstruktur

XAR File Structure.svg

Filen består av tre sektioner, rubriken, innehållsförteckningen och högen. Alla fält lagras i big endian -ordning.

Rubrik

Offset#
Storlek (i byte)
Syfte
0 4
Filsignatur som används för att identifiera filformatet som Xar . Detta ska alltid vara lika med xar!
4 2 Rubrikstorlek
6 2
Version av Xar-format att använda. För närvarande finns det bara version 1.
8 8 Längden på TOC-komprimerade data.
16 8 Längden på TOC okomprimerade data.
24 4 Kontrollsummaalgoritm:
28 0, 4, 36 ibland utfyllnad byte eller kontrollsumma algoritm namn

Innehållsförteckning

Xar skiljer sig från cpio , tar eller ar genom att den lagrar TOC (innehållsförteckningen) i början av filen, vilket gör det mer komplicerat att lägga till ett arkiv, men gör det onödigt att skanna igenom arkivet för att extrahera en enskild fil. . Innehållsförteckningen lagras som ett zlib- komprimerat, UTF-8 -kodat XML-dokument . Varje fil som lagras i Xar är oberoende komprimerad/kodad. Detta ger möjligheten att ha filen/filerna kodade med gzip samtidigt som en annan fil i samma arkiv kodas med en annan metod som bzip2 . På vissa system kan arkivmedlemmen också kodas med xz- eller lzma -komprimeringsmetoden.

Exempel på innehållsförteckning



 
   
   0
   
  
   
   
   
   
   
   
   
   
    
    
    
    
    
    
    
    
     
     
      
      
      
       
       
       
     
     
     
     
     
     
     
     
    
     
     
     
     
     
     
     
     
      
      
       
       
       
        
        
        
      
      
      
      
      
      
      
      
     
      
      
       
       
       
        
        
        
      
      
      
      
      
      
      
      
     
      
      
      
      
      
      
      
      
       
       
        
        
        
         
         
         
       
       
       
       
       
       
       
       
      
     
    
   
  
 
 <?xml version="1.0" encoding="UTF-8"?>  <xar>  <toc>  <checksum  style=  "sha1"  >  <offset>  </offset>  <size>  20  </size>  </checksum>  <file  id=  "1"  >  <group>  personal  </group>  <gid>  20  </gid>  <user>  joe  </user>  <uid>  501  </uid>  <mode>  0755  </mode>  <typ >  katalog  </type>  <name>  com.foobar  </name>  <file  id=  "2"  >  <group></group>  <gid>  20  </gid>  <user></user>  <uid>  501  </uid>  <mode>  0775  </mode>  <type>  katalog  </type>  <name>  Innehåll  </name>  <file  id=  "3"  >  <data>  <length>  428  </length>  <offset>  20  </offset>  <size>  1005  </size>  <encoding  style=  "application/x-gzip"  />  <archived-checksum  style=  "SHA1"  >  a5f6f1461213a904f831d4ef6f214638342842ed  "checksumma utdraget  -< /   archived  " SHA1"  >  21d21a0c90378248ce0dfb6f345376d1b00d65fc  </extracted-checksum>  </data>  <group></group>  <gid>  20  </gid>  <user>  </user>  <uid>  501  </u>  id  </u>  mode>  <type>  fil  </type>  <name>  Info.plist  </name>  </file>  <file  id=  "4"  >  <group></group>  <gid>  20  </gid>  <användare> </user>  <uid>  501  </uid>  <mode>  0775  </mode>  <type>  katalog  </type>  <name>  Resurser  </name>  <file  id=  "5"  >  <data>  <length>  14868  </length>  <offset>  448  </offset>  <size>  274432  </size>  <encoding  style=  "application/x-gzip"  />  <archived-checksum  style=  "SHA1"  >  efe5c97921de7ccc5aebc158d418edsum  </p> >  <extracted-checksum  style=  "SHA1"  >  45c8be42d1d9afdb57ddd5e9311453010ec46161  </extracted-checksum>  </data>  <group></group>  <gid>  20  </gid>  <user></user>  </uid>  <  uid  uid>  <mode>  0664  </mode>  <type>  fil  </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"  >  3c761ffcc81ee6e232e4f4a1c4a81654c26c  > <extractived-checksumed-checksume-checksumme</-  4c  =  "SHA1"  >  0ea31f8ef0e5987a1838a64ab5c26ebf3ee4bc37  </extracted-checksum>  </data>  <group></group>  <gid>  20  </gid>  <user></user>  <uid>  id 501  <u>  6  </u>  </mode>  <typ>  fil  </type>  <name>  docSet.skidx  </name>  </file>  <file  id=  "7"  >  <group></group>  <gid>  20  </gid>  < user></user>  <uid>  501  </uid>  <mode>  0775  </mode>  <type>  katalog  </type>  <name>  Dokument  </name>  <file  id=  "8"  >  <data>  < Längd>  35790  </long>  <offset>  32951  </ offset>  <storlek>  209242  </storlek>  <coding  style =  "Application/X-Gzip"  />  <arkived-checksum  style =  "SHA1"  >  5242CD71585C34E7222292F324706F8C00C00C00C5C5C5C5  </Archived -checksum>  <extracted-checksum  style=  "SHA1"  >  c0e013e53d829511835e2b429abb5198731e9a3e  </extracted-checksum>  </data>  <group></group>  <gid>  20  </gid>  5  > <u><  / >   </uid>  <mode>  0664  </mode>  <type>  fil  </type>  <name>  foobar.html  </name>  </file>  </file>  </file>  </file>  </file>  </toc>  </xar> 

externa länkar