recoveryOS وبيئات التشخيص على Mac مستند إلى Intel
recoveryOS
يكون recoveryOS منفصلاً تمامًا عن macOS الرئيسي، ويتم تخزين المحتويات بالكامل في ملف صورة قرص يسمى BaseSystem.dmg. توجد أيضًا BaseSystem.chunklist مقترنة تُستخدم للتحقق من تكامل BaseSystem.dmg. chunklist عبارة عن سلسلة من علامات التجزئة لشرائح من BaseSystem.dmg بحجم 10 ميغابايت. يقيّم البرنامج الثابت لواجهة البرامج الثابتة القابلة للتوسعة الموحدة (UEFI) توقيع ملف chunklist، ثم يقيّم التجزئة لشريحة واحدة في المرة الواحدة من BaseSystem.dmg. وهذا يساعد على ضمان مطابقتها للمحتوى الموقّع الموجود في chunklist. في حالة عدم تطابق أي من علامات التجزئة هذه، يتم إلغاء التمهيد من recoveryOS، ويحاول برنامج UEFI الثابت التمهيد من recoveryOS على الإنترنت بدلاً من ذلك.
في حالة اكتمال عملية التحقق بنجاح، يقوم برنامج UEFI الثابت بتحميل BaseSystem.dmg باعتباره قرص RAM ويقوم بتشغيل ملف boot.efi الموجود فيه. لا توجد حاجة إلى برنامج UEFI الثابت من أجل إجراء فحص معين لـ boot.efi، ولا إلى boot.efi من أجل فحص kernel، لأن محتويات نظام التشغيل المكتملة (التي لا تشكل هذه العناصر منها سوى مجموعة فرعية) قد تم بالفعل التحقق من تكاملها.
تشخيصات Apple
إن إجراء تمهيد بيئة التشخيص المحلية هو في الغالب نفس إجراء تشغيل recoveryOS. تُستخدم ملفات AppleDiagnostics.dmg وكذلك AppleDiagnostics.chunklist منفصلة، لكن يتم التحقق منهما بنفس طريقة ملفات BaseSystem. بدلاً من تشغيل boot.efi، يشغّل برنامج UEFI الثابت ملفًا داخل صورة القرص (ملف .dmg) باسم diags.efi، يكون بدوره مسؤولاً عن استدعاء مجموعة متنوعة من برامج تشغيل UEFI الأخرى التي يمكنها التفاعل مع المكونات المادية والتحقق من وجود أخطاء بها.
recoveryOS على الإنترنت وبيئات التشخيص
إذا حدث خطأ في تشغيل الاسترداد المحلي أو بيئات التشخيص، يحاول برنامج UEFI الثابت تنزيل الصور من الإنترنت بدلاً من ذلك. (يمكن للمستخدم أيضًا أن يطلب جلب الصور من الإنترنت بشكل خاص باستخدام تسلسلات المفاتيح الخاصة المحفوظة عند التمهيد.) يتم إجراء التحقق من تكامل صور القرص وقوائم chunklists التي يتم تنزيلها من خادم استرداد نظام التشغيل بنفس الطريقة المتبعة مع الصور المُستردة من جهاز تخزين.
على الرغم من أن الاتصال بخادم استرداد نظام التشغيل يتم باستخدام HTTP، إلا أن المحتويات الكاملة التي يتم تنزيلها تظل خاضعة لعملية التحقق من تكاملها كما هو موضح سابقًا، وبالتالي تكون محمية ضد تلاعب أي مهاجم يتحكم في الشبكة. في حالة فشل جزء فردي في تخطي التحقق من التكامل، يُطلب مرة أخرى من خادم استرداد نظام التشغيل 11 مرة، قبل التخلي عنه وعرض الخطأ.
عندما تمت إضافة أنماط الاسترداد على الإنترنت والتشخيص إلى أجهزة كمبيوتر Mac في عام 2011، تقرر أنه من الأفضل استخدام عملية نقل أبسط عبر HTTP ومعالجة مصادقة المحتوى باستخدام آلية chunklist، بدلاً من تنفيذ وظيفة HTTPS الأكثر تعقيدًا في برنامج UEFI الثابت وبالتالي زيادة أجزاء البرنامج الثابت المعرضة للهجوم.