دارلينج (برنامج)

دارلينج هي طبقة توافق مجانية ومفتوحة المصدر لنظام macOS، مُخصصة لنظام لينكس. [ 1 ] تُحاكي دارلينج وظائف نظام macOS من خلال توفير تطبيقات بديلة للمكتبات والأطر التي تستخدمها برامج macOS. [ 2 ] تختلف هذه الطريقة في المحاكاة عن الطرق الأخرى التي قد تُعتبر محاكاة، [ 3 ] حيث تعمل البرامج على نظام تشغيل أبل الخاص في بيئة افتراضية . [ 4 ] يُطلق على دارلينج اسم "النظير لـ WINE" لتشغيل تطبيقات macOS. [ 5 ]

بدأ المشروع في صيف عام ٢٠١٢، وهو مبني على مشروع سابق يُدعى maloader، والذي توقف العمل عليه لضيق الوقت. وقد أثبتت الطبقة قدرتها على العمل مع العديد من تطبيقات سطر الأوامر ، مثل Midnight Commander و The Unarchiver و Python وغيرها، كما أنها تدعم بشكل أساسي التطبيقات الرسومية المبنية على إطار عمل Cocoa. [ ٦ ] [ ١ ] يتمتع Darling بالقدرة على استخراج صور أقراص Apple . [ ٧ ]

يهدف المشروع إلى دعم تطبيقات نظام التشغيل iOS في المستقبل. [ 8 ]

بنيان

عند مدخل نظام دارلينج، يوجد مُحمِّل لملفات Mach-O الثنائية، وهو تنسيق الملفات التنفيذية لأنظمة تشغيل أبل . وقد اعتمد سلف دارلينج، maloader، نهجًا مُفرطًا في حل المشكلة من خلال محاولة محاكاة كل ما يفعله مُحمِّل مكتبة أبل الديناميكية dyld. وقد ثبتت صعوبة ذلك، ومنذ "الانتقال إلى Mach-O" في عام 2017، يستخدم دارلينج مُحمِّلًا خفيفًا يكفي لتشغيل dyld مفتوح المصدر من أبل. [ 9 ]

لتزويد ملفات macOS الثنائية بنواة ، يستخدم Darling نواة XNU معدلة (مع ترخيص APSL) مغلفة في وحدة نواة Linux مع ترخيص GPL.لا يُعدّ هذا مماثلاً لتضمين كود مرخص بموجب رخصة جنو العمومية (GPL) في برمجيات APSL، إذ تسمح رخصة APSL بالربط مع كود مرخص برخصة مختلفة (في هذه الحالة GPL). تتولى الوحدة النمطية المهام المعتادة لنواة Mach ، وتحديداً معالجة منافذ الاتصال بين العمليات (IPC) . [ 10 ] توجد بعض المشكلات المتعلقة بالترخيص في وحدة darling-mach النمطية، حيث يُضيف الفريق تعديلات GNU GPL إلى نواة APSL . [ 11 ]

بيئة الجذر أعلى من نواة النظام. يدعم برنامج دارلينج، مثل برنامج واين، بادئات chroot ، المُطبقة باستخدام نظام الملفات التراكبي (overlayfs ) الخاص بنظام لينكس (بدلاً من ترجمة المسار في واين). تُستخدم مساحات أسماء PID وIPC وUTS لإنشاء حاوية لنظام داروين بداخلها.

تعتمد أطر العمل ومكتبات النظام في دارلينج، قدر الإمكان، على شفرة المصدر التي أصدرتها شركة آبل. ويُسهّل الانتقال إلى Mach-O بناء هذه الأطر، لأنها تُبنى الآن بصيغة Mach-O التي صُممت من أجلها. [ 9 ] ولتغطية الثغرات في العديد من أطر العمل عالية المستوى مثل كوكوا ، تستخدم دارلينج شفرة من كوكوترون، وأبورتابل فاونديشن ، وجنو ستيب . [ 1 ]

رخصة

يعتمد نظام دارلينج الأكبر على العديد من المكونات الخارجية التي تستخدم تراخيص مختلفة، وجميعها مفتوحة المصدر. الترخيص الأساسي هو GPLv3 . [ 12 ]

مراجع

  1. 1 2 3 "دارلينغ |" . www.darlinghq.org . مؤرشف من الأصل بتاريخ 16-06-2022 . تم الاطلاع عليه بتاريخ 17-06-2022 .
  2. "يمكنك الآن استخدام تطبيق 'دارلينج' لتشغيل برامج macOS على نظام لينكس | مدونة آيفون في كندا" . 5 أكتوبر 2020. مؤرشف من الأصل بتاريخ 17 يونيو 2022. تم الاطلاع عليه بتاريخ 17 يونيو 2022 .
  3. غونزاليس، دييغو جيرمان (31 أكتوبر 2021). "برامج ماك أو إس على لينكس؟ مع دارلينغ، هذا ممكن" . مدمنو لينكس . تم الاسترجاع في 17 يونيو 2022 .
  4. برودكين، جون (6 أغسطس 2013). "تطبيقات نظام التشغيل ماك تعمل على لينكس باستخدام محاكي شبيه ببرنامج واين لبرامج ماك" . آرس تكنيكا . تم الاطلاع عليه بتاريخ 23 يناير 2014 .
  5. لينش، جيم. "هل سنتمكن يوماً ما من تشغيل تطبيقات نظام التشغيل ماك أو إس إكس على نظام لينكس باستخدام دارلينج؟" . إنفوورلد . تم الاطلاع عليه بتاريخ 23 يوليو 2018 .
  6. "دارلينج تستقطب مساهمين جدد لطبقة التوافق مع نظام macOS على نظام لينكس" . www.phoronix.com . مؤرشف من الأصل بتاريخ 17 يونيو 2022. تم الاطلاع عليه بتاريخ 17 يونيو 2022 .
  7. "تثبيت البرامج - مستندات دارلينج" . docs.darlinghq.org . تم الاطلاع عليه بتاريخ 27-01-2022 .
  8. هيث، نيك (15 يوليو 2013). "تطبيقات نظام التشغيل OS X في طريقها إلى لينكس بفضل مشروع دارلينج" . زد نت . تم الاطلاع عليه بتاريخ 23 يناير 2014 .
  9. 1 2 بوغاييف، سيرجي (24 يوليو 2018). "حيل ربط وتحميل Mach-O" . تم الاسترجاع في 12 يناير 2020 .
  10. "تعليمات البناء" . دارلينج . مؤرشف من الأصل بتاريخ 21 يناير 2020. تم الاطلاع عليه بتاريخ 12 يناير 2020. يستخدم دارلينج وحدة نواة لتوفير بعض الميزات الخاصة بنظام التشغيل OS X، وأهمها Mach Ports IPC. لا يمكن تشغيل أي تطبيق من تطبيقات OS X بدون هذه الوحدة، لأن مكتبة Libc تتطلب Mach Ports لتهيئتها وحتى لأمور أساسية للغاية مثل sleep().
  11. "مشكلة: الكود البرمجي من Apple بموجب ترخيص APSL غير متوافق مع ترخيص GPL" . GitHub . تم الاطلاع عليه بتاريخ 12 يناير 2020 .
  12. "عزيزي" . جيت هاب . 16 أكتوبر 2021.