الألياف والخيوط على مستوى المستخدم
على Windows، كل ليف في libSceFiber هو ليف Windows حقيقي، فيحفظ التبديل سجلات الضيف ومكدسه. تبدأ الخيوط على مستوى المستخدم عبر مسار pthread نفسه.
ملاحظات المستودع حتى 10 أكتوبر 2026
لماذا لا يمكن أن يكون الليف بلا أثر
تعمل شيفرة الضيف كشيفرة آلة أصلية. يجب أن يستأنف تبديل الليف السجلات بعينها والمكدس بعينه، مع اختلاط إطارات المضيف وإطارات الضيف على ذلك المكدس. إعادة النجاح من sceFiberSwitch من دون تبديل كانت لتدع اللعبة تتابع على المكدس الخطأ وتُفسد الجانبين.
يسند PS5PCEM كل ليف ضيف مُهيأ إلى ليف Windows واحد. تستخدم sceFiberRun وsceFiberSwitch وsceFiberReturnToThread هذه الآلية. الخيط الذي استدعى sceFiberRun هو الليف الجذر. يحتفظ سجل SceFiber العام البالغ 128 بايتًا بتواقيع ABI، والحالة، ووسيط الدخول، والاسم، ونطاق السياق الذي قدّمه المستدعي.
لمن هذا المكدس
تقدّم اللعبة مخزن سياق، ويُسجَّل ذلك المخزن في كائن ABI. يملك Windows المكدس الفعلي. استخدام مخزن اللعبة كمكدس Windows أصلي كان ليتجاوز صفحة الحماية وسجلات فك التتبع التي يتطلبها نظام التشغيل. ما زال الحد الأدنى للسياق الذي يتوقعه سجل البرامج الثابتة يُفحص، مع المحاذاة وتوقيعَي البداية والنهاية.
sceFiberGetSelf والإنهاء وفحوص الملكية عبر الخيوط وإعادة ضبط وقت التشغيل مُنفَّذة. توجد الخلفية على هدف التنفيذ الأصلي Windows x86-64. تستطيع المضيفات الأخرى بناء بقية المحاكي، ومسار التبديل هذا غير متاح هناك.
الخيوط على مستوى المستخدم
ينجح تهيئة libSceUlt وإنهاؤها حتى يستطيع نظام مهام اللعبة أن يبدأ. تحتفظ أوقات التشغيل وطوابير الانتظار ومجمّعات بيانات الطوابير والأقفال الحصرية والسيمافورات والطوابير بحالة على جانب المضيف بمفتاح هو الكائنات التي خصصتها اللعبة. تبدأ عناصر العمل نفسها عبر مسار pthread الموجود. تعيد استعلامات حجم منطقة العمل الأحجام المحاذاة التي تتوقعها عمليات الإنشاء تلك.
تتشارك طوابير أحداث حافة المستخدم في النواة الانتظار الواعي للتسلسل نفسه الذي تستخدمه مزامنة pthread. يركب مرشح VideoOut ذي الرقم -13 ومرشح الرسوم ذي الرقم -14 ذلك الطابور ويحتفظان بمعرّف كل تسجيل وبيانات المستخدم. ULT غراء جدولة. وهو لا يضيف محاكي CPU ثانيًا.
ما هو منفَّذ
- ألياف Windows لكل من sceFiberRun وsceFiberSwitch وsceFiberReturnToThread.
- تواقيع ABI وفحوص ملكية ومكدس يملكه المضيف مع صفحة حماية.
- تهيئة ULT والطوابير والأقفال الحصرية والسيمافورات وعناصر العمل المسنودة إلى pthread.
- طوابير أحداث حافة المستخدم المشتركة مع إكمال VideoOut والرسوم.
ما زال ناقصًا
- يوجد تبديل الألياف على Windows x86-64. أنظمة تشغيل المضيف الأخرى لا تشغّل شيفرة الضيف أصليًا.
- الليف ليس خيط عتاد مجدولًا بشكل استباقي.
- لا ينفّذ ULT مفسّرًا منفصلًا لأجسام العمال.
آليات مرتبطة
ماذا تصف هذه الصفحات