programmatūra · 5 min · 26.07.2026

Wine 11.14 ļauj FreeBSD palaist 32 bitu Windows programmas bez atsevišķām bibliotēkām

Wine 11.14 iznāca 24. jūlijā. Lielākā izmaiņa attiecas uz FreeBSD: 32 bitu Windows programmas tagad startē uz 64 bitu sistēmas bez atsevišķa 32 bitu Unix bibliotēku komplekta. Šo režīmu Wine sauc par WoW64. Linux būvējumos tas pieejams jau vairākus laidienus, FreeBSD to saņem pirmo reizi.

Laidiens ir trešais 11.x izstrādes sērijā. Wine turas pie divu nedēļu ritma, tāpēc 11.15 gaidāma ap 7. augustu. Kodu šajā ciklā iesūtīja 45 cilvēki.

WoW64 uz FreeBSD prasīja apiet AMD SYSRET

WoW64 nozīmē, ka 32 bitu Windows programma darbojas 64 bitu Wine procesa iekšienē. Izsaukumi uz Unix pusi notiek 64 bitos, tāpēc sistēmā nav jāuztur paralēls i386 bibliotēku slānis. Uz Linux tas jau nozīmēja, ka Steam vai vecu instalatoru palaišanai vairs nevajag multilib pakotnes. FreeBSD lietotājiem līdz šim palika divas iespējas: vai nu i386 saderības slānis, vai virtuālā mašīna.

Alexander Shaikhulin pievienoja jaunu wow64 režīmu ntdll modulī. Ar to vien nepietika, jo AMD procesori, atgriežoties no kodola, citādi apstrādā segmenta deskriptorus.

Vajadzēja jaunu wow64 režīmu ntdll modulī un dažus kodola līmeņa risinājumus AMD SYSRET deskriptoru uzvedībai.

Tā šo darbu apraksta laidiena piezīmes, ko citē Linux Compatible. Praktiski tas atrisina gadījumu, kad 32 bitu programma atgriežas no sistēmas izsaukuma ar deskriptoru, kādu tā negaida.

Laiks šim darbam ir loģisks. FreeBSD 15, kas iznāca pērnā gada decembrī, pilnībā izmeta i386 kā aparatūras platformu. 32 bitu programmu izpilde uz 64 bitu kodola paliek caur COMPAT_FREEBSD32 un lib32. Projekts savā paziņojumā apņēmās to uzturēt vismaz visu stable/16 zara dzīves laiku. Bet viss pārējais 32 bitu koks, tostarp ports un pakotnes, ir aizvērts. Jo mazāk Wine atkarīgs no 32 bitu Unix bibliotēkām, jo mazāk tam ir ko zaudēt, kad tās pazūd.

DirectSound pieņem 7.1 avotus

Otrā izmaiņa skar skaņu. Wine DirectSound implementācija līdz šim pārveidoja kanālu formātus līdz 5.1. Arkadiusz Hiler, Lakulish Antani un Anton Baskanov pārrakstīja miksera kodu tā, ka tas prot mono, stereo, quad, 5.1 un 7.1 formātus vienā ceļā.

Tas skar vecākus simulatorus un spēles, kuras raksta skaņu tieši DirectSound buferī, nevis caur WASAPI. Uz astoņu kanālu iekārtas tādas programmas agrāk vai nu nepalaida skaņu, vai to samiksēja uz mazāku kanālu skaitu.

AES-GMAC aizver TLS 1.3 caurumu Wine kriptogrāfijā

Hans Leidekker pievienoja AES-GMAC algoritmu bcrypt saskarnē. Windows programmas, kas TLS savienojumu veido caur sistēmas kriptogrāfijas API, bez šī algoritma nevarēja pabeigt TLS 1.3 rokasspiedienu. Tas attiecas uz jebkuru programmu, kas Wine iekšienē runā ar mūsdienu serveri.

Šī kļūda ir tipiska Wine problēma: programmas, kas nes savu kriptogrāfijas bibliotēku līdzi, strādā jau sen. Tās, kas uzticas Windows sistēmas API, apstājas pie pirmā trūkstošā algoritma. Simptoms lietotājam ir vienkārši atteikts savienojums bez paskaidrojuma.

Pārējais no šī laidiena saraksta:

  • msxml3 saņēma apjomīgu XML un DOM darba pārstrādi, tostarp DTD notāciju un entītiju mezglu atbalstu.
  • NtAlpcCreatePort() tagad ir pilnībā implementēta. Šo funkciju Windows lieto starpprocesu saziņai.
  • Start izvēlnē explorer čaulā parādās programmu ikonas.

21 labojums: Word 2016, Adobe Reader, Falcon BMS

Laidiens aizver 21 kļūdas ziņojumu. Spēļu pusē tie ir Heroes of the Storm avārija ar Direct3D 11, tukši video ieskati Age of Empires un Age of Empires II, Hedgewars avārija pret datora pretinieku, Falcon BMS 4.37 avārija startējot un šeidera kompilēšanas kļūda Marble Marcher Community Edition.

Lietojumprogrammu pusē: Word 2016 iekārās, atverot noformējuma stilus, Adobe Reader 9.0 un 11 avarēja, bet TaxAct 2025 zīmēja melnu taisnstūri tur, kur bija paredzēts saturs. Pilnu sarakstu ar kļūdu numuriem publicē Linuxiac.

Staging izmet septiņus ielāpus, jo tos pārņēma augšupstraume

Dienu vēlāk, 25. jūlijā, iznāca Wine Staging 11.14. Atšķirība pret augšupstraumi šoreiz ir aptuveni septiņi komiti 25 failos: ap 8000 pievienotu un 6900 izņemtu rindu.

Galvenais tur ir vkd3d-latest ielāpu kopa. Tā pievieno descriptor heap atbalstu World of Warcraft Classic un Retail versijām, atsevišķas heap īpatnības Classic klientam, iespēju uzspiest Shader Model 6.9 un apiet feedback loop problēmu spēlē Sea of Thieves: Rise of the Attica.

Vienlaikus Staging pilnībā izmeta user32-rawinput-mouse kopu: septiņus ielāpus, 896 rindas. Iemesls ir augšupstraumes komits 08f7b746b00c, kas neapstrādātos peles ievades ziņojumus tagad apstrādā pareizi. Kopumā Staging joprojām uztur vairāk nekā 70 atsevišķas ielāpu kopas un vairāk nekā 500 ielāpu failus, par to rūpējas brīvprātīgie. Detaļas ir Staging laidiena aprakstā.

Šī sērija ir izstrādes, nevis stabilā. Pirmkods pieejams Wine GitLab lapā, bet binārās pakotnes distributīviem nāk pa parastajiem kanāliem. Stabilā Wine 12.0 plānota 2027. gada janvārī.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie