การเปิดตัว Wine 8.0 ที่เสถียร

หลังจากหนึ่งปีของการพัฒนาและเวอร์ชันทดลอง 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
      การเปิดตัว Wine 8.0 ที่เสถียร
    • ไดรเวอร์กราฟิก (winex11.drv, winemac.drv, wineandroid.drv) จะถูกแปลงเพื่อดำเนินการเรียกระบบที่ระดับ Unix และเข้าถึงไดรเวอร์ผ่านไลบรารี Win32u
      การเปิดตัว Wine 8.0 ที่เสถียร
    • สถาปัตยกรรมตัวประมวลผลการพิมพ์ถูกนำมาใช้ ซึ่งใช้เพื่อกำจัดการเรียกโดยตรงระหว่างระดับ PE และ Unix ในไดรเวอร์เครื่องพิมพ์
    • Direct2D API รองรับเอฟเฟกต์แล้ว
    • Direct2D API ได้เพิ่มความสามารถในการบันทึกและเล่นรายการคำสั่ง
    • ไดรเวอร์สำหรับ Vulkan Graphics API ได้เพิ่มการรองรับสำหรับข้อกำหนด Vulkan 1.3.237 (รองรับ Vulkan 7 ใน Wine 1.2)
  • 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

เพิ่มความคิดเห็น