إصدار مستقر من Wine 5.0

بعد عام من التطوير و28 نسخة تجريبية المقدمة إصدار مستقر للتنفيذ المفتوح لـ Win32 API - النبيذ 5.0والتي تضمنت أكثر من 7400 تغيير. تشمل الإنجازات الرئيسية للإصدار الجديد تقديم وحدات Wine المدمجة بتنسيق PE، ودعم تكوينات الشاشات المتعددة، وتنفيذ جديد لواجهة برمجة التطبيقات الصوتية XAudio2 ودعم واجهة برمجة التطبيقات الرسومية Vulkan 1.1.

في النبيذ أكده التشغيل الكامل لـ 4869 برنامجًا (قبل عام 4737) لنظام التشغيل Windows، و4136 برنامجًا آخر (قبل عام 4045) يعمل بشكل مثالي مع الإعدادات الإضافية وملفات DLL الخارجية. هناك 3635 برنامجًا بها مشكلات بسيطة في الأداء لا تتعارض مع استخدام وظائف التطبيق الأساسية.

مفتاح الابتكارات النبيذ 5.0:

  • وحدات بتنسيق PE
    • باستخدام برنامج التحويل البرمجي MinGW، تم الآن إنشاء معظم وحدات Wine بتنسيق الملف القابل للتنفيذ PE (القابل للتنفيذ المحمول، المستخدم في Windows) بدلاً من ELF. يؤدي استخدام PE إلى حل المشكلات المتعلقة بدعم أنظمة حماية النسخ المختلفة التي تتحقق من هوية وحدات النظام الموجودة على القرص وفي الذاكرة؛
    • يتم الآن نسخ الملفات التنفيذية PE إلى الدليل ~/.wine ($WINEPREFIX) بدلاً من استخدام ملفات DLL الوهمية، مما يجعل الأشياء أكثر تشابهًا مع عمليات تثبيت Windows الحقيقية، على حساب استهلاك مساحة إضافية على القرص؛
    • يمكن للوحدات المحولة إلى تنسيق PE استخدام المعيار wchar وظائف وثوابت C مع Unicode (على سبيل المثال، L"abc")؛
    • أضاف وقت تشغيل Wine C دعمًا للربط مع الثنائيات المضمنة في MinGW، والتي يتم استخدامها افتراضيًا بدلاً من وقت تشغيل MinGW عند إنشاء ملفات DLL؛
  • النظام الفرعي للرسومات
    • تمت إضافة دعم للعمل مع شاشات متعددة ومحولات الرسومات، بما في ذلك القدرة على تغيير الإعدادات ديناميكيًا؛
    • تم تحديث برنامج تشغيل واجهة برمجة تطبيقات الرسومات Vulkan ليتوافق مع مواصفات Vulkan 1.1.126؛
    • توفر مكتبة WindowsCodecs القدرة على تحويل تنسيقات نقطية إضافية، بما في ذلك التنسيقات ذات لوحة الألوان المفهرسة؛
  • Direct3D
    • عند تشغيل تطبيقات Direct3D بملء الشاشة، يتم حظر استدعاء شاشة التوقف؛
    • أضاف DXGI (البنية التحتية لرسومات DirectX) دعمًا لإعلام التطبيق عند تصغير النافذة الخاصة به، مما يسمح للتطبيق بتقليل أداء العمليات كثيفة الاستخدام للموارد عند تصغير النافذة؛
    • بالنسبة للتطبيقات التي تستخدم DXGI، أصبح من الممكن الآن التبديل بين وضع ملء الشاشة ووضع النافذة باستخدام تركيبة Alt+Enter؛
    • تم توسيع إمكانيات تطبيق Direct3D 12، على سبيل المثال، يوجد الآن دعم للتبديل بين وضع ملء الشاشة ووضع النافذة، وتغيير أوضاع الشاشة، وتوسيع نطاق الإخراج وإدارة الفاصل الزمني لاستبدال المخزن المؤقت للعرض (فاصل المبادلة)؛
    • تحسين التعامل مع المواقف الحدودية المختلفة، مثل استخدام قيم الإدخال خارج النطاق لاختبارات الشفافية والعمق، والعرض باستخدام الأنسجة المنعكسة والمخازن المؤقتة، واستخدام كائنات DirectDraw غير الصحيحة مجز، وإنشاء أجهزة Direct3 لنوافذ غير صحيحة، واستخدام المناطق المرئية التي تساوي قيم المعلمات الدنيا لها الحد الأقصى، وما إلى ذلك.
    • يوفر Direct3D 8 و9 تتبعًا أكثر دقة "متسخ» مناطق ذات مواد محملة؛
    • تم تقليل حجم مساحة العنوان المطلوبة عند تحميل مواد ثلاثية الأبعاد مضغوطة باستخدام طريقة S3TC (بدلاً من التحميل بالكامل، يتم تحميل الأنسجة في أجزاء).
    • تم تنفيذ الواجهة ID3D11 موضوع متعدد لحماية الأقسام الهامة في التطبيقات متعددة الخيوط؛
    • تم إجراء العديد من التحسينات والإصلاحات المتعلقة بحسابات الإضاءة لتطبيقات DirectDraw الأقدم؛
    • تم تنفيذ مكالمات إضافية للحصول على معلومات حول التظليل في واجهة برمجة التطبيقات ShaderReflection;
    • ويدعم wine3d الآن قرحة يعتمد على وحدة المعالجة المركزية (CPU) لمعالجة الموارد المضغوطة؛
    • تم توسيع قاعدة بيانات بطاقات الرسومات المعترف بها في Direct3D؛
    • تمت إضافة مفاتيح تسجيل جديدة HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (الواجهة الخلفية للعمل مع التظليل: "glsl" لـ GLSL، و"arb" لـ ARB vertex/fragment و"none" لتعطيل دعم التظليل)، و"strict_shader_math" ( 0x1 - تمكين، 0x0 - تعطيل تحويل تظليل Direct3D). تم إهمال مفتاح "UseGLSL" (يجب استخدام "shader_backend")؛
  • D3DX
    • تم تنفيذ دعم آلية ضغط النسيج ثلاثي الأبعاد S3TC (S3 Texture Compression)؛
    • تمت إضافة التطبيقات الصحيحة للعمليات مثل ملء النسيج والأسطح غير القابلة للتعيين؛
    • تم إجراء تحسينات وإصلاحات مختلفة على إطار الإنشاء تأثيرات بصرية;
  • Kernel (واجهات Windows kernel)
    • تم نقل معظم الوظائف المستخدمة في Kernel32 إلى
      KernelBase، بعد التغييرات في بنية Windows؛

    • القدرة على مزج ملفات DLL 32 و64 بت في الدلائل المستخدمة للتحميل. يضمن تجاهل المكتبات التي لا تتطابق مع عمق البت الحالي (32/64)، في حالة إمكانية العثور على مكتبة مناسبة لعمق البت الحالي على طول المسار؛
    • بالنسبة لبرامج تشغيل الأجهزة، تم تحسين محاكاة كائنات kernel؛
    • كائنات المزامنة المنفذة التي تعمل على مستوى النواة، مثل أقفال الدوران وكائنات المزامنة السريعة والمتغيرات المرتبطة بالمورد؛
    • يضمن إعلام التطبيقات بشكل صحيح بحالة البطارية؛
  • واجهة المستخدم وتكامل سطح المكتب
    • يتم الآن عرض النوافذ المصغرة باستخدام شريط العنوان بدلاً من رمز نمط Windows 3.1؛
    • تمت إضافة أنماط زر جديدة SplitButton (زر يحتوي على قائمة منسدلة للإجراءات) و روابط الأوامر (الروابط الموجودة في مربعات الحوار المستخدمة للانتقال إلى المرحلة التالية)؛
    • تم إنشاء روابط رمزية لمجلدات "التنزيلات" و"القوالب"، مع الإشارة إلى الدلائل المقابلة على أنظمة يونكس؛
  • أجهزة الإدخال
    • عند بدء التشغيل، يتم تثبيت وتحميل برامج تشغيل أجهزة التوصيل والتشغيل الضرورية؛
    • تحسين الدعم لأجهزة التحكم في الألعاب، بما في ذلك عصا التحكم الصغيرة (مفتاح القبعة)، وعجلة القيادة، ودواسات الغاز والفرامل.
    • تم إيقاف دعم واجهة برمجة تطبيقات عصا التحكم Linux القديمة المستخدمة في نواة Linux قبل الإصدار 2.2؛
  • . NET
    • تم تحديث محرك Mono لإصدار 4.9.4 ويتضمن الآن أجزاء من إطار عمل Windows Presentation Foundation (WPF)؛
    • تمت إضافة القدرة على تثبيت الوظائف الإضافية مع Mono وGecko في دليل مشترك واحد، ووضع الملفات في التسلسل الهرمي /usr/share/wine بدلاً من نسخها إلى بادئات جديدة؛
  • فرص التواصل
    • تم تحديث محرك متصفح Wine Gecko، المستخدم في مكتبة MSHTML، إلى الإصدار 2.47.1. تم تنفيذ دعم واجهات برمجة تطبيقات HTML الجديدة؛
    • يدعم MSHTML الآن عناصر SVG؛
    • تمت إضافة العديد من وظائف VBScript الجديدة (على سبيل المثال، معالجات الأخطاء والاستثناءات، وظائف Hour، Day، Month، String، LBound، RegExp.Replace، РScriptTypeInfo_* وScriptTypeComp_Bind*، وما إلى ذلك)؛
    • توفير الحفاظ على حالة التعليمات البرمجية في VBScript وJScript (استمرارية البرنامج النصي)؛
    • تمت إضافة تطبيق أولي لخدمة HTTP (WinHTTP) وواجهة برمجة التطبيقات المرتبطة (HTTPAPI) لتطبيقات العميل والخادم التي ترسل وتستقبل الطلبات باستخدام بروتوكول HTTP؛
    • تم تنفيذ القدرة على الحصول على إعدادات وكيل HTTP عبر DHCP؛
    • تمت إضافة دعم لإعادة توجيه طلبات المصادقة من خلال خدمة Microsoft Passport؛
  • التشفير
    • تم تنفيذ الدعم لمفاتيح التشفير ذات المنحنى الإهليلجي (ECC) عند استخدام GnuTLS؛
    • تمت إضافة القدرة على استيراد المفاتيح والشهادات من الملفات بتنسيق PFX؛
    • تمت إضافة دعم لنظام إنشاء المفاتيح استنادًا إلى كلمة مرور PBKDF2؛
  • النص والخطوط
    • أضاف تطبيق DirectWrite API دعمًا لميزات OpenType ذات الصلة بـ تحديد موضع الحروف الرسومية، والتي يتم تمكينها افتراضيًا للنمط اللاتيني، بما في ذلك تقنين الأحرف؛
    • تحسين الأمان لمعالجة بيانات الخطوط عن طريق التحقق من صحة جداول البيانات المختلفة قبل استخدامها؛
    • لقد تم جعل واجهات DirectWrite تتماشى مع أحدث إصدار من SDK؛
  • الصوت والفيديو
    • تم اقتراح تطبيق جديد لواجهة برمجة التطبيقات الصوتية XAudio2، بنيت على أساس المشروع صوت. يتيح لك استخدام FAudio in Wine تحقيق جودة صوت أعلى في الألعاب واستخدام ميزات مثل خلط الصوت والمؤثرات الصوتية المتقدمة؛
    • تمت إضافة عدد كبير من الاستدعاءات الجديدة إلى تنفيذ إطار عمل Media Foundation، بما في ذلك دعم قوائم الانتظار المضمنة والمخصصة غير المتزامنة، وSource Reader API، وجلسة الوسائط، وما إلى ذلك.
    • تم تحويل مرشح التقاط الفيديو إلى استخدام v4l2 API بدلاً من v4l1 API، مما أدى إلى توسيع نطاق الكاميرات المدعومة؛
    • تمت إزالة وحدات فك التشفير AVI وMPEG-I وWAVE المضمنة، وبدلاً من ذلك يتم الآن استخدام نظام GStreamer أو QuickTime؛
    • تمت إضافة مجموعة فرعية من واجهات برمجة تطبيقات تكوين VMR7؛
    • تمت إضافة دعم لضبط مستوى صوت القنوات الفردية لمحركات الصوت؛
  • تدويل
    • تم تحديث جداول Unicode إلى الإصدار 12.1.0 ؛
    • تم تنفيذ الدعم لتطبيع Unicode؛
    • توفير التثبيت التلقائي للمنطقة الجغرافية (HKEY_CURRENT_USER\Control Panel\International\Geo) بناءً على اللغة الحالية؛
  • آر بي سي/كوم
    • تمت إضافة دعم للهياكل والمصفوفات المعقدة إلى typelib؛
    • تمت إضافة التنفيذ الأولي لمكتبة وقت تشغيل Windows Script؛
    • تمت إضافة التنفيذ الأولي لمكتبة ADO (كائنات بيانات Microsoft ActiveX)؛
  • المثبتون
    • تم تنفيذ دعم تسليم التصحيحات (ملفات التصحيح) لمثبت MSI؛
    • تتمتع الأداة المساعدة WUSA (Windows Update Standalone Installer) الآن بالقدرة على تثبيت التحديثات بتنسيق .MSU؛
  • منصة أرم
    • بالنسبة لبنية ARM64، تمت إضافة دعم لتفكيك المكدس إلى ntdll. تمت إضافة دعم لتوصيل مكتبات libunwind الخارجية؛
    • بالنسبة لبنية ARM64، تم تنفيذ دعم الوكلاء السلسين لواجهات الكائنات؛
  • أدوات التطوير / Winelib
    • تمت إضافة القدرة على استخدام مصحح الأخطاء من Visual Studio لتصحيح أخطاء التطبيقات التي تعمل في Wine عن بعد؛
    • تم تنفيذ مكتبة DBGENG (Debug Engine) جزئيًا؛
    • لم تعد الثنائيات المترجمة لنظام Windows تعتمد على libwine، مما يسمح لها بالعمل على Windows دون تبعيات إضافية؛
    • تمت إضافة خيار "--sysroot" إلى Resource Compiler وIDL Compiler لتحديد مسار ملفات الرأس؛
    • تمت إضافة الخيارات "—target" و"—wine-objdir" و"—wine-objdir" إلى winegcc
      "- winebuild" و "-fuse-ld"، مما يبسط إعداد البيئة للتجميع المتبادل؛

  • التطبيقات المدمجة
    • تم تنفيذ أداة مساعدة CHCP لتكوين تشفير وحدة التحكم؛
    • تم تنفيذ الأداة المساعدة MSIDB لمعالجة قواعد البيانات بتنسيق MSI؛
  • تحسين الأداء
    • تم ترحيل وظائف التوقيت المختلفة لاستخدام وظائف مؤقت النظام عالية الأداء، مما يقلل الحمل في حلقة العرض للعديد من الألعاب؛
    • تمت إضافة القدرة على استخدام Ext4 في FS نظام الحكم العمل دون حساسية لحالة الأحرف؛
    • تم تحسين أداء معالجة عدد كبير من العناصر في مربعات حوار عرض القائمة التي تعمل في وضع LBS_NODATA؛
    • تمت إضافة تنفيذ أسرع لأقفال SRW (القارئ/الكاتب الرفيع) لنظام التشغيل Linux، وترجمته إلى Futex؛
  • التبعيات الخارجية
    • لتجميع الوحدات بتنسيق PE، يتم استخدام المترجم المتقاطع MinGW-w64؛
    • يتطلب تنفيذ XAudio2 مكتبة FAudio؛
    • لتتبع تغييرات الملفات على أنظمة BSD
      يتم استخدام مكتبة Inotify.

    • للتعامل مع الاستثناءات على منصة ARM64، يلزم وجود مكتبة Unwind؛
    • بدلاً من Video4Linux1، أصبحت مكتبة Video4Linux2 مطلوبة الآن.

المصدر: opennet.ru

إضافة تعليق