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

Sau một năm phát triển và 30 phiên bản thử nghiệm, một bản phát hành ổn định của triển khai mở API Win32 đã được trình làng - Wine 7.0, kết hợp hơn 9100 thay đổi. Thành tựu chính của phiên bản mới bao gồm việc dịch hầu hết các mô-đun Wine sang định dạng PE, hỗ trợ các chủ đề, mở rộng ngăn xếp cho cần điều khiển và thiết bị đầu vào có giao diện HID cũng như triển khai kiến ​​trúc WoW64 để chạy các chương trình 32-bit trong một Môi trường 64-bit.

Wine đã xác nhận hoạt động đầy đủ của 5156 (một năm trước là 5049) chương trình dành cho Windows, 4312 (một năm trước là 4227) chương trình khác hoạt động hoàn hảo với các cài đặt bổ sung và các tệp DLL bên ngoài. 3813 chương trình (3703 năm trước) gặp sự cố vận hành nhỏ 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 7.0:

  • Mô-đun ở định dạng PE
    • Hầu hết tất cả các DLL đã được chuyển đổi để sử dụng định dạng tệp thực thi PE (Portable Executable, được sử dụng trên Windows) thay vì ELF. Việc sử dụng PE giải quyết các vấn đề liên quan đến việc hỗ trợ các sơ đồ bảo vệ bản sao khác nhau nhằm xác minh danh tính của các mô-đun hệ thống trên đĩa và trong bộ nhớ.
    • Khả năng tương tác các mô-đun PE với các thư viện Unix bằng cách sử dụng lệnh gọi hệ thống hạt nhân NT tiêu chuẩn đã được triển khai, cho phép bạn ẩn quyền truy cập vào mã Unix khỏi trình gỡ lỗi Windows và giám sát đăng ký luồng.
    • Các tệp DLL tích hợp hiện chỉ được tải nếu có tệp PE tương ứng trên đĩa, bất kể đó là thư viện thực hay sơ khai. Thay đổi này cho phép ứng dụng luôn thấy liên kết chính xác với các tệp PE. Để tắt hành vi này, bạn có thể sử dụng biến môi trường WINEBOOTSTRAPMODE.
  • WoW64
    • Kiến trúc WoW64 (Windows-on-Windows 64-bit) đã được triển khai, cho phép bạn chạy các ứng dụng Windows 32-bit trong quy trình Unix 64-bit. Hỗ trợ được triển khai thông qua kết nối của lớp chuyển các lệnh gọi hệ thống NT 32 bit thành các lệnh gọi 64 bit tới NTDLL.
    • Các lớp WoW64 được chuẩn bị cho hầu hết các thư viện Unix và cho phép các mô-đun PE 32-bit truy cập vào các thư viện Unix 64-bit. Khi tất cả các mô-đun đã được chuyển đổi sang định dạng PE, sẽ có thể chạy các ứng dụng Windows 32-bit mà không cần cài đặt thư viện Unix 32-bit.
  • chủ đề
    • Hỗ trợ chủ đề đã được thực hiện. Bao gồm các chủ đề thiết kế “Light”, “Blue” và “Classic Blue”, có thể được chọn thông qua bộ cấu hình WineCfg.
    • Đã thêm khả năng tùy chỉnh giao diện của tất cả các điều khiển giao diện thông qua các chủ đề. Giao diện của các phần tử được cập nhật tự động sau khi thay đổi chủ đề thiết kế.
    • Hỗ trợ chủ đề đã được thêm vào tất cả các ứng dụng Wine tích hợp. Các ứng dụng đã được điều chỉnh cho phù hợp với màn hình có mật độ điểm ảnh cao (DPI cao).
  • Hệ thống con đồ họa
    • Một thư viện Win32u mới đã được thêm vào, bao gồm các phần của thư viện GDI32 và USER32 liên quan đến xử lý đồ họa và quản lý cửa sổ ở cấp kernel. Trong tương lai, công việc chuyển các thành phần trình điều khiển như winex32.drv và winemac.drv sang Win11u sẽ bắt đầu.
    • Trình điều khiển Vulkan hỗ trợ đặc tả API đồ họa Vulkan 1.2.201.
    • Cung cấp hỗ trợ để xuất các đối tượng hình học được tô bóng thông qua API Direct2D, với khả năng kiểm tra xem một cú nhấp chuột có trúng hay không (hit-test).
    • API Direct2D cung cấp hỗ trợ ban đầu cho các hiệu ứng hình ảnh được áp dụng bằng giao diện ID2D1Effect.
    • API Direct2D đã bổ sung hỗ trợ cho giao diện ID2D1MultiThread, được sử dụng để tổ chức quyền truy cập độc quyền vào tài nguyên trong các ứng dụng đa luồng.
    • Bộ thư viện WindowsCodecs cung cấp hỗ trợ giải mã hình ảnh ở định dạng WMP (Windows Media Photo) và mã hóa hình ảnh ở định dạng DDS (DirectDraw Surface). Chúng tôi không còn hỗ trợ mã hóa hình ảnh ở định dạng ICNS (dành cho macOS), định dạng không được hỗ trợ trên Windows.
  • Direct3D
    • Công cụ kết xuất mới đã được cải tiến đáng kể, chuyển các lệnh gọi Direct3D sang API đồ họa Vulkan. Trong hầu hết các trường hợp, mức hỗ trợ cho Direct3D 10 và 11 trong công cụ dựa trên Vulkan đã được đưa ngang bằng với công cụ dựa trên OpenGL cũ hơn. Để bật công cụ kết xuất Vulkan, hãy đặt biến đăng ký Direct3D "renderer" thành "vulkan".
    • Nhiều tính năng của Direct3D 10 và 11 được triển khai, bao gồm Bối cảnh trì hoãn, đối tượng trạng thái hoạt động trong ngữ cảnh thiết bị, bù đắp liên tục trong bộ đệm, xóa chế độ xem kết cấu không theo thứ tự, sao chép dữ liệu giữa các tài nguyên ở định dạng không gõ chữ (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS), v.v. .
    • Đã thêm hỗ trợ cho cấu hình nhiều màn hình, cho phép bạn chọn một màn hình để hiển thị ứng dụng Direct3D ở chế độ toàn màn hình.
    • API DXGI cung cấp tính năng hiệu chỉnh gamma màn hình, tính năng này có thể được các ứng dụng dựa trên Direct3D 10 và 11 sử dụng để thay đổi độ sáng màn hình. Đã bật truy xuất bộ đếm bộ đệm khung ảo (SwapChain).
    • Direct3D 12 bổ sung hỗ trợ cho chữ ký gốc phiên bản 1.1.
    • Trong mã kết xuất thông qua API Vulkan, hiệu quả xử lý truy vấn đã được cải thiện khi hệ thống hỗ trợ tiện ích mở rộng VK_EXT_host_query_reset.
    • Đã thêm khả năng xuất bộ đệm khung ảo (SwapChain) qua GDI nếu OpenGL hoặc Vulkan không thể được sử dụng để hiển thị, chẳng hạn như khi xuất ra cửa sổ từ các quy trình khác nhau, chẳng hạn như trong các chương trình dựa trên khung CEF (Chromium Embedded Framework).
    • Khi sử dụng phần phụ trợ của trình đổ bóng GLSL, công cụ sửa đổi "chính xác" được đảm bảo cho các hướng dẫn về trình đổ bóng.
    • API DirectDraw bổ sung hỗ trợ hiển thị 3D vào bộ nhớ hệ thống bằng cách sử dụng các thiết bị phần mềm như "RGB", "MMX" và "Ramp".
    • Các card AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 và NVIDIA GT 630 đã được thêm vào cơ sở dữ liệu card đồ họa Direct1030D.
    • Khóa “UseGLSL” đã bị xóa khỏi sổ đăng ký HKEY_CURRENT_USER\Software\Wine\Direct3D, thay vào đó, bắt đầu với Wine 5.0, bạn cần sử dụng “shader_backend”.
    • Để hỗ trợ Direct3D 12, bây giờ bạn cần có ít nhất phiên bản 3 của thư viện vkd1.2d.
  • D3DX
    • Việc triển khai D3DX 10 đã cải thiện khả năng hỗ trợ cho khung hiệu ứng hình ảnh và hỗ trợ thêm cho định dạng hình ảnh Windows Media Photo (JPEG XR)
    • Đã thêm các chức năng tạo kết cấu được cung cấp trong D3DX10, chẳng hạn như D3DX10CreateTextureFromMemory().
    • Giao diện phần mềm ID3DX10Sprite và ID3DX10Font đã được triển khai một phần.
  • Âm thanh và video
    • Các tiện ích bổ sung GStreamer dành cho DirectShow và khung Media Foundation được kết hợp thành một chương trình phụ trợ WineGStreamer chung, giúp đơn giản hóa việc phát triển các API giải mã nội dung mới.
    • Dựa trên phần phụ trợ WineGStreamer, các đối tượng Windows Media được triển khai để đọc đồng bộ và không đồng bộ.
    • Việc triển khai khung Media Foundation đã được cải tiến hơn nữa, hỗ trợ cho chức năng IMFPMediaPlayer và bộ cấp phát mẫu đã được thêm vào, đồng thời cải thiện hỗ trợ cho bộ đệm kết xuất EVR và SAR.
    • Thư viện wineqtdecode, cung cấp bộ giải mã cho định dạng QuickTime, đã bị xóa (tất cả các codec hiện đều sử dụng GStreamer).
  • Thiết bị đầu vào
    • Ngăn xếp dành cho các thiết bị đầu vào hỗ trợ giao thức HID (Thiết bị giao diện con người) đã được cải thiện đáng kể, cung cấp các khả năng như phân tích bộ mô tả HID, xử lý thông báo HID và cung cấp trình điều khiển HID mini.
    • Trong phần phụ trợ của trình điều khiển winebus.sys, việc dịch mô tả thiết bị thành thông báo HID đã được cải thiện.
    • Đã thêm phần phụ trợ DirectInput mới cho cần điều khiển hỗ trợ giao thức HID. Khả năng sử dụng hiệu ứng phản hồi trong cần điều khiển đã được triển khai. Bảng điều khiển cần điều khiển được cải tiến. Tối ưu hóa tương tác với các thiết bị tương thích XInput. Trong WinMM, hỗ trợ cần điều khiển đã được chuyển sang DInput, thay vì sử dụng chương trình phụ trợ evdev trên Linux và IOHID trên macOS IOHID. Trình điều khiển cần điều khiển cũ winejoystick.drv đã bị xóa.
    • Các thử nghiệm mới đã được thêm vào mô-đun DInput, dựa trên việc sử dụng thiết bị HID ảo và không yêu cầu thiết bị vật lý.
  • Văn bản và phông chữ
    • Đã thêm đối tượng Bộ phông chữ vào DirectWrite.
    • RichEdit triển khai chính xác giao diện TextHost.
  • Hạt nhân (Giao diện hạt nhân Windows)
    • Khi chạy một tệp thực thi không xác định (chẳng hạn như 'wine foo.msi') trong Wine, start.exe hiện được gọi, lệnh này sẽ gọi các trình xử lý được liên kết với loại tệp.
    • Đã thêm hỗ trợ cho cơ chế đồng bộ hóa NtAlertThreadByThreadId và NtWaitForAlertByThreadId, tương tự như futexes trong Linux.
    • Đã thêm hỗ trợ cho các đối tượng gỡ lỗi NT được sử dụng để gỡ lỗi các chức năng hạt nhân.
    • Đã thêm hỗ trợ cho các khóa đăng ký động để lưu dữ liệu hiệu suất.
  • Thời gian chạy C
    • Thời gian chạy C thực hiện một tập hợp đầy đủ các hàm toán học, chủ yếu được chuyển từ thư viện Musl.
    • Tất cả các nền tảng CPU đều cung cấp sự hỗ trợ chính xác cho các chức năng dấu phẩy động.
  • Tính năng kết nối mạng
    • Chế độ tương thích được cải thiện cho Internet Explorer 11 (IE11), hiện được sử dụng theo mặc định để xử lý tài liệu HTML.
    • Thư viện mshtml triển khai chế độ JavaScript ES6 (ECMAScript 2015), cung cấp hỗ trợ cho các tính năng như biểu thức let và đối tượng Map.
    • Việc cài đặt các gói MSI có bổ sung cho công cụ Gecko vào thư mục làm việc của Wine hiện được thực hiện khi cần thiết chứ không phải trong quá trình cập nhật Wine.
    • Đã thêm hỗ trợ cho giao thức DTLS.
    • Dịch vụ NSI (Network Store Interface) đã được triển khai, lưu trữ và truyền tải thông tin về định tuyến và giao diện mạng trên máy tính tới các dịch vụ khác.
    • Các trình xử lý API WinSock như setsockopt và getsockopt đã được chuyển sang NTDLL và trình điều khiển afd.sys để phù hợp với kiến ​​trúc Windows.
    • Các tệp cơ sở dữ liệu mạng riêng của Wine, chẳng hạn như /etc/protocols và /etc/networks, hiện được cài đặt trong thư mục làm việc của Wine, thay vì truy cập vào cơ sở dữ liệu Unix tương tự.
  • Nền tảng thay thế
    • Đã thêm hỗ trợ cho thiết bị Apple dựa trên chip ARM M1 (Apple Silicon).
    • Hỗ trợ các tính năng BCrypt và Secur32 trên macOS hiện yêu cầu cài đặt thư viện GnuTLS.
    • Các tệp thực thi 32-bit dành cho nền tảng ARM hiện được xây dựng ở chế độ Thumb-2, tương tự như Windows. Trình tải trước được sử dụng để tải các tệp như vậy.
    • Đối với nền tảng ARM 32 bit, hỗ trợ giải phóng các ngoại lệ đã được triển khai.
    • Đối với FreeBSD, số lượng truy vấn được hỗ trợ về thông tin hệ thống cấp thấp, chẳng hạn như trạng thái bộ nhớ và mức sạc pin, đã được mở rộng.
  • Các ứng dụng và công cụ phát triển tích hợp
    • Tiện ích reg.exe đã thêm hỗ trợ cho chế độ xem sổ đăng ký 32 và 64 bit. Đã thêm hỗ trợ để sao chép khóa đăng ký.
    • Tiện ích WineDump đã thêm hỗ trợ cho việc loại bỏ siêu dữ liệu Windows và hiển thị thông tin chi tiết về các mục CodeView.
    • Trình gỡ lỗi Wine (winedbg) cung cấp khả năng gỡ lỗi các quy trình 32 bit từ trình gỡ lỗi 64 bit.
    • Khả năng tải các thư viện được tích hợp vào tệp PE đã được thêm vào trình biên dịch IDL (widl), hỗ trợ cho các thuộc tính và cấu trúc dành riêng cho WinRT đã được cung cấp và tìm kiếm thư viện dành riêng cho nền tảng đã được triển khai.
  • Hệ thống lắp ráp
    • Trong các thư mục dành riêng cho kiến ​​trúc, các thư viện hiện được lưu với các tên phản ánh kiến ​​trúc và loại thực thi, chẳng hạn như 'i386-windows' cho định dạng PE và 'x86_64-unix' cho các thư viện unix, cho phép hỗ trợ các kiến ​​trúc khác nhau trong một Wine duy nhất cài đặt và cung cấp tính năng biên dịch chéo của Winelib.
    • Để đặt tùy chọn trong tiêu đề của tệp PE kiểm soát quá trình chuyển đổi sang sử dụng DLL gốc, cờ '--prefer-native option' đã được thêm vào winebuild (quá trình xử lý DLL_WINE_PREATTACH trong DllMain đã bị dừng).
    • Đã thêm hỗ trợ cho phiên bản 4 của định dạng dữ liệu gỡ lỗi Dwarf, hiện được sử dụng theo mặc định khi xây dựng thư viện Wine.
    • Đã thêm tùy chọn bản dựng '—enable-build-id' để lưu mã nhận dạng bản dựng duy nhất trong các tệp thực thi.
    • Đã thêm hỗ trợ để sử dụng trình biên dịch Clang ở chế độ tương thích MSVC.
  • Tạp lục văn tập
    • Tên của các thư mục điển hình trong shell người dùng (Windows Shell) được đặt cho lược đồ được sử dụng bắt đầu với Windows Vista, tức là. Thay vì 'Tài liệu của tôi', thư mục 'Tài liệu' hiện đã được tạo và hầu hết dữ liệu được lưu vào thư mục 'AppData'.
    • Hỗ trợ cho đặc tả OpenCL 1.2 đã được thêm vào lớp thư viện OpenCL.
    • Trình điều khiển WinSpool đã thêm hỗ trợ cho các kích thước trang khác nhau khi in.
    • Đã thêm hỗ trợ ban đầu cho MSDASQL, nhà cung cấp Microsoft OLE DB cho trình điều khiển ODBC.
    • 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 7.0.0.
    • Dữ liệu Unicode đã được cập nhật theo đặc tả Unicode 14.
    • Cây nguồn bao gồm các thư viện Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt và Zlib, được biên dịch ở định dạng PE và không yêu cầu phiên bản ở định dạng Unix. Đồng thời, các thư viện này cũng có thể được nhập từ hệ thống để sử dụng các tập hợp bên ngoài thay vì các tùy chọn PE tích hợp sẵn.

Nguồn: opennet.ru

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