إكس زي

وسائل إكس زي ، والمعروفة مسبقًا بوسائل إل زي إم أيه  هي مجموعة من برمجيات بضغط البيانات عديم الخسارة الحرة تعمل من واجهة سطر الأوامر، وتشمل برمجيات 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).

للضغط كأرشيف:
xz   my_archive.tar    # ينتج ملفًا يُدعى my_archive.tar.xz
lzma my_archive.tar    # ينتج ملفًا يُدعى my_archive.tar.lzma

لفك ضغط الأرشيف:
unxz    my_archive.tar.xz      # ينتج ملفًا يُدعى my_archive.tar
unlzma  my_archive.tar.lzma    # ينتج ملفًا يُدعى my_archive.tar

يوفر الإصدار 1.22 أو ما يليه من صياغة مشروع جنو لتار دعمًا شفافًا لحزم التار المضغوطة بواسطة lzma وxz، وذلك باستخدام المفاتيح  أو  للضغط بتقنية xz، والمفتاح  للضغط بتقنية LZMA.

لإنشاء أرشيف ثم ضغطه:
tar -c --xz   -f my_archive.tar.xz   /some_directory    # ينتج ملفًا يُدعى my_archive.tar.xz
tar -c --lzma -f my_archive.tar.lzma /some_directory    # ينتج ملفًا يُدعى my_archive.tar.lzma

لفك ضغط الأرشيف واستخراج محتوياته:
tar -x --xz   -f my_archive.tar.xz      # ينتج مجلدًا يٌدعى /some_directory
tar -x --lzma -f my_archive.tar.lzma    # ينتج مجلدًا يٌدعى /some_directory

لضغط وفك ضغط الأرشيف باستعمال اختصارات الأحرف الواحدة:
tar cJf keep.txz keep   # يؤرشف ويضغط المجلد ./keep/ داخل الملف ./keep.txz
tar xJf keep.txz        # يفك ضغط ويستخرج الملف ./keep.txz داخل المجلد ./keep/

تدعم برمجية xz الضغط متعدد المسارات (باستخدام علامة ) منذ عام 2014، بدءًا من الإصدار 5.2.0؛ ومنذ الإصدار 5.4.0 نُفِّذ فك الضغط متعدد المسارات. يتطلب فك الضغط متعدد المسارات وجود عدة كتل مضغوطة داخل التدفق، والتي تُنشأ بواسطة واجهة الضغط متعددة المسارات. قد يكون عدد المسارات أقل من المُحدد إذا لم يكن الملف كبيرًا بما يكفي لاستخدام المسارات المتعددة بالإعدادات المعطاة، أو إذا كان استخدام المزيد من المسارات متجاوزًا حد استخدام الذاكرة.

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

 التطوير والانتشار 
طوِّر وسائل إكس زي ضمن مشروع توكاني ، وهو فريق صغير من المطورين الذين أشرفوا سابقًا على أحد توزيعات لينكس المبنية على سلاكوير. الاسم المختار XZ ليس اختصارًا، بل يبدو أنه اسم عشوائي أُعطي لضواغط البيانات، حيث لا يوجد أي ذكر في التوثيقات الرسمية عن معنى XZ. أصدِرت المعايير الرسمية لصيغة ملفات .xz الإصدار 1.0.0 في يناير 2009.

أصدِر المصدر البرمجي الكامل لبرمجية xz ومكتبة liblzma للملكية العامة. تضمن المصدر أيضًا بعض النصوص البرمجية الاختيارية وبرنامجًا تجريبيًا خاضعًا لإصدارات مختلفة من رخصة جنو العمومية.Licensing on tukaani.org "The most interesting parts of XZ Utils (e.g. liblzma) are in the public domain. You can do whatever you want with the public domain parts. Some parts of XZ Utils (e.g. build system and some utilities) are under different free software licenses such as GNU LGPLv2.1, GNU GPLv2, or GNU GPLv3."  الملفات الثنائية الناتجة لبرنامج 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 (وهي الأعلى) وفقاً لنظام تسجيل نقاط الضعف المشترك.
 المراجع 

 وصلات خارجية 



تصنيف:برمجيات حرة بلغة سي
تصنيف:برمجيات ضغط بيانات حرة
تصنيف:برمجيات ملكية عامة مع المصدر البرمجي
تصنيف:وسائل يونكس متعلقة بالأرشفة وضغط الملفات