قدمت Corellium نسخة من Linux تم تكييفها للتشغيل على أجهزة كمبيوتر Apple الأحدث المجهزة بالشريحة M1، تم إصدار متغير Linux kernel المتوافق مع شريحة Apple M1 بموجب ترخيص GPLv2 ، وتم شحن التصحيحات لتضمينها في النواة الرئيسية.
تتمتع Corellium بخبرة واسعة في الانتقال من Linux إلى شرائح Apple تستخدم في الأجهزة المحمولة مثل iPhone. في المرحلة المبكرة من الترحيل ، تم تشجيع المختبرين على أن العديد من مكونات Apple M1 تعتمد على التقنيات المستخدمة بالفعل من قبل Apple في SoCs الأخرى.
ولكن في عملية كتابة برامج التشغيل ، أصبح من الواضح أنه ليس كل شيء بهذه البساطة وتتضمن شريحة Apple M1 العديد من الحلول غير القياسية. يعتمد دعم Linux لـ ARM 64-bit SoCs على الكتل الشائعة وواجهات البرامج الثابتة ، لكن Apple M1 نادرًا ما يستخدم الحلول النموذجية.
على سبيل المثال ، في ARM SoCs التقليدية ، يتم تنشيط نوى وحدة المعالجة المركزية من خلال PSCI (واجهة تنسيق حالة الطاقة) التي توفرها البرامج الثابتة و على Apple M1 ، يتطلب الأمر معالجة سجل MMIO.
في هذه المرحلة ، تقدم مطورو Corellium على مشروع Asahi Linux، التي أسسها هيكتور مارتن لنقل Linux إلى الأنظمة التي تحتوي على شريحة Apple M1 ، والتي اقتصرت حتى الآن على الهندسة العكسية وتجريب محمل الإقلاع. ومع ذلك ، فإن الهدف الرئيسي لـ Asahi Linux ليس فقط تشغيل Linux ، ولكن لتوفير الدعم الكامل لآليات إدارة الطاقة واستخدام إمكانات Apple M1 GPU ، والتي تستخدم مجموعة محددة من الإرشادات.
تقتصر تصحيحات Corellium على توفير التمهيد والدعم لميزات معينة من رقائق M1 المتعلقة بوضع SMP ، وأجهزة ضبط الوقت ، والمقاطعات ، والتعامل مع حالة الخمول والتهيئة.
الكثير رحب ممثلو Asahi Linux بإصدار تصحيحات Corellium وأعرب عن استعداده لتقديم مساعدة في مراجعة النظراء لتسريع تبني نواة لينكس.
بالإضافة إلى ذلك ، قيل أيضًا أن Alyssa Rosenzweig (من Collabora لتطوير برنامج تشغيل Panfrost GPU Mali) قد نشرت تقريرًا ثانيًا عن الهندسة العكسية وتطوير برامج تشغيل مفتوحة المصدر لوحدة معالجة الرسومات Apple M1
في المرحلة الحالية ، تم إعداد نموذج أولي لوحدة التحكم ، والذي يمكنه رسم مثلثات باستخدام وحدة معالجة الرسومات. بالنسبة لوحدات معالجة الرسومات M1 ، يتم أيضًا تشفير الرأس الأول وتظليل الأجزاء يدويًا. يتم استخدام برنامج تشغيل kernel IOKit للتفاعل مع وحدة معالجة الرسومات.
يستخدم Apple M1 أيضًا جهاز التحكم في المقاطعة AIC الخاص به (Apple Interrupt Controller) ، والتي بالنسبة للجزء الأكبر فهي غير متوافقة مع ARM GICs القياسية وآلية مختلفة لربط المقاطعات من جهاز ضبط الوقت. بالإضافة إلى ذلك ، لتنظيم التفاعل بين معالجات متعددة ، يتم استخدام سجلات منفصلة تتحكم في IPI (المقاطعات بين المعالجات).
للتمهيد في كمبيوتر Mac Mini M1 بشريحة Apple M1 ، يتم تحضير صورة rootfs جاهزة للاستخدام, مبني على أساس بناء Ubuntu لـ Raspberry Pi.
للتثبيت ، يجب نسخ الصورة إلى محرك أقراص USB ، قم بتوصيل هذه الوحدة بمنفذ USB-C وابدأ تشغيل الكمبيوتر في وضع 1TR (Recovery OS) بالضغط مع الاستمرار على زر التشغيل أثناء التشغيل. بعد ظهور سطر الأوامر ، تحتاج إلى تشغيل البرنامج النصي linuxsetup.sh ، والذي سيقوم بتثبيت النواة وتكوين البيئة.
هذا هو الوقت الذي سيبدأ فيه Linux العمل ، أثناء إعادة macOS ، يجب عليك تشغيل الأمر "bputil -n" في وضع 1TR.
يدعم التصميم الجاهز USB و I2C و DART ، ويُقترح استخدام محول USB خارجي للشبكة ، بينما لا يتم دعم تسريع أجهزة الرسومات والأجهزة الطرفية الممتدة حتى الآن. يتطلب دعم Bluetooth كتابة برنامج تشغيل جديد بسبب استخدام بروتوكول PCIe غير قياسي.
مصدر: https://corellium.com