Wine 7.0-ийн тогтвортой хувилбар

Жилийн турш хөгжүүлж, 30 туршилтын хувилбарыг гаргасны дараа Win32 API-ийн нээлттэй хувилбар болох Wine 7.0-ийг танилцуулсан бөгөөд үүнд 9100 гаруй өөрчлөлт орсон. Шинэ хувилбарын гол ололтууд нь ихэнх Wine модулиудыг PE формат руу хөрвүүлэх, сэдвүүдийг дэмжих, HID интерфэйс бүхий joysticks болон оролтын төхөөрөмжүүдийн стекийг өргөтгөх, 64 битийн програмуудыг ажиллуулах WoW32 архитектурыг хэрэгжүүлэх зэрэг орно. 64 битийн орчин.

Wine нь Windows-д зориулсан 5156 (жилийн өмнө 5049) програмыг бүрэн ажиллуулж байгааг баталгаажуулсан бол өөр 4312 (жилийн өмнө 4227) програм нэмэлт тохиргоо болон гадаад DLL-тэй төгс ажилладаг. 3813 программ (3703 жилийн өмнө) програмын үндсэн функцийг ашиглахад саад болохгүй үйл ажиллагааны жижиг асуудалтай байдаг.

Wine 7.0-ийн гол шинэчлэлүүд:

  • PE форматтай модулиуд
    • Бараг бүх DLL файлуудыг ELF-ийн оронд PE (Portable Executable, Windows дээр ашиглагддаг) гүйцэтгэх файлын форматыг ашиглахаар хөрвүүлсэн. PE-ийн хэрэглээ нь диск болон санах ой дахь системийн модулиудын таних эсэхийг шалгадаг хуулбарлах хамгаалалтын янз бүрийн схемүүдийг дэмжихтэй холбоотой асуудлыг шийддэг.
    • Стандарт NT цөмийн системийн дуудлагыг ашиглан PE модулиудыг Unix номын сангуудтай харьцах чадварыг хэрэгжүүлсэн бөгөөд энэ нь Windows дибаг хийгчдээс Unix код руу нэвтрэх эрхийг нуух, урсгалын бүртгэлийг хянах боломжийг олгодог.
    • Жинхэнэ номын сан эсвэл stub эсэхээс үл хамааран дискэн дээр харгалзах PE файл байгаа тохиолдолд л суулгасан DLL-г ачаалдаг. Энэ өөрчлөлт нь програмд ​​PE файлын зөв холболтыг үргэлж харах боломжийг олгодог. Энэ үйлдлийг идэвхгүй болгохын тулд та WINEBOOTSTRAPMODE орчны хувьсагчийг ашиглаж болно.
  • WoW64
    • WoW64 архитектур (64 битийн Windows-on-Windows) хэрэгжсэн бөгөөд энэ нь 32 битийн Windows програмуудыг 64 битийн Unix процесст ажиллуулах боломжийг танд олгоно. Дэмжлэг нь 32 битийн NT системийн дуудлагыг 64 битийн дуудлага руу NTDLL руу хөрвүүлдэг давхаргын холболтоор хэрэгждэг.
    • WoW64 давхаргууд нь ихэнх Unix сангуудад зориулагдсан бөгөөд 32 битийн PE модулиуд нь 64 битийн Unix номын санд хандах боломжийг олгодог. Бүх модулиудыг PE формат руу хөрвүүлсний дараа 32 битийн Unix номын санг суулгахгүйгээр 32 битийн Windows програмуудыг ажиллуулах боломжтой болно.
  • Сэдэв
    • Сэдвийн дэмжлэгийг хэрэгжүүлсэн. "Гэрэл", "Цэнхэр", "Сонгодог цэнхэр" загварын сэдвүүд багтсан бөгөөд тэдгээрийг WineCfg тохируулагчаар сонгож болно.
    • Сэдвүүдээр дамжуулан интерфейсийн бүх удирдлагын харагдах байдлыг өөрчлөх боломжийг нэмсэн. Загварын сэдвийг өөрчилсний дараа элементүүдийн харагдах байдал автоматаар шинэчлэгддэг.
    • Сэдвийн дэмжлэгийг бүх Wine програмуудад нэмсэн. Програмуудыг өндөр пикселийн нягтралтай (High DPI) дэлгэцэнд тохируулсан.
  • График дэд систем
    • Win32u шинэ номын сан нэмэгдсэн бөгөөд үүнд GDI32 болон USER32 номын сангийн график боловсруулалт, цөмийн түвшний цонхны менежменттэй холбоотой хэсгүүд багтсан болно. Цаашид winex32.drv, winemac.drv зэрэг драйверийн бүрэлдэхүүн хэсгүүдийг Win11u руу шилжүүлэх ажил эхэлнэ.
    • Vulkan драйвер нь Vulkan график API тодорхойлолт 1.2.201-ийг дэмждэг.
    • Чиглэсэн геометрийн объектуудыг Direct2D API-ээр дамжуулан гаргахад дэмжлэг үзүүлж, товшилтыг цохих эсэхийг шалгах боломжтой (хит-тест).
    • Direct2D API нь ID2D1Effect интерфэйсийг ашиглан ашигласан визуал эффектүүдийн анхны дэмжлэгийг өгдөг.
    • Direct2D API нь ID2D1MultiThread интерфэйсийн дэмжлэгийг нэмсэн бөгөөд энэ нь олон урсгалтай програмуудын нөөцөд онцгой хандалтыг зохион байгуулахад ашиглагддаг.
    • WindowsCodecs номын сангууд нь WMP (Windows Media Photo) формат дахь зургийг тайлах, DDS (DirectDraw Surface) форматаар кодлоход дэмжлэг үзүүлдэг. Бид Windows дээр дэмжигддэггүй ICNS форматаар (macOS-д зориулсан) дүрс кодлохыг дэмжихээ больсон.
  • Direct3D програм
    • Direct3D дуудлагыг Vulkan график API руу хөрвүүлсэн шинэ рэндэрлэх хөдөлгүүр нь мэдэгдэхүйц сайжирсан. Ихэнх тохиолдолд Vulkan-д суурилсан хөдөлгүүрт Direct3D 10 ба 11-ийн дэмжлэгийн түвшинг OpenGL-д суурилсан хуучин хөдөлгүүртэй харьцуулсан. Vulkan rendering engine-ийг идэвхжүүлэхийн тулд Direct3D бүртгэлийн хувьсагч "renderer"-ийг "vulkan" болгож тохируулна уу.
    • Direct3D 10 болон 11-ийн олон функцууд хэрэгжсэн бөгөөд үүнд Хойшлогдсон контекст, төхөөрөмжийн контекстэд ажиллаж буй төлөвийн объектууд, буфер дахь байнгын офсетууд, эмх цэгцгүй бүтэцтэй харагдацыг арилгах, төрөлгүй форматтай эх сурвалжуудын хооронд өгөгдлийг хуулах (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_32ASS32 гэх мэт), .
    • Олон мониторын тохиргооны дэмжлэгийг нэмсэн нь Direct3D програмыг бүтэн дэлгэцийн горимд харуулах дэлгэц сонгох боломжийг танд олгоно.
    • DXGI API нь дэлгэцийн гамма залруулгыг хэрэгжүүлдэг бөгөөд үүнийг Direct3D 10 болон 11 дээр суурилсан програмууд дэлгэцийн гэрэлтүүлгийг өөрчлөхөд ашиглаж болно. Виртуал фреймбуфер тоолуур (SwapChain) сэргээхийг идэвхжүүлсэн.
    • Direct3D 12 нь 1.1 хувилбарын үндсэн гарын үсгийн дэмжлэгийг нэмдэг.
    • VK_EXT_host_query_reset өргөтгөлийг систем дэмждэг үед Vulkan API-ээр дамжуулан үзүүлэх кодонд асуулга боловсруулах үр ашиг сайжирсан.
    • Хэрэв OpenGL эсвэл Vulkan-ыг дэлгэцэнд ашиглах боломжгүй бол, жишээлбэл, CEF (Chromium Embedded Framework) хүрээн дээр суурилсан программ дээр өөр өөр процессуудаас цонх руу гаргах үед GDI-ээр виртуал фреймбуфер (SwapChain) гаргах боломжийг нэмсэн.
    • GLSL шэйдерийн арын хэсгийг ашиглах үед шэйдерийн зааварчилгааны хувьд "нарийн" өөрчлөгчийг баталгаажуулдаг.
    • DirectDraw API нь "RGB", "MMX" болон "Ramp" зэрэг програм хангамжийн төхөөрөмжүүдийг ашиглан системийн санах ойд 3D дүрслэлийг дэмждэг.
    • Direct3D график картын мэдээллийн санд AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 болон NVIDIA GT 1030 картууд нэмэгдсэн.
    • "UseGLSL" түлхүүрийг HKEY_CURRENT_USER\Software\Wine\Direct3D бүртгэлээс хассан бөгөөд үүний оронд та Wine 5.0-аас эхлэн "shader_backend"-г ашиглах хэрэгтэй.
    • Direct3D 12-г дэмжихийн тулд танд одоо vkd3d номын сангийн хамгийн багадаа 1.2 хувилбар хэрэгтэй.
  • D3DX
    • D3DX 10 хэрэгжүүлэлт нь визуал эффектийн хүрээний дэмжлэгийг сайжруулж, Windows Media Фото зургийн форматыг (JPEG XR) дэмждэг болсон.
    • D3DX10CreateTextureFromMemory() гэх мэт D3DX10-д өгөгдсөн бүтэц үүсгэх функцүүдийг нэмсэн.
    • ID3DX10Sprite болон ID3DX10Font програм хангамжийн интерфейсийг хэсэгчлэн хэрэгжүүлсэн.
  • Дуу, видео
    • DirectShow болон Media Foundation-д зориулсан GStreamer нэмэлтүүд нь нэг нийтлэг WineGStreamer backend-д нэгтгэгдсэн бөгөөд энэ нь шинэ контент тайлах API-г хөгжүүлэхэд хялбар болгох ёстой.
    • WineGStreamer backend дээр үндэслэн Windows Media объектуудыг синхрон болон асинхрон уншихад ашигладаг.
    • Хэвлэл мэдээллийн сангийн хүрээний хэрэгжилтийг улам боловсронгуй болгож, IMFPMediaPlayer функц болон түүвэр хуваарилагчийн дэмжлэгийг нэмж, EVR болон SAR-ийн рэндэрлэх буферийн дэмжлэгийг сайжруулсан.
    • QuickTime форматын код тайлагчаар хангадаг wineqtdecoder номын санг устгасан (бүх кодлогч одоо GStreamer ашигладаг).
  • Оролтын төхөөрөмж
    • HID (Хүний интерфэйсийн төхөөрөмж) протоколыг дэмждэг оролтын төхөөрөмжүүдийн стекийг мэдэгдэхүйц сайжруулж, HID тодорхойлогчдыг задлан шинжлэх, HID мессежийг боловсруулах, мини-HID драйверуудыг хангах зэрэг боломжуудыг хангасан.
    • Winebus.sys драйверын арын хэсэгт төхөөрөмжийн тайлбарыг HID мессеж рүү орчуулах нь сайжирсан.
    • HID протоколыг дэмждэг джойстикийн шинэ DirectInput арын хэсгийг нэмсэн. Жойстик дээр санал хүсэлтийн эффектийг ашиглах чадварыг хэрэгжүүлсэн. Сайжруулсан joystick хяналтын самбар. XInput нийцтэй төхөөрөмжүүдтэй харилцан үйлчлэлийг оновчтой болгосон. WinMM-д, Linux дээр evdev backend болон macOS IOHID дээр IOHID ашиглахын оронд joystick-ийн дэмжлэгийг DInput руу шилжүүлсэн. Хуучин joystick драйвер winejoystick.drv устгагдсан.
    • DInput модульд виртуал HID төхөөрөмжүүдийн хэрэглээнд суурилсан, физик төхөөрөмж шаарддаггүй шинэ тестүүд нэмэгдсэн.
  • Текст ба фонтууд
    • DirectWrite-д Font Set объектыг нэмсэн.
    • RichEdit нь TextHost интерфейсийг зөв хэрэгжүүлдэг.
  • Цөм (Windows цөмийн интерфэйс)
    • Wine-д тодорхойгүй гүйцэтгэгдэх файлыг ("wine foo.msi" гэх мэт) ажиллуулах үед start.exe-г одоо дуудаж, файлын төрөлтэй холбоотой зохицуулагчийг дууддаг.
    • Линукс дээрх футекстэй төстэй NtAlertThreadByThreadId ба NtWaitForAlertByThreadId синхрончлолын механизмын дэмжлэгийг нэмсэн.
    • Цөмийн функцийг дибаг хийхэд ашигладаг NT дибаг хийх объектуудад дэмжлэг нэмсэн.
    • Гүйцэтгэлийн өгөгдлийг хадгалахын тулд динамик бүртгэлийн түлхүүрүүдийн дэмжлэгийг нэмсэн.
  • C Ажиллах цаг
    • C-ийн ажиллах цаг нь үндсэндээ Мусл номын сангаас дамждаг математикийн иж бүрэн функцуудыг хэрэгжүүлдэг.
    • Бүх CPU платформууд хөвөгч цэгийн функцийг зөв дэмждэг.
  • Сүлжээний онцлог
    • Одоо HTML баримт бичгийг боловсруулахад анхдагчаар ашиглагддаг Internet Explorer 11 (IE11)-ийн нийцтэй байдлын горимыг сайжруулсан.
    • Mshtml номын сан нь ES6 JavaScript горимыг (ECMAScript 2015) хэрэгжүүлдэг бөгөөд энэ нь let илэрхийлэл болон Map объект зэрэг функцуудыг дэмждэг.
    • Gecko хөдөлгүүрийн нэмэлтүүд бүхий MSI багцуудыг Wine ажлын лавлах руу суулгах нь Wine шинэчлэлтийн үед биш харин шаардлагатай үед хийгддэг.
    • DTLS протоколын дэмжлэгийг нэмсэн.
    • NSI (Сүлжээний Дэлгүүрийн Интерфейс) үйлчилгээг нэвтрүүлж, компьютер дээрх чиглүүлэлт болон сүлжээний интерфэйсийн талаарх мэдээллийг хадгалж, бусад үйлчилгээнүүдэд дамжуулдаг.
    • Setsockopt болон getsockopt зэрэг WinSock API зохицуулагчийг Windows архитектурт нийцүүлэхийн тулд NTDLL болон afd.sys драйвер руу шилжүүлсэн.
    • Wine-н өөрийн сүлжээний мэдээллийн сангийн файлууд болох /etc/protocols болон /etc/networks нь ижил төстэй Unix мэдээллийн санд хандахын оронд Wine ажлын директорт суулгагдсан.
  • Альтернатив платформууд
    • M1 ARM чип (Apple Silicon) дээр суурилсан Apple-ийн тоног төхөөрөмжийн дэмжлэг нэмэгдсэн.
    • MacOS дээрх BCrypt болон Secur32 функцуудыг дэмжихэд одоо GnuTLS номын санг суулгах шаардлагатай.
    • ARM платформд зориулсан 32 битийн гүйцэтгэгдэх программуудыг одоо Windows-тэй адил Thumb-2 горимд бүтээжээ. Ийм файлуудыг ачаалахад урьдчилан ачаалагчийг ашигладаг.
    • 32 битийн ARM платформуудын хувьд үл хамаарах зүйлийг арилгах дэмжлэгийг хэрэгжүүлсэн.
    • FreeBSD-ийн хувьд санах ойн байдал, батерейны цэнэгийн түвшин зэрэг доод түвшний системийн мэдээлэлд зориулсан дэмжигдсэн асуулгын тоог нэмэгдүүлсэн.
  • Баригдсан програмууд болон хөгжүүлэлтийн хэрэгслүүд
    • Reg.exe хэрэгсэл нь 32 ба 64 битийн бүртгэлийн харагдах байдлыг дэмждэг. Бүртгэлийн түлхүүрүүдийг хуулах дэмжлэг нэмэгдсэн.
    • WineDump хэрэгсэл нь Windows-ийн мета өгөгдлийг буулгах, CodeView оруулгуудын талаарх дэлгэрэнгүй мэдээллийг харуулах дэмжлэгийг нэмсэн.
    • Wine Debugger (winedbg) нь 32 битийн дибаг хийгчээс 64 битийн процессыг дибаг хийх боломжийг олгодог.
    • PE файлд суулгасан сангуудыг ачаалах чадварыг IDL хөрвүүлэгч (widl) дээр нэмж, WinRT-д зориулсан шинж чанарууд болон бүтцийг дэмжих, платформд зориулсан номын сангийн хайлтыг хэрэгжүүлсэн.
  • Угсралтын систем
    • Архитектурын тусгай лавлахуудад номын сангууд одоо архитектур болон гүйцэтгэх файлын төрлийг тусгасан нэрээр хадгалагдаж байна, тухайлбал, PE форматын 'i386-windows', unix номын санд зориулсан 'x86_64-unix' нь өөр өөр архитектурт дэмжлэг үзүүлэх боломжийг олгодог. ганц Wine суулгац болон Winelib-ийн хөндлөн эмхэтгэлийг хангана.
    • PE файлуудын толгой хэсэгт уугуул DLL ашиглах руу шилжих сонголтыг тохируулахын тулд winebuild-д '--prefer-native option' гэсэн тугийг нэмсэн (DllMain-д DLL_WINE_PREATTACH боловсруулалт зогссон).
    • Одой дибаг хийх өгөгдлийн форматын 4-р хувилбарын дэмжлэгийг нэмсэн бөгөөд үүнийг одоо Wine номын сан байгуулахад анхдагчаар ашигладаг.
    • '—enable-build-id' бүтээх сонголтыг нэмсэн бөгөөд гүйцэтгэх боломжтой файлуудад өвөрмөц бүтээх танигчийг хадгалах боломжтой.
    • MSVC нийцтэй горимд Clang хөрвүүлэгчийг ашиглах дэмжлэг нэмэгдсэн.
  • Разное
    • Хэрэглэгчийн бүрхүүл дэх ердийн сангуудын нэрсийг (Windows Shell) Windows Vista-аас эхлэн ашигласан схемд өгсөн болно, i.e. 'My Documents'-ийн оронд 'Documents' лавлах үүсгэгдсэн бөгөөд ихэнх өгөгдлүүд нь 'AppData' санд хадгалагдана.
    • OpenCL номын сангийн давхаргад OpenCL 1.2 техникийн үзүүлэлтийг дэмжсэн.
    • WinSpool драйвер нь хэвлэх үед өөр өөр хэмжээтэй хуудасны дэмжлэгийг нэмсэн.
    • ODBC драйверуудад зориулсан Microsoft OLE DB үйлчилгээ үзүүлэгч MSDASQL-ийн анхны дэмжлэгийг нэмсэн.
    • .NET платформын хэрэгжилттэй Wine Mono хөдөлгүүрийг 7.0.0 хувилбар болгон шинэчилсэн.
    • Юникод өгөгдөл нь Юникод 14-ийн тодорхойлолтод шинэчлэгдсэн.
    • Эх модонд Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt, Zlib сангууд багтдаг бөгөөд тэдгээр нь PE форматаар эмхэтгэсэн бөгөөд Unix форматтай хувилбар шаарддаггүй. Үүний зэрэгцээ эдгээр сангуудыг системээс импортлох боломжтой бөгөөд суулгасан PE сонголтуудын оронд гадаад угсралтуудыг ашиглах боломжтой.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх