Phát hành ổn định Wine 9.0

Sau một năm phát triển và 26 phiên bản thử nghiệm, một bản phát hành ổn định của triển khai mở Win32 API - Wine 9.0, bao gồm hơn 7000 thay đổi, đã được trình làng. Những thành tựu quan trọng trong phiên bản mới bao gồm việc triển khai kiến ​​trúc WoW64 để chạy các chương trình 32 bit trong môi trường 64 bit, tích hợp trình điều khiển để hỗ trợ Wayland, hỗ trợ kiến ​​trúc ARM64, triển khai API DirectMusic và hỗ trợ thẻ thông minh.

Wine đã xác nhận hoạt động đầy đủ của 5336 chương trình (một năm trước 5266, hai năm trước 5156, ba năm trước 5049) cho Windows, 4397 chương trình khác (một năm trước 4370, hai năm trước 4312, ba năm trước 4227) hoạt động hoàn hảo với cài đặt bổ sung và DLL bên ngoài. Các chương trình 3943 (một năm trước 3888, hai năm trước 3813, ba năm trước 3703) có những vấn đề nhỏ trong hoạt động nhưng không ảnh hưởng đến việc sử dụng các chức năng chính của ứng dụng.

Những cải tiến chính trong Wine 9.0:

  • Đã thêm trình điều khiển winewayland.drv, cho phép bạn sử dụng Wine trong các môi trường dựa trên giao thức Wayland mà không cần sử dụng các thành phần XWayland và X11. Sự phát triển này nhằm mục đích cung cấp một môi trường Wayland thuần túy với sự hỗ trợ chạy các ứng dụng Windows không yêu cầu cài đặt các gói liên quan đến X11, cho phép trò chơi có hiệu suất và khả năng phản hồi cao hơn bằng cách loại bỏ các lớp không cần thiết. Việc sử dụng môi trường Wayland thuần túy cho Wine cũng giúp loại bỏ các vấn đề bảo mật vốn có trong X11 (ví dụ: các trò chơi X11 không đáng tin cậy có thể theo dõi các ứng dụng khác vì giao thức X11 cho phép truy cập vào tất cả các sự kiện đầu vào và thay thế thao tác nhấn phím giả).

    Trình điều khiển được đánh dấu là thử nghiệm và đang được phát triển, tuy nhiên, nó đã hỗ trợ nhiều tính năng, chẳng hạn như quản lý cửa sổ, làm việc với nhiều màn hình, hỗ trợ mở rộng quy mô đầu ra trên màn hình có mật độ điểm ảnh cao (DPI cao), hoạt động với tọa độ tương đối khi theo dõi chuyển động của chuột và hỗ trợ API đồ họa Vulkan. Theo mặc định, trình điều khiển không hoạt động và để kích hoạt nó, bạn nên thêm “wayland” vào tham số đăng ký “HKCU\Software\Wine\Drivers” và đảm bảo rằng biến môi trường DISPLAY không được đặt: wine reg.exe add HKCU\ \Software\\Wine\\Drivers /v Đồ họa /d x11,wayland

  • Tất cả các mô-đun đã được chuyển đổi sang giao diện cuộc gọi hệ thống NT, thay vì thực hiện cuộc gọi trực tiếp giữa các lớp PE và Unix, đánh dấu sự hoàn thành sau nhiều năm làm việc để chuyển đổi tất cả các DLL sang sử dụng định dạng tệp thực thi PE (Portable Executable).
  • Sự phát triển của lớp WoW64 (Windows-on-Windows 64-bit), cho phép chạy các ứng dụng Windows 32-bit trên hệ thống Unix 64-bit, vẫn tiếp tục. Tất cả các mô-đun truy cập thư viện Unix đều sử dụng lệnh gọi hệ thống WoW64 để cho phép các mô-đun có định dạng PE 32-bit truy cập vào thư viện Unix 64-bit.

    Cải thiện chế độ khởi chạy WoW64 mới, chạy mã 32 bit bên trong quy trình 64 bit (ở chế độ WoW64 cũ, các ứng dụng 32 bit chạy trong quy trình Unix 32 bit). Đã thêm hỗ trợ sử dụng chế độ WoW64 mới trên nền tảng macOS. Do chế độ WoW64 mới có một số thiếu sót, chẳng hạn như thiếu hỗ trợ chế độ 16-bit và giảm hiệu suất OpenGL do không hỗ trợ tiện ích mở rộng ARB_buffer_storage, nên chế độ này chưa được bật theo mặc định và yêu cầu xây dựng với tùy chọn “—enable- Archs=i386,x86_64 " trong tập lệnh định cấu hình.

  • Đã thêm khả năng chạy các tệp thực thi Windows hiện có trên hệ thống kiến ​​trúc ARM64. Khả năng xây dựng Wine cho ARM64EC ABI (Tương thích mô phỏng ARM64) và hỗ trợ tải các mô-đun ARM64EC đã được triển khai, được sử dụng để đơn giản hóa việc chuyển các ứng dụng ban đầu được viết cho kiến ​​trúc x64_86 sang hệ thống ARM64 bằng cách cung cấp khả năng thực thi các mô-đun riêng lẻ với x64_86 mã trong môi trường ARM64 bằng trình mô phỏng. Đã thêm hỗ trợ cho định dạng tệp ARM64X PE, cho phép tải một tệp thực thi duy nhất trong các quy trình x64/Arm64EC và ARM64. Giao diện mô phỏng hệ thống x32 86 bit đã được triển khai nhưng thư viện với trình mô phỏng vẫn chưa được đưa vào gói Wine chính (bạn có thể sử dụng trình mô phỏng FEX bên ngoài để chạy mã x86 trong môi trường ARM64).
  • Hệ thống con đồ họa
    • Trình điều khiển PostScript đã được thiết kế lại để hỗ trợ các tệp đệm có định dạng Windows lưu trữ dữ liệu về lệnh in. Các cuộc gọi trực tiếp đến trình điều khiển từ môi trường Unix bị loại trừ.
    • Hỗ trợ chế độ tối đã được thêm vào các chủ đề WinRT. Một cài đặt đã được thêm vào WineCfg để bật thiết kế giao diện tối.
    • Trình điều khiển cho API đồ họa Vulkan đã bổ sung hỗ trợ cho thông số kỹ thuật Vulkan 1.3.272 (8.0 được hỗ trợ trong Wine 1.3.237).
    • Các chức năng của thư viện GdiPlus đã được tối ưu hóa, cho phép tăng hiệu suất đồ họa.
  • Direct3D
    • Quá trình phân tích cú pháp luồng lệnh đa luồng bị tạm dừng khi không có lệnh kết xuất nào được xử lý, điều này cho phép giảm mức tiêu thụ năng lượng xuống mức xử lý đơn luồng khi thực thi các chương trình không chiếm toàn bộ băng thông luồng lệnh.
    • Direct3D 10 bao gồm hỗ trợ cho các hiệu ứng bổ sung.
    • Thực hiện tối ưu hóa hiệu suất cho mã WineD3D và chương trình phụ trợ bằng API đồ họa Vulkan.
    • Mã hiển thị dựa trên API Vulkan hiện kiểm tra những khả năng mà thiết bị hỗ trợ và cho ứng dụng biết mức độ chức năng Direct3D khả dụng.
    • Các hàm D3DXFillTextureTX và D3DXFillCubeTextureTX đã được triển khai.
    • Phần phụ trợ trình đổ bóng OpenGL ARB cổ điển đã thêm hỗ trợ để xác định bóng bằng cách sử dụng tiện ích mở rộng ARB_fragment_program_shadow.
    • D3DXLoadMeshHierarchyFromX và các chức năng tương tự đã thêm hỗ trợ tải dữ liệu người dùng bằng giao diện ID3DXLoadUserData.
  • Âm thanh và video
    • Triển khai ban đầu của API DirectMusic đã được đề xuất. Đã thêm hỗ trợ cho các bộ sưu tập, nhạc cụ và mẫu âm thanh ở định dạng SoundFont. Đã thêm hỗ trợ cho hiệu ứng Doppler. Các thử nghiệm đã được triển khai để xác minh việc triển khai chính xác khi vận hành trình sắp xếp chuỗi dmime và trình tổng hợp MIDI dmsynth.
    • Thư viện FluidSynth được tích hợp vào API DirectMusic để sử dụng.
    • Hỗ trợ tải phông chữ âm thanh (SoundFont - định dạng tổng hợp dựa trên mẫu được sử dụng để phát tệp MIDI) ở định dạng DLS1 và DLS2, cũng như ở định dạng SF2 được sử dụng trong Linux, đã được triển khai.
    • Đã thêm khả năng phát nội dung MIDI bằng thư viện dmsynth, sử dụng bộ tổng hợp phần mềm FluidSynth và API DirectSound để phát âm thanh.
    • Đã thêm bộ giải mã cho video ở định dạng codec video Indeo IV50.
  • Trực tiếp
    • Thành phần DMO (DirectX Media Object) với bộ giải mã định dạng WMV (Windows Media Video) đã được triển khai.
    • Đã thêm bộ lọc thu âm thanh (DirectShow Audio Capture Filter).
    • Ngoài luồng âm thanh, Bộ tách luồng MPEG‑1 (Bộ tách luồng DirectShow MPEG‑1) hiện hỗ trợ luồng video và luồng dịch vụ.
    • Bộ lọc để giải mã video ở định dạng MPEG‑1 (Bộ giải mã video DirectShow MPEG‑1) đã được triển khai.
  • Thiết bị đầu vào
    • DirectInput hỗ trợ ánh xạ hành động, cho phép bạn liên kết các nút trên bộ điều khiển trò chơi với các hành động cụ thể trong trò chơi.
  • Tích hợp máy tính để bàn
    • Các liên kết đã được xuất sang môi trường người dùng chính, cho phép các ứng dụng chạy trong Wine được gọi là trình xử lý giao thức khi mở URL (ví dụ: khởi chạy Spotify.exe khi mở các liên kết như “spotify:user:spotify:playlist:848218482355482821”).
    • Đã triển khai trích xuất dữ liệu EDID (Dữ liệu nhận dạng hiển thị mở rộng) với thông tin về các thông số của màn hình được kết nối, chẳng hạn như tên và kiểu máy của thiết bị.
    • Có thể đóng cửa sổ máy tính để bàn được triển khai ở chế độ toàn màn hình bằng cách sử dụng nút “Thoát màn hình” trong menu “Bắt đầu”.
  • Quốc tế hóa
    • Hỗ trợ mở rộng cho IME (Trình chỉnh sửa phương thức nhập). Công việc đã được thực hiện để đảm bảo khả năng tương thích với việc triển khai IME Windows gốc và cải thiện khả năng tích hợp với Linux IME
    • Việc tạo cơ sở dữ liệu ngôn ngữ ở định dạng locale.nls từ cơ sở dữ liệu Unicode CLDR (Unicode Common Locale Data Repository) phiên bản 44 đã được cung cấp. Hỗ trợ cho các ngôn ngữ bổ sung bew-ID, blo-BJ, csw-CA, ie-EE, mic-CA , prg-PL đã được thêm vào , skr-PK, tyv-RU, vmw-MZ, xnr-IN và za-CN.
    • Giao diện đã được dịch sang tiếng Georgia. Bản dịch đầy đủ được cung cấp cho 16 ngôn ngữ và bản dịch một phần cho 31 ngôn ngữ.
    • Bảng ký tự Unicode đã được cập nhật lên phiên bản chuẩn 15.1.0. Cơ sở dữ liệu múi giờ đã được cập nhật.
  • Hạt nhân (Giao diện hạt nhân Windows)
    • Phiên bản mặc định của Windows được phát hành là Windows 10.
    • Đối với các tệp thực thi ở định dạng PE, hỗ trợ ngẫu nhiên không gian địa chỉ (ASLR) được triển khai, nhưng địa chỉ để tải mã vào bộ nhớ vẫn chưa được ngẫu nhiên hóa hoàn toàn.
    • Hỗ trợ cho vùng heap phân mảnh yếu (LFH, Heap phân mảnh thấp) đã được triển khai, giúp tăng hiệu suất của các hoạt động phân bổ bộ nhớ.
    • Hỗ trợ đặt trước bộ nhớ (giữ chỗ) đã được thêm vào cơ chế cấp phát bộ nhớ ảo, cho phép ứng dụng dự trữ một vùng bộ nhớ ảo cụ thể để sử dụng trong tương lai.
    • Trình tải 64 bit (trình tải và trình tải trước) của các tệp thực thi và thư viện được biên dịch theo định dạng PIE (Các tệp thực thi độc lập với vị trí) để giải phóng một phần không gian địa chỉ 32 bit.
    • Việc giải phóng ngăn xếp chính xác được cung cấp cho các cuộc gọi hệ thống NT và cuộc gọi lại của người dùng.
  • Tính năng kết nối mạng
    • Công cụ MSHTML hỗ trợ cơ chế thu gom rác “Cycle Collection”.
    • MSHTML đã thêm hỗ trợ để xử lý đồng bộ các yêu cầu XMLHttpRequest.
    • jscript.dll bổ sung hỗ trợ cho đối tượng WeakMap để hoạt động với tập hợp các cặp khóa/giá trị trong đó khóa là một đối tượng có thể có giá trị tùy ý gắn liền với nó. Đã triển khai các phương thức WeakMap.get(), WeakMap.delete(), WeakMap.clear() và WeakMap.has().
    • Công cụ trình duyệt Gecko đã được cập nhật lên phiên bản 2.47.4.
    • Hỗ trợ thông báo về những thay đổi về trạng thái của giao diện mạng đã được triển khai.
  • Mật mã và bảo mật
    • Hỗ trợ thẻ thông minh đã được thêm vào thư viện Winscard.dll, được triển khai thông qua thư viện hệ thống PCSClite.
    • BCrypt đã thêm hỗ trợ cho giao thức trao đổi khóa Diffie-Hellman.
    • Gói đàm phán đã được triển khai, cung cấp một lớp để sử dụng giao diện SSPI (Giao diện nhà cung cấp hỗ trợ bảo mật) để truy cập các nhà cung cấp SSP (Nhà cung cấp hỗ trợ bảo mật).
  • Ứng dụng nhúng
    • Trình gỡ lỗi Wine (winedbg) sử dụng thư viện Zydis để phân tách các hướng dẫn máy X86.
    • Khả năng hiển thị các phiên bản Windows cũ hơn (tiền XP) trên nền tảng 64 bit đã được thêm vào giao diện WineCfg, cho phép bạn chạy các ứng dụng cũ bằng chế độ WoW64.
    • Tất cả các ứng dụng đồ họa tích hợp hiện hiển thị thông tin lỗi trong một hộp thoại riêng, thay vì hiển thị chúng trong bảng điều khiển.
    • Chương trình systeminfo cung cấp khả năng hiển thị thông tin từ cơ sở dữ liệu WMI (Công cụ quản lý Windows).
    • Đã thêm ứng dụng klist để hiển thị vé Kerberos.
    • Ứng dụng taskkill triển khai khả năng chấm dứt cưỡng bức các tiến trình con.
    • Đã thêm tùy chọn "/machine" vào tiện ích khởi động để chọn kiến ​​trúc được sử dụng khi chạy các tệp thực thi kết hợp hỗ trợ x86 và ARM.
    • Hầu hết các chức năng của chương trình danh sách nhiệm vụ đã được triển khai.
    • Đã thêm cách triển khai cơ bản của ứng dụng seektr.
  • Công cụ phát triển
    • Tiện ích WineDump cung cấp khả năng hiển thị nội dung của tệp đăng ký Windows (định dạng REGF), cũng như hiển thị dữ liệu cho tất cả kiến ​​​​trúc (x86/ARM64) được hỗ trợ trong tệp PE lai.
    • Trình biên dịch IDL đã thêm hỗ trợ cho các thuộc tính "có thể kết hợp", "default_overload", "không dùng nữa" và "được bảo vệ".
    • Đã xóa libwine.so, vốn không được dùng nữa trong Wine 6.0 và từ lâu đã không còn được sử dụng trong Wine. Các chương trình ở định dạng ELF được tích hợp trong các phiên bản Wine cũ hơn (5.0 trở lên) với libwine.so yêu cầu phải xây dựng lại để chạy trong Wine 9.0.
  • Thư viện tích hợp và phụ thuộc bên ngoài
    • Các thư viện FluidSynth 2.3.3, Musl 1.2.3 (chỉ các hàm toán học) và Zydis 4.0.0 được tích hợp vào gói.
    • Các thành phần Vkd3d 1.10, Faudio 23.12, OpenLDAP 2.5.16, LCMS2 2.15, LibMPG123 1.32.2, LibPng 1.6.40, LibTiff 4.6.0, LibXml2 2.11.5, LibXslt 1.1.38 và Zlib 1.3 đã được cập nhật lên phiên bản mới. Công cụ Wine Mono với việc triển khai nền tảng .NET đã được cập nhật để phát hành 8.1.0.
    • Trình điều khiển winewayland.drv sử dụng thư viện máy khách Wayland làm phần phụ thuộc bên ngoài, cũng như thư viện xkbcommon và xkbregistry.
    • Để hỗ trợ thẻ thông minh, thư viện bên ngoài PCSClite (trong macOS - PCSC) được sử dụng.
    • Việc xây dựng tệp PE trên nền tảng không phải i386 hiện yêu cầu trình biên dịch chéo có hỗ trợ chỉ thị ".seh" để xử lý các ngoại lệ.

Nguồn: opennet.ru

Thêm một lời nhận xét