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

بعد عام من التطوير و30 إصدارًا تجريبيًا، تم تقديم إصدار مستقر للتنفيذ المفتوح لـ Win32 API - Wine 7.0، والذي يتضمن أكثر من 9100 تغيير. تشمل الإنجازات الرئيسية للإصدار الجديد ترجمة معظم وحدات Wine إلى تنسيق PE، ودعم السمات، وتوسيع مجموعة أدوات التحكم وأجهزة الإدخال بواجهة HID، وتنفيذ بنية WoW64 لتشغيل برامج 32 بت في نظام بيئة 64 بت.

أكد Wine التشغيل الكامل لـ 5156 برنامجًا (قبل عام 5049) لنظام التشغيل Windows، ويعمل 4312 برنامجًا آخر (قبل عام 4227) بشكل مثالي مع الإعدادات الإضافية وملفات DLL الخارجية. 3813 برنامجًا (منذ 3703 سنوات) بها مشكلات تشغيلية بسيطة لا تتعارض مع استخدام الوظائف الرئيسية للتطبيقات.

الابتكارات الرئيسية في Wine 7.0:

  • وحدات بتنسيق PE
    • لقد تم تحويل جميع ملفات DLL تقريبًا لاستخدام تنسيق الملف القابل للتنفيذ PE (القابل للتنفيذ المحمول، المستخدم في نظام التشغيل Windows) بدلاً من ELF. يؤدي استخدام PE إلى حل مشكلات دعم أنظمة حماية النسخ المختلفة التي تتحقق من هوية وحدات النظام الموجودة على القرص وفي الذاكرة.
    • تم تنفيذ القدرة على تفاعل وحدات PE مع مكتبات Unix باستخدام استدعاء نظام NT kernel القياسي، مما يسمح لك بإخفاء الوصول إلى كود Unix من مصححات أخطاء Windows ومراقبة تسجيل سلسلة الرسائل.
    • يتم الآن تحميل ملفات DLL المضمنة فقط في حالة وجود ملف PE مطابق على القرص، بغض النظر عما إذا كان مكتبة حقيقية أو كعب روتين. يسمح هذا التغيير للتطبيق برؤية الارتباط الصحيح لملفات PE دائمًا. لتعطيل هذا السلوك، يمكنك استخدام متغير البيئة WINEBOOTSTRAPMODE.
  • واو64
    • تم تنفيذ بنية WoW64 (64 بت Windows-on-Windows)، مما يسمح لك بتشغيل تطبيقات Windows 32 بت في عمليات Unix 64 بت. يتم تنفيذ الدعم من خلال اتصال الطبقة التي تترجم مكالمات نظام NT 32 بت إلى مكالمات 64 بت إلى NTDLL.
    • تم إعداد طبقات WoW64 لمعظم مكتبات Unix وتسمح لوحدات PE 32 بت بالوصول إلى مكتبات Unix 64 بت. بمجرد تحويل جميع الوحدات إلى تنسيق PE، سيكون من الممكن تشغيل تطبيقات Windows 32 بت دون تثبيت مكتبات Unix 32 بت.
  • المواضيع
    • تم تنفيذ دعم الموضوع. تم تضمين سمات التصميم "Light" و"Blue" و"Classic Blue"، والتي يمكن تحديدها من خلال أداة تهيئة WineCfg.
    • تمت إضافة القدرة على تخصيص مظهر جميع عناصر التحكم في الواجهة من خلال السمات. يتم تحديث مظهر العناصر تلقائيًا بعد تغيير سمة التصميم.
    • تمت إضافة دعم السمة إلى جميع تطبيقات Wine المضمنة. تم تكييف التطبيقات مع الشاشات ذات كثافة البكسل العالية (High DPI).
  • النظام الفرعي للرسومات
    • تمت إضافة مكتبة Win32u جديدة تتضمن أجزاء من مكتبات GDI32 وUSER32 المتعلقة بمعالجة الرسومات وإدارة النوافذ على مستوى النواة. في المستقبل، سيبدأ العمل على نقل مكونات برنامج التشغيل مثل winex32.drv و winemac.drv إلى Win11u.
    • يدعم برنامج التشغيل Vulkan مواصفات واجهة برمجة تطبيقات الرسومات Vulkan 1.2.201.
    • توفير الدعم لإخراج الكائنات الهندسية المظللة عبر Direct2D API، مع القدرة على التحقق مما إذا كانت النقرة قد وصلت (اختبار النتيجة).
    • توفر واجهة برمجة تطبيقات Direct2D الدعم الأولي للتأثيرات المرئية المطبقة باستخدام واجهة ID2D1Effect.
    • أضافت واجهة برمجة تطبيقات Direct2D دعمًا لواجهة ID2D1MultiThread، والتي تُستخدم لتنظيم الوصول الحصري إلى الموارد في التطبيقات متعددة الخيوط.
    • توفر مجموعة مكتبات WindowsCodecs الدعم لفك تشفير الصور بتنسيق WMP (Windows Media Photo) وترميز الصور بتنسيق DDS (DirectDraw Surface). لم نعد ندعم ترميز الصور بتنسيق ICNS (لنظام التشغيل macOS)، وهو غير مدعوم على نظام التشغيل Windows.
  • Direct3D
    • تم تحسين محرك العرض الجديد بشكل كبير، حيث قام بترجمة استدعاءات Direct3D إلى واجهة برمجة تطبيقات الرسومات Vulkan. في معظم المواقف، أصبح مستوى دعم Direct3D 10 و11 في المحرك المستند إلى Vulkan متساويًا مع المحرك الأقدم المستند إلى OpenGL. لتمكين محرك عرض Vulkan، قم بتعيين متغير التسجيل Direct3D "renderer" إلى "vulkan".
    • يتم تنفيذ العديد من ميزات Direct3D 10 و11، بما في ذلك السياقات المؤجلة، وكائنات الحالة التي تعمل في سياق الجهاز، والإزاحات المستمرة في المخازن المؤقتة، ومسح طرق عرض النسيج خارج الترتيب، ونسخ البيانات بين الموارد بتنسيقات غير مطبوعة (DXGI_FORMAT_BC3_TYPELESS، DXGI_FORMAT_R32G32B32A32_TYPELESS)، إلخ. .
    • تمت إضافة دعم لتكوينات الشاشات المتعددة، مما يسمح لك بتحديد شاشة لعرض تطبيق Direct3D في وضع ملء الشاشة.
    • توفر واجهة برمجة تطبيقات DXGI تصحيح جاما للشاشة، والذي يمكن استخدامه بواسطة التطبيقات المستندة إلى Direct3D 10 و11 لتغيير سطوع الشاشة. تمكين استرجاع عدادات الإطارات المؤقتة الافتراضية (SwapChain).
    • يضيف Direct3D 12 دعمًا لتوقيعات الجذر للإصدار 1.1.
    • في كود العرض عبر Vulkan API، تم تحسين كفاءة معالجة الاستعلام عندما يدعم النظام ملحق VK_EXT_host_query_reset.
    • تمت إضافة القدرة على إخراج الإطارات المؤقتة الافتراضية (SwapChain) عبر GDI إذا تعذر استخدام OpenGL أو Vulkan للعرض، على سبيل المثال، عند الإخراج إلى نافذة من عمليات مختلفة، على سبيل المثال، في البرامج المستندة إلى إطار عمل CEF (Chromium Embedded Framework).
    • عند استخدام الواجهة الخلفية للتظليل GLSL، يتم ضمان المعدل "الدقيق" لتعليمات التظليل.
    • تضيف واجهة برمجة تطبيقات DirectDraw دعمًا للعرض ثلاثي الأبعاد في ذاكرة النظام باستخدام أجهزة برمجية مثل "RGB" و"MMX" و"Ramp".
    • تمت إضافة بطاقات AMD Radeon RX 3M وAMD Radeon RX 5500/6800 XT/6800 XT وAMD Van Gogh وIntel UHD Graphics 6900 وNVIDIA GT 630 إلى قاعدة بيانات بطاقات الرسومات Direct1030D.
    • تمت إزالة مفتاح "UseGLSL" من سجل HKEY_CURRENT_USER\Software\Wine\Direct3D، وبدلاً من ذلك، بدءًا من Wine 5.0، تحتاج إلى استخدام "shader_backend".
    • لدعم Direct3D 12، أنت الآن بحاجة إلى الإصدار 3 على الأقل من مكتبة vkd1.2d.
  • D3DX
    • أدى تطبيق D3DX 10 إلى تحسين الدعم لإطار عمل التأثيرات المرئية وإضافة دعم لتنسيق صورة Windows Media Photo (JPEG XR)
    • تمت إضافة وظائف إنشاء النسيج المتوفرة في D3DX10، مثل D3DX10CreateTextureFromMemory().
    • تم تنفيذ واجهات برامج ID3DX10Sprite وID3DX10Font جزئيًا.
  • الصوت والفيديو
    • تم دمج إضافات GStreamer لـ DirectShow وإطار عمل Media Foundation في واجهة خلفية واحدة مشتركة لـ WineGStreamer، والتي من شأنها تبسيط عملية تطوير واجهات برمجة التطبيقات الجديدة لفك تشفير المحتوى.
    • استنادًا إلى الواجهة الخلفية WineGStreamer، يتم تنفيذ كائنات Windows Media للقراءة المتزامنة وغير المتزامنة.
    • تم تحسين تنفيذ إطار عمل Media Foundation بشكل أكبر، وتمت إضافة دعم لوظيفة IMFPMediaPlayer ومخصص العينات، كما تم تحسين دعم المخازن المؤقتة لعرض EVR وSAR.
    • تمت إزالة مكتبة wineqtdecoder، التي توفر وحدة فك ترميز لتنسيق QuickTime (جميع برامج الترميز تستخدم الآن GStreamer).
  • أجهزة الإدخال
    • تم تحسين مجموعة أجهزة الإدخال التي تدعم بروتوكول HID (أجهزة الواجهة البشرية) بشكل كبير، مما يوفر إمكانات مثل تحليل واصفات HID، ومعالجة رسائل HID، وتوفير برامج تشغيل HID صغيرة.
    • في الواجهات الخلفية لبرنامج تشغيل winebus.sys، تم تحسين ترجمة أوصاف الجهاز إلى رسائل HID.
    • تمت إضافة واجهة DirectInput جديدة لعصا التحكم التي تدعم بروتوكول HID. تم تنفيذ القدرة على استخدام تأثيرات ردود الفعل في عصا التحكم. تحسين لوحة التحكم بعصا التحكم. التفاعل الأمثل مع الأجهزة المتوافقة مع XInput. في WinMM، تم نقل دعم عصا التحكم إلى DInput، بدلاً من استخدام الواجهة الخلفية evdev على Linux وIOHID على macOS IOHID. تمت إزالة برنامج تشغيل عصا التحكم القديم winejoystick.drv.
    • تمت إضافة اختبارات جديدة إلى وحدة DInput، استنادًا إلى استخدام أجهزة HID الافتراضية ولا تتطلب جهازًا فعليًا.
  • النص والخطوط
    • تمت إضافة كائن مجموعة الخطوط إلى DirectWrite.
    • يقوم RichEdit بتنفيذ واجهة TextHost بشكل صحيح.
  • Kernel (واجهات Windows kernel)
    • عند تشغيل ملف قابل للتنفيذ غير معروف (مثل 'wine foo.msi') في Wine، يتم الآن استدعاء start.exe، والذي يستدعي المعالجات المرتبطة بنوع الملف.
    • تمت إضافة دعم لآليات المزامنة NtAlertThreadByThreadId وNtWaitForAlertByThreadId، على غرار futexes في Linux.
    • تمت إضافة دعم لكائنات تصحيح NT المستخدمة لتصحيح أخطاء وظائف kernel.
    • تمت إضافة دعم لمفاتيح التسجيل الديناميكية لحفظ بيانات الأداء.
  • ج وقت التشغيل
    • ينفذ وقت تشغيل لغة C مجموعة كاملة من الوظائف الرياضية، والتي يتم نقلها بشكل أساسي من مكتبة Musl.
    • توفر جميع منصات وحدة المعالجة المركزية الدعم الصحيح لوظائف الفاصلة العائمة.
  • فرص التواصل
    • وضع التوافق المحسّن لـ Internet Explorer 11 (IE11)، والذي يُستخدم الآن بشكل افتراضي لمعالجة مستندات HTML.
    • تطبق مكتبة mshtml وضع JavaScript ES6 (ECMAScript 2015)، والذي يوفر الدعم لميزات مثل تعبير Let وكائن Map.
    • يتم الآن تثبيت حزم MSI مع الإضافات إلى محرك Gecko في دليل عمل Wine عند الضرورة، وليس أثناء تحديث Wine.
    • تمت إضافة دعم لبروتوكول DTLS.
    • تم تنفيذ خدمة NSI (واجهة مخزن الشبكة) لتخزين ونقل المعلومات حول واجهات التوجيه والشبكة على الكمبيوتر إلى خدمات أخرى.
    • تم نقل معالجات WinSock API مثلsetsockopt وgetsockopt إلى NTDLL وبرنامج التشغيل afd.sys للتوافق مع بنية Windows.
    • تم الآن تثبيت ملفات قاعدة بيانات الشبكة الخاصة بـ Wine، مثل /etc/protocols و/etc/networks، في دليل عمل Wine، بدلاً من الوصول إلى قواعد بيانات Unix المماثلة.
  • منصات بديلة
    • تمت إضافة دعم لأجهزة Apple المستندة إلى شرائح M1 ARM (Apple Silicon).
    • يتطلب دعم ميزات BCrypt وSecur32 على نظام التشغيل macOS الآن تثبيت مكتبة GnuTLS.
    • تم الآن إنشاء الملفات التنفيذية 32 بت لمنصات ARM في وضع Thumb-2، على غرار Windows. يتم استخدام أداة التحميل المسبق لتحميل مثل هذه الملفات.
    • بالنسبة لمنصات ARM ذات 32 بت، تم تنفيذ دعم فك الاستثناءات.
    • بالنسبة لـ FreeBSD، تم توسيع عدد الاستعلامات المدعومة لمعلومات النظام ذات المستوى المنخفض، مثل حالة الذاكرة ومستوى شحن البطارية.
  • التطبيقات المدمجة وأدوات التطوير
    • أضافت الأداة المساعدة reg.exe دعمًا لطرق عرض التسجيل 32 و64 بت. تمت إضافة دعم لنسخ مفاتيح التسجيل.
    • أضافت الأداة المساعدة WineDump دعمًا لتفريغ بيانات تعريف Windows وعرض معلومات مفصلة حول إدخالات CodeView.
    • يوفر مصحح أخطاء Wine (winedbg) القدرة على تصحيح أخطاء عمليات 32 بت من مصحح أخطاء 64 بت.
    • تمت إضافة القدرة على تحميل المكتبات المضمنة في ملفات PE إلى مترجم IDL (widl)، وتم توفير الدعم للسمات والبنيات الخاصة بـ WinRT، وتم تنفيذ بحث في مكتبة خاصة بالنظام الأساسي.
  • نظام التجميع
    • في الدلائل الخاصة بالهندسة المعمارية، يتم الآن حفظ المكتبات بأسماء تعكس البنية والنوع القابل للتنفيذ، مثل "i386-windows" لتنسيق PE و"x86_64-unix" لمكتبات unix، مما يسمح بدعم بنيات مختلفة في Wine واحد التثبيت وتوفير التجميع المتقاطع لـ Winelib.
    • لتعيين خيار في رؤوس ملفات PE يتحكم في الانتقال إلى استخدام ملفات DLL الأصلية، تمت إضافة علامة '--prefer-native option' إلى winebuild (تم إيقاف معالجة DLL_WINE_PREATTACH في DllMain).
    • تمت إضافة دعم للإصدار 4 من تنسيق بيانات تصحيح الأخطاء Dwarf، والذي يُستخدم الآن افتراضيًا عند إنشاء مكتبات Wine.
    • تمت إضافة خيار البناء "—enable-build-id" لحفظ معرفات البناء الفريدة في الملفات القابلة للتنفيذ.
    • تمت إضافة دعم لاستخدام مترجم Clang في وضع التوافق مع MSVC.
  • miscellanea
    • يتم إعطاء أسماء الدلائل النموذجية في غلاف المستخدم (Windows Shell) للمخطط المستخدم بدءًا من نظام التشغيل Windows Vista، أي. بدلاً من "المستندات"، يتم الآن إنشاء دليل "المستندات"، ويتم حفظ معظم البيانات في دليل "AppData".
    • تمت إضافة دعم مواصفات OpenCL 1.2 إلى طبقة مكتبة OpenCL.
    • أضاف برنامج التشغيل WinSpool دعمًا لأحجام الصفحات المختلفة عند الطباعة.
    • تمت إضافة الدعم الأولي لـ MSDASQL، موفر Microsoft OLE DB لبرامج تشغيل ODBC.
    • تم تحديث محرك Wine Mono مع تطبيق النظام الأساسي .NET لإصدار 7.0.0.
    • تم تحديث بيانات Unicode إلى مواصفات Unicode 14.
    • تتضمن شجرة المصدر مكتبات Faudio وGSM وLCMS2 وLibJPEG وLibJXR وLibMPG123 وLibPng وLibTiff وLibXml2 وLibXslt وZlib، والتي تم تجميعها بتنسيق PE ولا تتطلب إصدارًا بتنسيق Unix. وفي الوقت نفسه، يمكن أيضًا استيراد هذه المكتبات من النظام لاستخدام التجميعات الخارجية بدلاً من خيارات PE المضمنة.

المصدر: opennet.ru

إضافة تعليق