aspose.info
AR

XAR - تنسيق ملف الأرشيف القابل للتوسيع

تاريخ التحديث

ما هو ملف XAR؟

الملف ذو الامتداد .xar (تنسيق الأرشيف القابل للتوسيع) هو أرشيف UNIX قد يكون بتنسيق مضغوط أو غير مضغوط. يتم استخدامه أيضًا على نظام التشغيل Mac OS لتثبيت الحزم. XAR مفتوح المصدر وكان جزءًا من Mac OS X 10.5 للاستخدام مع متصفح Safari.

تنسيق ملف XAR

يحتوي ملف XAR على ثلاث مناطق رئيسية.

  • رأس
  • جدول المحتويات
  • كومة

رأس XAR

تم تنظيم رأس XAR على النحو التالي.

حقلنوع البياناتالحجم بالبايت
MagicUnsigned Int 324
الحجمغير محدد Int 162
الإصدارUnsigned Int 162
مضغوط طول جدول المحتوياتغير محدد Int 648
طول جدول المحتويات غير مضغوطغير محدد Int 648
المجموع الاختباريعدد العمليات 32 غير الموقعة4
اسم ملخص الرسالةمُنتهي بلا قيمة

يمكن تعريف البنية C لرأس XAR على النحو التالي.

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".
     */
};

لاحظ أن جميع حقول الرأس (السحر ، الحجم ، الإصدار ، toc_length_compressed ، toc_length_uncompressed ، cksum_alg) يتم تخزينها دائمًا في ملفات XAR بترتيب بايت الشبكة (المعروف أيضًا باسم endian الكبير).

جدول محتويات XAR (TOC)

جدول المحتويات هو مستند XML (ويجب) ترميزه كـ UTF-8. يتم تخزينه في بداية الملف ، مما يسهل عملية المسح من خلال الأرشيف لاستخراج الملف الفردي. يتيح لك أرشيف XAR ضغط / ترميز الملفات الفردية في الأرشيف بشكل مستقل باستخدام أنظمة ضغط مختلفة مثل GZIP و BZIP2 وأنظمة أخرى مماثلة.

<?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>

كومة

يبدأ الكومة مباشرة بعد toc المضغوط. إنها كومة غير منظمة من البيانات المشار إليها بواسطة جدول المحتويات. تبدأ قيم الإزاحة المدرجة في جدول المحتويات من بداية الكومة. تشير قيم الطول في toc إلى العدد الفعلي للبايتات المخزنة في الكومة (مضغوطة أم لا) بينما تشير قيمة الحجم إلى الحجم المستخرج للعنصر (بعد فك الضغط إذا لزم الأمر).

مراجع