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

Жилийн хөгжүүлэлт, 28 туршилтын хувилбаруудын дараа танилцуулсан Win32 API-ийн нээлттэй хэрэгжилтийн тогтвортой хувилбар - Wine 5.0, үүнд 7400 гаруй өөрчлөлт орсон. Шинэ хувилбарын гол амжилтууд нь PE форматаар суурилуулсан Wine модулиудыг хүргэх, олон мониторын тохиргоог дэмжих, XAudio2 аудио API-ийн шинэ хэрэгжилт, Vulkan 1.1 график API-г дэмжих зэрэг орно.

Дарсанд батлагдсан Windows-д зориулсан 4869 (жилийн өмнө 4737) програмын бүрэн ажиллагаа, өөр 4136 (жилийн өмнө 4045) програмууд нэмэлт тохиргоо болон гадаад DLL-тэй төгс ажилладаг. 3635 программ нь үндсэн хэрэглээний функцийг ашиглахад саад болохгүй гүйцэтгэлийн бага зэргийн асуудалтай байдаг.

Түлхүүр инноваци Wine 5.0:

  • PE форматтай модулиуд
    • MinGW хөрвүүлэгчийн тусламжтайгаар ихэнх Wine модулиудыг ELF биш харин PE (Portable Executable, Windows дээр ашигладаг) гүйцэтгэх файлын форматаар бүтээжээ. PE-ийн хэрэглээ нь диск болон санах ой дахь системийн модулиудын таних байдлыг баталгаажуулдаг хуулбарлах хамгаалалтын янз бүрийн схемүүдийг дэмжихтэй холбоотой асуудлыг шийддэг;
    • PE программуудыг одоо хуурамч DLL файлуудыг ашиглахын оронд ~/.wine ($WINEPREFIX) сан руу хуулж, дискний нэмэлт зай эзэлдэг зардлаар бодит Windows суулгацтай төстэй зүйлсийг хийж байна;
    • PE формат руу хөрвүүлсэн модулиуд нь стандартыг ашиглах боломжтой wchar Юникодтой C функц ба тогтмолууд (жишээ нь, L"abc");
    • Wine C-ийн ажиллах цаг нь MinGW-д баригдсан хоёртын файлуудтай холбох дэмжлэгийг нэмсэн бөгөөд үүнийг DLL-г бүтээхэд MinGW-н ажиллах цагийн оронд анхдагчаар ашигладаг;
  • График дэд систем
    • Тохиргоог динамикаар өөрчлөх чадварыг багтаасан олон монитор, график адаптертай ажиллах дэмжлэг нэмэгдсэн;
    • Vulkan график API-ийн драйвер нь Vulkan 1.1.126 техникийн үзүүлэлттэй нийцүүлэн шинэчлэгдсэн;
    • WindowsCodecs номын сан нь индексжүүлсэн палитр бүхий форматыг оруулаад нэмэлт растер форматыг хөрвүүлэх боломжийг олгодог;
  • Direct3D програм
    • Бүтэн дэлгэцийн Direct3D програмуудыг ажиллуулах үед дэлгэц амраагч дуудлагыг хаасан;
    • DXGI (DirectX Graphics Infrastructure) нь програмын цонхыг багасгасан үед мэдээлэл өгөх дэмжлэгийг нэмсэн бөгөөд энэ нь програмыг цонхыг багасгах үед нөөц их шаарддаг үйлдлүүдийн гүйцэтгэлийг бууруулах боломжийг олгодог;
    • DXGI ашигладаг програмуудын хувьд Alt+Enter хослолыг ашиглан бүтэн дэлгэц болон цонхтой горимд шилжих боломжтой болсон;
    • Direct3D 12-ийн хэрэгжилтийн чадавхийг өргөжүүлсэн, жишээлбэл, бүрэн дэлгэцийн болон цонхтой горимуудын хооронд шилжих, дэлгэцийн горимыг өөрчлөх, гаралтыг масштаблах, рэндэрлэх буфер солих интервалыг удирдах (своп интервал);
    • Ил тод байдал, гүний туршилтын хувьд хязгаараас гадуурх оролтын утгыг ашиглах, тусгагдсан бүтэц, буферээр дүрслэх, буруу DirectDraw объектуудыг ашиглах гэх мэт хилийн янз бүрийн нөхцөл байдлын зохицуулалтыг сайжруулсан. Clipper, буруу цонхонд зориулсан Direct3 төхөөрөмжийг бий болгох, параметрийн хамгийн бага утга нь хамгийн их утгатай тэнцүү харагдах хэсгүүдийг ашиглах гэх мэт.
    • Direct3D 8 ба 9 нь илүү нарийвчлалтай хянах боломжийг олгодог "бохир» ачаалагдсан бүтэцтэй хэсгүүд;
    • S3TC аргыг ашиглан шахсан 3D бүтцийг ачаалах үед шаардагдах хаягийн зайны хэмжээг багасгасан (бүтэн ачаалахын оронд бүтэцийг хэсэг хэсгээр нь ачаалдаг).
    • Интерфэйсийг хэрэгжүүлсэн ID3D11Олон урсгалтай олон урсгалтай програмуудын чухал хэсгүүдийг хамгаалах;
    • Хуучин DirectDraw програмуудад гэрэлтүүлгийн тооцоололтой холбоотой янз бүрийн сайжруулалт, засварууд хийгдсэн;
    • API дахь шэйдерүүдийн талаар мэдээлэл авах нэмэлт дуудлага хийсэн ShaderReflection;
    • wined3d одоо дэмждэг цэврүүтэх Шахсан нөөцийг боловсруулахад зориулсан CPU-д суурилсан;
    • Direct3D дээр хүлээн зөвшөөрөгдсөн график картуудын мэдээллийн санг өргөжүүлсэн;
    • HKEY_CURRENT_USER\Software\Wine\Direct3D бүртгэлийн шинэ түлхүүрүүдийг нэмсэн: “shader_backend” (шэйдертэй ажиллахад зориулсан арын хэсэг: GLSL-д зориулсан “glsl”, ARB орой/фрагментийн хувьд “arb” болон шэйдерийн дэмжлэгийг идэвхгүй болгох “none”), “strict_shader_math 0x1 - идэвхжүүлэх, 0x0 - Direct3D шэйдер хувиргалтыг идэвхгүй болгох). "UseGLSL" түлхүүрийг хуучирсан ("shader_backend" ашиглах ёстой);
  • D3DX
    • S3TC (S3 Texture Compression) 3D бүтэцтэй шахалтын механизмыг дэмжсэн;
    • Бүтэц дүүргэх, зураглах боломжгүй гадаргуу зэрэг үйлдлүүдийн зөв хэрэгжилтийг нэмсэн;
    • Бүтээлийн хүрээнд янз бүрийн сайжруулалт, засварууд хийгдсэн харааны эффектүүд;
  • Цөм (Windows цөмийн интерфэйс)
    • Kernel32-д ашигласан ихэнх функцууд руу шилжсэн
      KernelBase, Windows-ийн архитектурт гарсан өөрчлөлтүүд;

    • Ачаалахад ашигладаг лавлахууд дахь 32 ба 64 битийн DLL файлуудыг холих чадвар. Одоогийн битийн гүнд тохирохгүй номын сангуудыг үл тоомсорлохыг баталгаажуулдаг (32/64), хэрэв цаашид зам дагуу одоогийн битийн гүнд тохирсон номын санг олох боломжтой;
    • Төхөөрөмжийн драйверуудын хувьд цөмийн объектуудын эмуляцийг сайжруулсан;
    • Цөмийн түвшинд ажилладаг синхрончлолын объектууд, тухайлбал эргэлтийн түгжээ, хурдан мутекс болон нөөцөд хавсаргасан хувьсагч;
    • Аппликейшнүүдэд батерейны төлөв байдлын талаар зөв мэдээлэл өгөхийг баталгаажуулдаг;
  • Хэрэглэгчийн интерфейс ба ширээний интеграци
    • Жижиглэсэн цонхнууд нь Windows 3.1 загварын дүрс биш харин гарчгийн мөрийг ашиглан харагдана;
    • Шинэ товчлуурын загвар нэмсэн Хуваах товч (үйл ажиллагааны унадаг жагсаалт бүхий товчлуур) ба Тушаалын холбоосууд (дараагийн шат руу шилжихийн тулд харилцах цонхнуудын холбоосууд);
    • 'Татаж авах' ба 'Загвар' хавтсанд зориулж Unix систем дээрх харгалзах сангууд руу чиглэсэн симбол холбоосууд үүсгэгдсэн;
  • Оролтын төхөөрөмж
    • Эхлэх үед шаардлагатай Plug & Play төхөөрөмжийн драйверуудыг суулгаж, ачаална;
    • Мини-жойстик (малгай шилжүүлэгч), жолооны хүрд, хий, тоормосны дөрөө зэрэг тоглоомын хянагчдад зориулсан сайжруулсан дэмжлэг.
    • 2.2 хувилбараас өмнө Линуксийн цөмд ашиглагдаж байсан хуучин Linux joystick API-ийн дэмжлэгийг зогсоосон;
  • .NET
    • Mono хөдөлгүүрийг 4.9.4 хувилбар болгон шинэчилсэн бөгөөд одоо Windows Presentation Foundation (WPF) хүрээний хэсгүүдийг багтаасан болно;
    • Mono болон Gecko-тэй нэмэлтүүдийг нэг нийтлэг директорт суулгах, файлуудыг шинэ угтвар руу хуулахын оронд /usr/share/wine шатлалд байрлуулах боломжийг нэмсэн;
  • Сүлжээний онцлог
    • MSHTML номын санд хэрэглэгддэг Wine Gecko хөтчийн хөдөлгүүрийг 2.47.1 хувилбар болгон шинэчилсэн. Шинэ HTML API-уудын дэмжлэгийг хэрэгжүүлсэн;
    • MSHTML одоо SVG элементүүдийг дэмждэг;
    • Олон шинэ VBScript функцийг нэмсэн (жишээлбэл, алдаа болон онцгой тохиолдлуудыг зохицуулагч, Hour, Day, Monh, String, LBound, RegExp.Replace, РScriptTypeInfo_* болон ScriptTypeComp_Bind* функц гэх мэт);
    • VBScript болон JScript дахь кодын төлөвийг хадгалах боломжтой (скриптийн тогтвортой байдал);
    • HTTP үйлчилгээ (WinHTTP) болон холбогдох API (HTTPAPI) HTTP протоколыг ашиглан хүсэлт илгээж, хүлээн авдаг клиент болон серверийн програмуудын анхны хэрэгжилтийг нэмсэн;
    • DHCP-ээр дамжуулан HTTP прокси тохиргоог авах боломжийг хэрэгжүүлсэн;
    • Microsoft Passport үйлчилгээгээр дамжуулан баталгаажуулах хүсэлтийг дахин чиглүүлэх дэмжлэг нэмэгдсэн;
  • Криптограф
    • GnuTLS ашиглах үед зууван муруй криптограф түлхүүр (ECC)-д зориулсан дэмжлэгийг хэрэгжүүлсэн;
    • PFX форматтай файлуудаас түлхүүр, сертификат импортлох боломжийг нэмсэн;
    • PBKDF2 нууц үг дээр суурилсан түлхүүр үүсгэх схемийн дэмжлэгийг нэмсэн;
  • Текст ба фонтууд
    • DirectWrite API хэрэгжүүлэлт нь OpenType-тэй холбоотой функцүүдийн дэмжлэгийг нэмсэн глифийн байрлал, тэдгээр нь латин хэв маягийн хувьд анхдагчаар идэвхжсэн байдаг, үүнд kerning орно;
    • Төрөл бүрийн өгөгдлийн хүснэгтүүдийг ашиглахаасаа өмнө тэдгээрийн зөв эсэхийг шалгах замаар фонтын өгөгдлийг боловсруулах аюулгүй байдлыг сайжруулсан;
    • DirectWrite интерфейсийг хамгийн сүүлийн үеийн SDK-тэй нийцүүлсэн;
  • Дуу, видео
    • Дууны API-ийн шинэ хэрэгжилтийг санал болгов XAudio2, төслийн үндсэн дээр баригдсан FAudio. Wine-д FAudio-г ашиглах нь танд тоглоомын дууны өндөр чанарыг олж авах, дууны хэмжээг холих, дэвшилтэт дууны эффект зэрэг функцуудыг ашиглах боломжийг олгодог;
    • Хэвлэл мэдээллийн сангийн тогтолцоог хэрэгжүүлэхэд олон тооны шинэ дуудлага нэмэгдсэн бөгөөд үүнд суурилагдсан болон захиалгат асинхрон дараалал, Source Reader API, Media Session гэх мэт дэмжлэг үзүүлэв.
    • Видео бичлэгийн шүүлтүүрийг v4l2 API-ийн оронд v4l1 API ашиглах руу шилжүүлсэн нь дэмжигдсэн камеруудын хүрээг өргөжүүлсэн;
    • Суурилуулсан AVI, MPEG-I болон WAVE декодеруудыг устгасан бөгөөд үүний оронд GStreamer эсвэл QuickTime системийг ашиглаж байна;
    • VMR7 тохиргооны API-ийн дэд багцыг нэмсэн;
    • Дууны драйверуудад тусдаа сувгийн дууны хэмжээг тохируулах дэмжлэг нэмэгдсэн;
  • Олон улсын
    • Юникод хүснэгтүүдийг 12.1.0 хувилбар болгон шинэчилсэн;
    • Юникод хэвийн болгох дэмжлэгийг хэрэгжүүлсэн;
    • Газарзүйн бүсийн автомат суурилуулалтыг (HKEY_CURRENT_USER\Control Panel\International\Geo) одоогийн локал тохиргоонд үндэслэн хийсэн;
  • RPC/COM
    • Typelib-д нарийн төвөгтэй бүтэц, массивуудын дэмжлэгийг нэмсэн;
    • Windows Script ажиллах цагийн номын сангийн анхны хэрэгжилтийг нэмсэн;
    • ADO (Microsoft ActiveX Data Objects) номын сангийн анхны хэрэгжилтийг нэмсэн;
  • Суулгагчид
    • MSI суулгагчид засваруудыг (Нөхөн файлууд) хүргэх дэмжлэгийг хэрэгжүүлсэн;
    • WUSA (Windows Update Standalone Installer) хэрэгсэл нь .MSU форматаар шинэчлэлтүүдийг суулгах боломжтой болсон;
  • ARM платформ
    • ARM64 архитектурын хувьд ntdll-д стек задлах дэмжлэг нэмэгдсэн. Гадаад libunwind сангуудыг холбох дэмжлэг нэмэгдсэн;
    • ARM64 архитектурын хувьд объектын интерфэйсүүдэд үл үзэгдэх проксигийн дэмжлэгийг хэрэгжүүлсэн;
  • Хөгжлийн хэрэгслүүд / Winelib
    • Wine дээр ажиллаж байгаа програмуудыг алсаас дибаг хийхэд Visual Studio-ийн дибаглагчийг ашиглах боломжийг нэмсэн;
    • DBGENG (Debug Engine) номын сан хэсэгчлэн хэрэгжсэн;
    • Windows-д зориулж хөрвүүлсэн хоёртын файлууд нь libwine-ээс хамаарахаа больсон тул нэмэлт хамааралгүйгээр Windows дээр ажиллах боломжийг олгодог;
    • Толгой файлуудын замыг тодорхойлохын тулд Resource Compiler болон IDL Compiler-д '--sysroot' сонголтыг нэмсэн;
    • winegcc-д '—target', '—wine-objdir' сонголтуудыг нэмсэн
      '—winebuild' болон '-fuse-ld' нь хөндлөн эмхэтгэл хийх орчинг хялбаршуулдаг;

  • Суулгасан програмууд
    • Консолын кодчилолыг тохируулах CHCP хэрэгслийг хэрэгжүүлсэн;
    • MSI форматаар мэдээллийн санг удирдах MSIDB хэрэгслийг хэрэгжүүлсэн;
  • Гүйцэтгэлийг оновчтой болгох
    • Өндөр гүйцэтгэлтэй системийн цаг хэмжигч функцийг ашиглахын тулд янз бүрийн цаг хугацааны функцүүдийг шилжүүлж, олон тоглоомын рэндэрийн давталт дахь ачааллыг бууруулсан;
    • FS дээр Ext4 ашиглах чадварыг нэмсэн дэглэм том үсгийн мэдрэмжгүйгээр ажиллах;
    • LBS_NODATA горимд ажилладаг жагсаалтын дэлгэцийн харилцах цонхонд олон тооны элементүүдийг боловсруулах гүйцэтгэлийг оновчтой болгосон;
    • Futex хэл рүү орчуулсан Linux-д зориулсан SRW түгжээг (Slim Reader/Writer) илүү хурдан хэрэгжүүлэхийг нэмсэн;
  • Гадаад хамаарал
    • PE форматаар модулиудыг угсрахдаа MinGW-w64 хөндлөн хөрвүүлэгчийг ашигладаг;
    • XAudio2-г хэрэгжүүлэхэд FAudio номын сан шаардлагатай;
    • BSD систем дээрх файлын өөрчлөлтийг хянах
      Inotify номын санг ашигладаг;

    • ARM64 платформ дээрх үл хамаарах зүйлсийг зохицуулахын тулд Unwind номын сан шаардлагатай;
    • Video4Linux1-ийн оронд Video4Linux2 номын сан шаардлагатай болсон.

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

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