هل يتباطأ نظام التشغيل Mac؟ - تتحقق كاتالينا من أي رمز غير موقع عبر الإنترنت عند بدء التشغيل

بدأ العديد من المستخدمين بعد التحول إلى كاتالينا يشكون من الفرامل. اكتشف الزملاء الغربيون السبب: يرسل MacOS تجزئة أي رمز غير موقع إلى خوادم Apple.

يؤدي هذا إلى حدوث تأخيرات خطيرة في التنفيذ ، والتي يمكن التحقق منها بسهولة:

echo $'#!/bin/sh\necho Hello' > /tmp/test.sh && chmod a+x /tmp/test.sh
time /tmp/test.sh && time /tmp/test.sh

النتائج مدهشة:

$ time /tmp/test.sh && time /tmp/test.sh
Hello

real    0m1.417s
user    0m0.001s
sys 0m0.003s
Hello

real    0m0.003s
user    0m0.001s
sys 0m0.002s

لماذا يحدث ذلك؟ تستخدم Apple آلية Notarization لبعض الوقت - ومعها ، يمكن للمستخدمين التأكد من أن البرنامج الذي تم توقيعه بواسطة Developer-ID صالح لا يحتوي على مكونات ضارة. أي ، بالإضافة إلى حقيقة أن التطبيق موقّع ، ستقوم Apple أيضًا بفحصه تلقائيًا بحثًا عن عناصر البرامج الضارة.
من المثير للاهتمام ، في المستقبل ، تخطط آبل بشكل عام لحظر إطلاق برامج غير موثقة. اقتبس:
هام

بدءًا من macOS 10.14.5 ، يجب توثيق البرامج الموقعة بشهادة معرف مطور جديدة وجميع ملحقات kernel الجديدة أو المحدثة ليتم تشغيلها. بدءًا من macOS 10.15 ، يجب توثيق جميع البرامج التي تم إنشاؤها بعد 1 يونيو 2019 ، والموزعة باستخدام معرف المطور.

الآن ، على ما يبدو ، من أجل الاختراق ، يتم إرسال أي رمز جديد غير موقع تقوم بتشغيله إلى خادم AAPL. يمكن التحقق من ذلك بسهولة عن طريق تشغيل أي محلل شبكة ورؤية المكالمات إلى مجال api.apple-cloudkit.com. وتجدر الإشارة إلى أنه ليس الرمز نفسه هو الذي يتم إرساله ، ولكن كمية التجزئة. يمكنك التحقق من ذلك بطريقتين - مقارنة كمية البيانات المرسلة عبر الشبكة للحصول على نصوص بأحجام مختلفة ؛ وكذلك النظر في محتويات البرنامج الخفي المسؤول عن إرسال البيانات ( otool -tV / usr / libexec / syspolicyd ). ومع ذلك ، مع بطء اتصال الإنترنت ، يمكن أن تكون التأخيرات ثواني - يكتب مستخدم من الصين عن تأخير قدره 5.47 ثانية.

من ناحية ، يمكن لشركة Apple أن تفهم - فهي تهتم بأمان المستخدمين ، ومع ذلك ، في نفس الوقت تحول عملية أي تطوير على منصتهم إلى جحيم.

ولكن أريد أن أقتبس من المطور الذي لفت الانتباه أولاً إلى المشكلة:
يشير سلوك نظام التشغيل هذا إلى مشكلات خطيرة في تصميمه عندما تقوم طريقتان من واجهة برمجة تطبيقات النظام ذات المستوى المنخفض (على سبيل المثال ، exec و getxattr) بإجراء مكالمات شبكة متزامنة قبل إرجاع النتيجة.

الروابط:

lapcatsoftware.com/articles/catalina-executables.html
news.ycombinator.com/item؟id=23275922
sigpipe.macromates.com/2020/macos-catalina-slow-by-design

All Articles