# إكس زي

وسائل إكس زي (بالإنجليزية: XZ Utils)‏، والمعروفة مسبقًا بوسائل إل زي إم أيه (بالإنجليزية: LZMA Utils)‏ هي مجموعة من برمجيات بضغط البيانات عديم الخسارة الحرة تعمل من واجهة سطر الأوامر، وتشمل برمجيات lzma وxz المصممة لنظم التشغيل الشبيهة بيونكس، وبدءًا من الإصدار 5.0 فصاعدًا لنظام مايكروسوفت ويندوز. يُستخدَم خوارزمية ليمبل-زيف-ماركوف التسلسلية (LZMA) لضغط وفك ضغط البيانات. بدأت وسائل إكس زي كنسخة معدَّلة من LZMA-SDK التي طوَّرها إيغور بافلوف لتتناسب بسلاسة مع بيئات يونكس وهيكلها وسلوكها المعتاد.

## المميزات

يمكن لوسائل إكس زي ضغط وفك ضغط الملفات بتنسيقات xz وlzma. ونظرًا لأن تنسيق LZMA يُعد قديمًا، فإن وسائل إكس تضغط بشكل أساسي إلى تنسيق xz.
في معظم الأحيان، تحقق برمجية xz معدلات ضغط أعلى من البدائل الأخرى مثل zip وgzip وbzip2. وسرعة فك الضغط فيه أعلى من bzip2، ولكنها أقل من gzip. قد تكون عملية الضغط أبطأ بكثير من gzip، كما أنها أبطأ من bzip2 في مستويات الضغط العالية، ويكون استخدامه مفيدًا بشكل خاص عندما يتم استخدام الملف المضغوط مرات عديدة.
تتألف وسائل إكس زي من مكونين رئيسيين:
* xz، وهو أداة ضغط وفك ضغط تعمل من خلال سطر الأوامر (مشابهة لـgzip)
* liblzma، وهي مكتبة برمجية تحتوي على واجهة برمجة تطبيقات مشابهة لـzlib
توجد العديد من الاختصارات للأوامر، مثل lzma (بديل عن xz --format=lzma)، وunxz (بديل عن xz --decompress؛ مشابه لـgunzip)، وxzcat (بديل عن unxz --stdout؛ مشابه لـzcat).

## الاستعمال

صُمِّم كلٌّ من سلوك البرمجيات وخصائص صيغة الملف للعمل بطريقة مشابهة لتلك التي تتميز بها أدوات الضغط الشائعة في نظم يونكس مثل gzip وbzip2.
تمامًا مثل gzip وbzip، فإن xz وlzma يمكنهما فقط ضغط ملفات فردية (أو تدفقات بيانات) كمدخلات. ولا يمكنهما دمج ملفات متعددة في أرشيف واحد - للقيام بذلك تُستخدم برمجية أرشفة أولًا، مثل تار (tar).
للضغط كأرشيف:
لفك ضغط الأرشيف:
يوفر الإصدار 1.22 أو ما يليه من صياغة مشروع جنو لتار دعمًا شفافًا لحزم التار المضغوطة بواسطة lzma وxz، وذلك باستخدام المفاتيح --xz أو -J للضغط بتقنية xz، والمفتاح --lzma للضغط بتقنية LZMA.
لإنشاء أرشيف ثم ضغطه:
لفك ضغط الأرشيف واستخراج محتوياته:
لضغط وفك ضغط الأرشيف باستعمال اختصارات الأحرف الواحدة:
تدعم برمجية xz الضغط متعدد المسارات (باستخدام علامة -T) منذ عام 2014، بدءًا من الإصدار 5.2.0؛ ومنذ الإصدار 5.4.0 نُفِّذ فك الضغط متعدد المسارات. يتطلب فك الضغط متعدد المسارات وجود عدة كتل مضغوطة داخل التدفق، والتي تُنشأ بواسطة واجهة الضغط متعددة المسارات. قد يكون عدد المسارات أقل من المُحدد إذا لم يكن الملف كبيرًا بما يكفي لاستخدام المسارات المتعددة بالإعدادات المعطاة، أو إذا كان استخدام المزيد من المسارات متجاوزًا حد استخدام الذاكرة.

## صيغة ملف إكس زي

يُحسّن التنسيق xz صيغة lzma من خلال السماح بمرشحات معالجة مسبقة. المرشحات المستخدمة بالتحديد مشابهة لتلك المستخدمة في 7z، حيث إن مرشحات 7z متاحة في النطاق العام عبر حزمة أدوات تطوير برمجيات LZMA.

## التطوير والانتشار

طوِّر وسائل إكس زي ضمن مشروع توكاني (بالإنجليزية: Tukaani Project)‏، وهو فريق صغير من المطورين الذين أشرفوا سابقًا على أحد توزيعات لينكس المبنية على سلاكوير. الاسم المختار XZ ليس اختصارًا، بل يبدو أنه اسم عشوائي أُعطي لضواغط البيانات، حيث لا يوجد أي ذكر في التوثيقات الرسمية عن معنى XZ. أصدِرت المعايير الرسمية لصيغة ملفات .xz الإصدار 1.0.0 في يناير 2009.
أصدِر المصدر البرمجي الكامل لبرمجية xz ومكتبة liblzma للملكية العامة. تضمن المصدر أيضًا بعض النصوص البرمجية الاختيارية وبرنامجًا تجريبيًا خاضعًا لإصدارات مختلفة من رخصة جنو العمومية. الملفات الثنائية الناتجة لبرنامج xz ومكتبة liblzma تعتبر ملكية عامة ما لم تدمج برمجية getopt الاختيارية الخاضع لرخصة جنو العمومية الصغرى.
تتوفر الملفات الثنائية لنظم تشغيل فري بي إس دي ونت بي إس دي ولينكس ومايكروسوفت ويندوز وفري دوس. تستخدم العديد من توزيعات لينكس بما فيها فيدورا وسلاكوير وأوبونتو ودبيان برمجية xz لضغط حزم برمجياتها. كانت توزيعة آرتش لينكس تستخدم xz لضغط الحزم سابقًا، ولكن اعتباراً من 27 ديسمبر 2019، أصبحت الحزم تُضغط باستعمال Zstandard. انتقلت فيدورا كذلك إلى ضغط حزم RPM الخاصة بها باستخدام Zstandard بدءًا من فيدورا لينكس 31. كما يستخدم أرشيف جنو FTP أيضًا برمجية xz.

## حادثة الباب الخلفي

في 29 مارس 2024، أعلن أندريس فرويند، وهو مطور بوستجري إس كيو إل يعمل لدى مايكروسوفت، أنه اكتشف ثغرة باب خلفي في وسائل إكس زِي، وتؤثر هذه الثغرة على الإصدارين 5.6.0 و5.6.1. أضيفت ملفات اختبار مضغوطة إلى المصدر البرمجي لإعداد هذه الثغرة الخلفية عبر إضافات إلى نص التكوين (configure script) في ملفات التار (tar). بدأ فرويند تحقيقاته بعد ملاحظة بعض الأعراض الغريبة حول ليبلزما (liblzma) (وهي جزء من حزمة إكس زِي)، حيث وجد أن عمليات الولوج عبر بروتوكول النقل الآمن (ssh) باستخدام sshd تستهلك الكثير من موارد وحدة معالجة مركزية، بالإضافة إلى العديد من أخطاء فالجريند (valgrind). حصلت هذه الثغرة الأمنية على درجة 10 (وهي الأعلى) وفقاً لنظام تسجيل نقاط الضعف المشترك.