หลังจากหนึ่งปีของการพัฒนาและเวอร์ชันทดลอง 28 เวอร์ชัน ได้มีการนำเสนอการใช้งาน Win32 API - Wine 8.0 แบบเปิดที่เสถียรซึ่งมีการเปลี่ยนแปลงมากกว่า 8600 รายการ ความสำเร็จที่สำคัญในเวอร์ชันใหม่ถือเป็นความสำเร็จของการแปลโมดูลไวน์เป็นรูปแบบ
Wine ยืนยันการทำงานเต็มรูปแบบของโปรแกรม 5266 (ปีที่แล้ว 5156 สองปีที่แล้ว 5049) สำหรับ Windows ส่วนอีกโปรแกรม 4370 (ปีที่แล้ว 4312 สองปีที่แล้ว 4227) ทำงานได้อย่างสมบูรณ์แบบด้วยการตั้งค่าเพิ่มเติมและ DLL ภายนอก โปรแกรม 3888 (3813 ปีที่แล้ว 3703 สองปีที่แล้ว) มีปัญหาการปฏิบัติงานเล็กน้อยที่ไม่รบกวนการใช้งานฟังก์ชั่นหลักของแอปพลิเคชัน
นวัตกรรมที่สำคัญใน Wine 8.0:
- โมดูลในรูปแบบ PE
- หลังจากทำงานมาสี่ปี การแปลงไลบรารี DLL ทั้งหมดเพื่อใช้รูปแบบไฟล์ปฏิบัติการ PE (Portable Executable ที่ใช้ใน Windows) ก็ได้เสร็จสมบูรณ์ การใช้ PE ช่วยให้สามารถใช้ดีบักเกอร์สำหรับ Windows และแก้ปัญหาด้วยการสนับสนุนแผนการป้องกันการคัดลอกต่างๆ ที่ตรวจสอบข้อมูลประจำตัวของโมดูลระบบบนดิสก์และในหน่วยความจำ ปัญหาเกี่ยวกับการเรียกใช้แอปพลิเคชัน 32 บิตบนโฮสต์ 64 บิตและแอปพลิเคชัน x86 บนระบบ ARM ก็ได้รับการแก้ไขเช่นกัน ในบรรดางานที่เหลือซึ่งวางแผนไว้ว่าจะแก้ไขใน Wine 8.x รุ่นทดลองครั้งต่อๆ มา มีการเปลี่ยนโมดูลไปเป็นอินเทอร์เฟซการเรียกของระบบ NT แทนที่จะทำการเรียกโดยตรงระหว่างเลเยอร์ PE และ Unix
- มีการนำตัวจัดการการโทรของระบบพิเศษมาใช้ ใช้ในการแปลการโทรจาก PE เป็นไลบรารี Unix เพื่อลดค่าใช้จ่ายในการดำเนินการเรียกระบบ NT แบบเต็ม ตัวอย่างเช่น การเพิ่มประสิทธิภาพทำให้สามารถลดประสิทธิภาพที่ลดลงได้เมื่อใช้ไลบรารี OpenGL และ Vulkan
- แอปพลิเคชัน Winelib ยังคงความสามารถในการใช้แอสเซมบลี Windows/Unix แบบผสมของไลบรารี ELF (.dll.so) แต่แอปพลิเคชันดังกล่าวที่ไม่มีไลบรารีแบบ 32 บิตจะไม่รองรับฟังก์ชันการทำงานที่มีให้ผ่านอินเทอร์เฟซการเรียกระบบ NT เช่น WoW64
- วอ64
- เลเยอร์ WoW64 (64 บิตบน Windows บน Windows) มีไว้สำหรับไลบรารี Unix ทั้งหมด ซึ่งช่วยให้โมดูล 32 บิตในรูปแบบ PE สามารถเข้าถึงไลบรารี Unix 64 บิต ซึ่งหลังจากกำจัดการเรียก PE/Unix โดยตรงแล้ว จะทำให้ เป็นไปได้ที่จะรันแอปพลิเคชัน Windows 32 บิตโดยไม่ต้องติดตั้งไลบรารี Unix 32 บิต
- ในกรณีที่ไม่มีตัวโหลดไวน์ 32 บิต แอปพลิเคชัน 32 บิตสามารถทำงานในโหมด WoW64 ที่เหมือน Windows รุ่นทดลองใหม่ ซึ่งโค้ด 32 บิตจะทำงานภายในกระบวนการ 64 บิต โหมดนี้จะเปิดใช้งานเมื่อสร้างไวน์ด้วยตัวเลือก '—enable-archs'
- ระบบย่อยกราฟิก
- การกำหนดค่าเริ่มต้นใช้ธีมแสง (“Light”) คุณสามารถเปลี่ยนธีมได้โดยใช้ยูทิลิตี้ WineCfg
- ไดรเวอร์กราฟิก (winex11.drv, winemac.drv, wineandroid.drv) จะถูกแปลงเพื่อดำเนินการเรียกระบบที่ระดับ Unix และเข้าถึงไดรเวอร์ผ่านไลบรารี Win32u
- สถาปัตยกรรมตัวประมวลผลการพิมพ์ถูกนำมาใช้ ซึ่งใช้เพื่อกำจัดการเรียกโดยตรงระหว่างระดับ PE และ Unix ในไดรเวอร์เครื่องพิมพ์
- Direct2D API รองรับเอฟเฟกต์แล้ว
- Direct2D API ได้เพิ่มความสามารถในการบันทึกและเล่นรายการคำสั่ง
- ไดรเวอร์สำหรับ Vulkan Graphics API ได้เพิ่มการรองรับสำหรับข้อกำหนด Vulkan 1.3.237 (รองรับ Vulkan 7 ใน Wine 1.2)
- การกำหนดค่าเริ่มต้นใช้ธีมแสง (“Light”) คุณสามารถเปลี่ยนธีมได้โดยใช้ยูทิลิตี้ WineCfg
- Direct3D
- เพิ่มคอมไพเลอร์เชเดอร์ใหม่สำหรับ HLSL (ภาษาเชเดอร์ระดับสูง) ซึ่งใช้งานโดยอิงจากไลบรารี vkd3d-shader นอกจากนี้ บนพื้นฐานของ vkd3d-shader ได้มีการเตรียมตัวแยกส่วน HLSL และตัวประมวลผลล่วงหน้า HLSL
- อินเทอร์เฟซ Thread Pump ที่นำมาใช้ใน D3DX 10 ได้ถูกนำมาใช้แล้ว
- เอฟเฟ็กต์ Direct3D 10 เพิ่มการรองรับการแสดงออกใหม่ๆ มากมาย
- ไลบรารีการสนับสนุนสำหรับ D3DX 9 รองรับการฉายภาพพื้นผิว Cubemap แล้ว
- เสียงและวิดีโอ
- ตามกรอบงาน GStreamer ได้มีการใช้การรองรับตัวกรองสำหรับการถอดรหัสเสียงในรูปแบบ MPEG-1
- เพิ่มตัวกรองสำหรับการอ่านการสตรีมเสียงและวิดีโอในรูปแบบ ASF (Advanced Systems Format)
- OpenAL32.dll ไลบรารีระดับกลางได้ถูกลบออก แทนที่จะใช้ไลบรารี Windows ดั้งเดิม OpenAL32.dll ที่มาพร้อมกับแอปพลิเคชัน
- Media Foundation Player ได้ปรับปรุงการตรวจจับประเภทเนื้อหา
- ความสามารถในการควบคุมอัตราการถ่ายโอนข้อมูล (Rate control) ได้ถูกนำมาใช้แล้ว
- ปรับปรุงการรองรับมิกเซอร์เริ่มต้นและผู้นำเสนอใน Enhanced Video Renderer (EVR)
- เพิ่มการใช้งาน Writer Encoding API เบื้องต้น
- ปรับปรุงการรองรับตัวโหลดโทโพโลยี
- อุปกรณ์อินพุต
- การสนับสนุนที่ดีขึ้นอย่างมากสำหรับการเสียบปลั๊กคอนโทรลเลอร์
- มีการเสนอการนำโค้ดที่ได้รับการปรับปรุงเพื่อกำหนดพวงมาลัยเกมซึ่งสร้างขึ้นบนพื้นฐานของไลบรารี SDL
- ปรับปรุงการรองรับเอฟเฟกต์ Force Feedback เมื่อใช้วงล้อเกม
- ความสามารถในการควบคุมมอเตอร์สั่นสะเทือนด้านซ้ายและขวาโดยใช้ข้อกำหนด HID Haptic ได้ถูกนำมาใช้แล้ว
- เปลี่ยนการออกแบบแผงควบคุมจอยสติ๊ก
- รองรับคอนโทรลเลอร์ Sony DualShock และ DualSense ผ่านการใช้แบ็คเอนด์ hidraw
- โมดูล WinRT Windows.Gaming.Input ได้รับการเสนอพร้อมกับการใช้อินเทอร์เฟซซอฟต์แวร์สำหรับการเข้าถึงเกมแพด จอยสติ๊ก และวงล้อสำหรับเล่นเกม สำหรับ API ใหม่ เหนือสิ่งอื่นใด มีการรองรับการแจ้งเตือนการเสียบปลั๊กของอุปกรณ์ เอฟเฟกต์การสัมผัสและการสั่นสะเทือน
- การทำให้เป็นสากล
- รับประกันการสร้างฐานข้อมูลโลแคลที่ถูกต้องในรูปแบบ locale.nls จากที่เก็บ Unicode CLDR (Unicode Common Locale Data Repository)
- ฟังก์ชันการเปรียบเทียบสตริง Unicode ถูกย้ายไปใช้ฐานข้อมูลและอัลกอริธึม Sortkey ของ Windows แทนอัลกอริธึม Unicode Collation ซึ่งนำพฤติกรรมเข้าใกล้ Windows มากขึ้น
- В большинстве функций добавлена поддержка верхних диапазонов кодов (плоскостей) Unicode.
- คุณสามารถใช้ UTF-8 เป็นการเข้ารหัส ANSI ได้
- ตารางอักขระได้รับการอัปเดตเป็นข้อกำหนด Unicode 15.0.0
- ข้อความและแบบอักษร
- การเชื่อมโยงแบบอักษรได้รับการเปิดใช้งานสำหรับแบบอักษรของระบบส่วนใหญ่ แก้ปัญหาสัญลักษณ์หายไปบนระบบที่มีภาษาจีน เกาหลี และญี่ปุ่น
- ปรับปรุงแบบอักษรทางเลือกสำรองใน DirectWrite
- เคอร์เนล (อินเทอร์เฟซเคอร์เนล Windows)
- ฐานข้อมูล ApiSetSchema ได้รับการปรับใช้ ซึ่งแทนที่โมดูล api-ms-* และลดการใช้พื้นที่ดิสก์และที่อยู่
- คุณลักษณะของไฟล์ DOS จะถูกบันทึกลงในดิสก์ในรูปแบบที่เข้ากันได้กับ Samba โดยใช้คุณลักษณะ FS แบบขยาย
- คุณสมบัติด้านเครือข่าย
- เพิ่มการรองรับ OCSP (Online Certificate Status Protocol) ซึ่งใช้ในการตรวจสอบใบรับรองที่ถูกเพิกถอน
- คุณสมบัติ EcmaScript ที่หลากหลายในโหมดการปฏิบัติตามมาตรฐาน JavaScript ได้รับการขยาย
- ใช้งานตัวรวบรวมขยะสำหรับ JavaScript
- แพ็คเกจเครื่องยนต์ Gecko มีฟีเจอร์สำหรับผู้พิการ
- MSHTML เพิ่มการสนับสนุนสำหรับ Web Storage API, ออบเจ็กต์ Performance และออบเจ็กต์เพิ่มเติมสำหรับการประมวลผลเหตุการณ์
- แอปพลิเคชันแบบฝังตัว
- แอปพลิเคชันในตัวทั้งหมดได้รับการแปลงให้ใช้ไลบรารี Common Controls 6 โดยรองรับธีมการออกแบบและการเรนเดอร์โดยคำนึงถึงหน้าจอที่มีความหนาแน่นของพิกเซลสูง
- ความสามารถที่เพิ่มขึ้นสำหรับการดีบักเธรดใน Wine Debugger (winedbg)
- ขณะนี้ยูทิลิตี้รีจิสทรี (REGEDIT และ REG) รองรับประเภท QWORD แล้ว
- Notepad ได้เพิ่มแถบสถานะพร้อมข้อมูลเกี่ยวกับตำแหน่งเคอร์เซอร์และฟังก์ชัน Goto Line เพื่อข้ามไปยังหมายเลขบรรทัดที่ระบุ
- คอนโซลในตัวให้ข้อมูลเอาต์พุตในหน้ารหัส OEM
- เพิ่มคำสั่ง 'query' ลงในยูทิลิตี้ sc.exe (Service Control) แล้ว
- ระบบการประกอบ
- มีความสามารถในการสร้างไฟล์ปฏิบัติการในรูปแบบ PE สำหรับสถาปัตยกรรมหลายๆ แบบ (เช่น '—enable-archs=i386,x86_64')
- ในทุกแพลตฟอร์มที่มีประเภทยาว 32 บิต ประเภทข้อมูลที่กำหนดให้ยาวใน Windows จะถูกกำหนดใหม่เป็น 'long' แทนที่จะเป็น 'int' ใน Wine ใน Winelib ลักษณะการทำงานนี้สามารถปิดใช้งานได้ผ่านคำจำกัดความ WINE_NO_LONG_TYPES
- เพิ่มความสามารถในการสร้างไลบรารีโดยไม่ต้องใช้ dlltool (เปิดใช้งานโดยการตั้งค่าตัวเลือก '—ไม่มี dlltool' ใน winebuild)
- เพื่อปรับปรุงประสิทธิภาพการโหลดและลดขนาดของไลบรารีที่ไม่ใช้โค้ดและทรัพยากรเท่านั้น winegcc จึงใช้ตัวเลือก '--data-only'
- หนังสือรวบรวมเรื่อง
- เวอร์ชันที่อัปเดตของไลบรารี่ในตัว Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, LibXslt 1.1.37, Zlib 1.2.13
- เอ็นจิ้น Wine Mono พร้อมการใช้งานแพลตฟอร์ม .NET ได้รับการอัปเดตเป็นรีลีส 7.4
- มีการรองรับการเข้ารหัสตามอัลกอริธึม RSA และลายเซ็นดิจิทัล RSA-PSS
- เพิ่มเวอร์ชันเริ่มต้นของ UI Automation API
- แผนผังต้นทางประกอบด้วยไลบรารี LDAP และ vkd3d ซึ่งได้รับการคอมไพล์ในรูปแบบ PE ซึ่งช่วยลดความจำเป็นในการจัดหาชุดประกอบ Unix ของไลบรารีเหล่านี้
- ไลบรารี OpenAL ถูกยกเลิกแล้ว
ที่มา: opennet.ru