กลับไปหน้าบทความ

อ่าน 27 นาที

ไวน์ (ซอฟต์แวร์)

Wine เป็นเลเยอร์ความเข้ากันได้ที่ช่วยให้ซอฟต์แวร์แอปพลิเคชันและเกมคอมพิวเตอร์ที่พัฒนาขึ้นสำหรับMicrosoft Windowsสามารถทำงานบนระบบปฏิบัติการที่คล้าย Unix ได้ Wine เป็น ซอฟต์แวร์

ไวน์ (ซอฟต์แวร์)

ไวน์
ผู้เขียนต้นฉบับบ็อบ แอมสตัดต์, เอริค ยังเดล
นักพัฒนาผู้เขียนไวน์[ 1 ] (1,989)
ปล่อย4  กรกฎาคม 2536  ( 1993-07-04 )
เวอร์ชันเสถียร
11.0 [ 2 ] / 13 มกราคม 2026 แก้ไขข้อมูลนี้บนวิกิดาต้า
รุ่นทดลองใช้งาน
11.11 [ 3 ] / 13 มิถุนายน 2026 แก้ไขข้อมูลนี้บนวิกิดาต้า
เขียนเป็นซี
ระบบปฏิบัติการ
แพลตฟอร์มIA-32 , x86-64 , ARM
มีจำหน่ายในพูดได้หลายภาษา
พิมพ์เลเยอร์ความเข้ากันได้
ใบอนุญาตLGPL 2.1 หรือเวอร์ชันที่ใหม่กว่า[ 7 ] [ 8 ]
เว็บไซต์ไวน์เอชคิว.org
ที่เก็บข้อมูลgitlab.winehq.org/wine/wine

Wine [ a ]เป็นเลเยอร์ความเข้ากันได้ที่ช่วยให้ซอฟต์แวร์แอปพลิเคชันและเกมคอมพิวเตอร์ที่พัฒนาขึ้นสำหรับMicrosoft Windowsสามารถทำงานบนระบบปฏิบัติการที่คล้าย Unix ได้ Wine เป็น ซอฟต์แวร์ โอเพนซอร์สและใช้งานได้ฟรีโดยส่วนใหญ่เขียนขึ้นโดยใช้การทดสอบแบบกล่องดำ และ การวิศวกรรมย้อนกลับเพื่อหลีกเลี่ยงปัญหาลิขสิทธิ์

Wine ได้ รับการพัฒนาขึ้นเป็นหลักสำหรับLinux , macOSและFreeBSD [ 10 ]นักพัฒนาสามารถคอม ไพล์ แอปพลิเคชัน Windows โดยใช้ WineLib เพื่อช่วยในการพอร์ตไปยังระบบที่คล้าย Unix ไม่มีการจำลองโค้ดหรือการจำลองเสมือนเกิดขึ้น ยกเว้นใน คอมพิวเตอร์ Mac ที่ ใช้ Apple Silicon ซึ่งใช้Rosetta 2 ในการแปลงโค้ด x86_64เป็นโค้ด ARM

จากการสำรวจในปี 2550 โดย desktoplinux.com ในกลุ่มผู้ใช้เดสก์ท็อป Linux จำนวน 38,500 คน พบว่า 31.5% ของผู้ตอบแบบสอบถามรายงานว่าใช้ Wine ในการเรียกใช้แอปพลิเคชัน Windows [ 11 ]สัดส่วนนี้มากกว่า โปรแกรม จำลองเสมือน x86 ทั้งหมด รวมกัน และมากกว่า 27.9% ที่รายงานว่าไม่ได้เรียกใช้แอปพลิเคชัน Windows [ 12 ]

ประวัติศาสตร์

Bob Amstadt หัวหน้าโครงการเริ่มต้น และ Eric Youngdale เริ่มโครงการ Wine ในปี 1993 เพื่อเป็นวิธีการเรียกใช้แอปพลิเคชัน Windows บนLinux โดยได้รับแรงบันดาลใจจากผลิตภัณฑ์ของ Sun Microsystems สองรายการ ได้แก่ Wabiสำหรับ ระบบปฏิบัติการ SolarisและPublic Windows Interface [ 13 ]ซึ่งเป็นความพยายามที่จะนำWindows APIมาใช้งานใหม่ทั้งหมดในโดเมนสาธารณะในฐานะ มาตรฐาน ISOแต่ถูกปฏิเสธเนื่องจากแรงกดดันจากMicrosoftในปี 1996 [ 14 ]เดิมที Wine มุ่งเป้าไปที่แอปพลิเคชัน 16 บิตสำหรับWindows 3.xแต่ในปี 2010มุ่งเน้นไปที่ เวอร์ชัน 32 บิตและ64 บิตซึ่งกลายเป็นมาตรฐานในระบบปฏิบัติการรุ่นใหม่ โครงการนี้เริ่มต้นจากการสนทนาบนUsenetใน comp.os.linux ในเดือนมิถุนายน พ.ศ. 2536 [ 15 ] Alexandre Julliardเป็นผู้นำโครงการนี้มาตั้งแต่ปี พ.ศ. 2537

โครงการนี้พิสูจน์แล้วว่าใช้เวลานานและยากสำหรับนักพัฒนา ส่วนใหญ่เป็นเพราะเอกสารประกอบของ Windows API ไม่สมบูรณ์และไม่ถูกต้อง แม้ว่า Microsoft จะจัดทำเอกสารฟังก์ชัน Win32 ส่วนใหญ่ไว้อย่างละเอียด แต่บางส่วน เช่นรูปแบบไฟล์และโปรโตคอลก็ไม่มีข้อกำหนดที่สมบูรณ์และเปิดเผยต่อสาธารณะจาก Microsoft นอกจากนี้ Windows ยังมีฟังก์ชันระดับต่ำที่ไม่ได้รับการบันทึก พฤติกรรมที่ไม่ได้รับการบันทึก และบั๊ก ที่ไม่ชัดเจน ซึ่ง Wine ต้องจำลองอย่างแม่นยำเพื่อให้แอปพลิเคชันบางตัวทำงานได้อย่างถูกต้อง[ 16 ]ด้วยเหตุนี้ ทีม Wine จึงได้ทำการวิศวกรรมย้อนกลับการเรียกใช้ฟังก์ชันและรูปแบบไฟล์จำนวนมากในด้านต่างๆ เช่นthunking

โครงการ Wine เดิมทีได้เผยแพร่ Wine ภายใต้ใบอนุญาต MIT เดียวกัน กับ X Window System แต่เนื่องจากความกังวลเกี่ยวกับเวอร์ชัน Wine ที่เป็นกรรมสิทธิ์ ซึ่งไม่ได้นำการเปลี่ยนแปลงกลับมายังโครงการหลัก [ 17 ]งานตั้งแต่เดือนมีนาคม พ.ศ. 2545 จึงใช้ใบอนุญาต LGPL [ 18 ]

Wine เข้าสู่เวอร์ชันเบต้าอย่างเป็นทางการในเวอร์ชัน 0.9 เมื่อวันที่ 25 ตุลาคม 2548 [ 19 ]เวอร์ชัน 1.0 เปิดตัวเมื่อวันที่ 17 มิถุนายน 2551 [ 20 ]หลังจากการพัฒนามา 15 ปี เวอร์ชัน 1.2 เปิดตัวเมื่อวันที่ 16 กรกฎาคม 2553 [ 21 ]เวอร์ชัน 1.4 เมื่อวันที่ 7 มีนาคม 2555 [ 22 ]เวอร์ชัน 1.6 เมื่อวันที่ 18 กรกฎาคม 2556 [ 23 ]เวอร์ชัน 1.8 เมื่อวันที่ 19 ธันวาคม 2558 [ 24 ]และเวอร์ชัน 9.0 เมื่อวันที่ 16 มกราคม 2567 [ 25 ]เวอร์ชันสำหรับการพัฒนาจะเปิดตัวประมาณทุกสองสัปดาห์

Wine-staging คือชุดแพตช์ ที่ได้รับการพัฒนาอย่างอิสระ ซึ่งนักพัฒนา WineHQ ยังไม่เห็นว่าพร้อมสำหรับการรวมเข้ากับคลังเก็บโค้ด Wine แต่ยังคงถือว่ามีประโยชน์สำหรับโครงการ wine-compholio โดยส่วนใหญ่ครอบคลุมฟังก์ชันทดลองและการแก้ไขข้อผิดพลาด ตั้งแต่เดือนมกราคม 2017 แพตช์ใน wine-staging เริ่มถูกรวมเข้ากับ WineHQ upstream อย่างจริงจัง เนื่องจาก wine-compholio ได้โอนโครงการให้กับ Alistair Leslie-Hughes ซึ่งเป็นนักพัฒนาหลักของ WineHQ ณ ปี 2019นอกจากนี้ WineHQ ยังมีเวอร์ชันที่สร้างไว้ล่วงหน้าสำหรับการจัดเตรียมไวน์อีกด้วย[ 26 ]

การสนับสนุนจากองค์กร

ผู้สนับสนุนหลักของ Wine คือCodeWeaversซึ่งจ้าง Julliard และนักพัฒนา Wine คนอื่นๆ อีกมากมายให้ทำงานเกี่ยวกับ Wine และCrossOverซึ่งเป็นเวอร์ชัน Wine ที่ CodeWeavers ให้การสนับสนุน CrossOver ประกอบด้วยการปรับแต่งเฉพาะแอปพลิเคชันบางอย่างที่ไม่ถือว่าเหมาะสมสำหรับ เวอร์ชัน ต้นทางรวมถึงส่วนประกอบที่เป็นกรรมสิทธิ์เพิ่มเติมบางอย่าง[ 27 ]

บริษัทพัฒนาซอฟต์แวร์Corel ของแคนาดา ได้ให้ความช่วยเหลือโครงการนี้ในระยะหนึ่ง โดยส่วนใหญ่จ้าง Julliard และคนอื่นๆ มาทำงานในโครงการนี้ Corel สนใจที่จะพอร์ตWordPerfect Office ซึ่ง เป็นชุดโปรแกรมสำนักงานของตนไปยัง Linux (โดยเฉพาะCorel Linux ) ต่อมา Corel ได้ยกเลิกโครงการที่เกี่ยวข้องกับ Linux ทั้งหมดหลังจากที่ Microsoft ลงทุนครั้งใหญ่ใน Corel และยุติความพยายามในการพัฒนา Wine [ 28 ]

ผู้สนับสนุนองค์กรอื่นๆ ได้แก่Googleซึ่งจ้าง CodeWeavers เพื่อแก้ไข Wine เพื่อให้Picasaทำงานได้ดีพอที่จะพอร์ตไปยัง Linux โดยตรงโดยใช้ไบนารีเดียวกันกับบน Windows ต่อมา Google จ่ายเงินเพื่อปรับปรุงการสนับสนุนของ Wine สำหรับAdobe Photoshop CS2 [ 29 ] Wineยังเป็นผู้ได้รับประโยชน์จากโปรแกรมSummer of Code ของ Google เป็นประจำอีกด้วย [ 30 ]

Valveร่วมมือกับCodeWeaversในการพัฒนาProton ซึ่งเป็น เลเยอร์ความเข้ากันได้บน Wine สำหรับเกมMicrosoft Windows เพื่อให้สามารถทำงานบนระบบปฏิบัติการ Linuxได้ Proton ประกอบด้วยแพทช์หลายตัวที่ Wine เวอร์ชันหลักไม่ยอมรับด้วยเหตุผลต่างๆ เช่น การใช้งานฟังก์ชัน Win32 ที่เฉพาะเจาะจงสำหรับ Linux

ออกแบบ

เป้าหมายของ Wine คือการนำAPI ของ Windows มาใช้ ทั้งหมดหรือบางส่วนตามที่โปรแกรมต่างๆ ที่ผู้ใช้ Wine ต้องการเรียกใช้บนระบบปฏิบัติการที่คล้าย Unix

สถาปัตยกรรมพื้นฐาน

อินเทอร์เฟซการเขียนโปรแกรมของ Microsoft Windows ส่วนใหญ่ประกอบด้วยไลบรารีการเชื่อมโยงแบบไดนามิก (DLL) ซึ่งประกอบด้วยซับรูทีนห่อหุ้มจำนวนมากสำหรับการเรียกใช้ระบบของเคอร์เนล โปรแกรมโหมดเคอร์เนล NTOS (ntoskrnl.exe) โปรแกรม Windows ทั่วไปจะเรียกใช้ DLL ของ Windows บางตัว ซึ่งจะเรียกใช้ไลบรารี gdi/user32 ในโหมดผู้ใช้ ซึ่งจะใช้ kernel32.dll (ระบบย่อย win32) ที่รับผิดชอบในการจัดการกับเคอร์เนลผ่านการเรียกใช้ระบบ เลเยอร์การเรียกใช้ระบบถือเป็นส่วนตัวสำหรับโปรแกรมเมอร์ของ Microsoft เนื่องจากเอกสารไม่ได้เปิดเผยต่อสาธารณะ และอินเทอร์เฟซที่เผยแพร่ทั้งหมดอาศัยระบบย่อยที่ทำงานอยู่บนเคอร์เนล นอกจากนี้ ยังมีอินเทอร์เฟซการเขียนโปรแกรมจำนวนหนึ่งที่นำไปใช้เป็นบริการซึ่งทำงานเป็นกระบวนการแยกต่างหาก แอปพลิเคชันสื่อสารกับบริการในโหมดผู้ใช้ผ่าน RPC [ 31 ]

Wine ใช้อินเทอร์เฟซไบนารีแอปพลิเคชัน ของ Windows (ABI) ทั้งหมดในพื้นที่ผู้ใช้แทนที่จะเป็นโมดูลเคอร์เนล Wine ส่วนใหญ่จะสะท้อนลำดับชั้น โดยบริการที่ปกติแล้วเคอร์เนลใน Windows จะจัดหาให้[ 32 ]จะถูกจัดหาโดยเดมอนที่เรียกว่า wineserver ซึ่งมีหน้าที่ในการใช้งานฟังก์ชันพื้นฐานของ Windows รวมถึงการผสานรวมกับระบบ X Windowและการแปลงสัญญาณ เป็นข้อยกเว้นของ Windows ดั้งเดิม แม้ว่า wineserver จะใช้ เคอร์เนลของ Windows ในบางส่วน แต่ก็ไม่สามารถใช้ไดรเวอร์ของ Windows ดั้งเดิมกับมันได้ เนื่องจากสถาปัตยกรรมพื้นฐานของ Wine [ 31 ]

การกำหนดค่า

การกำหนดค่าของ Wine นั้นจัดการเป็นหลักผ่านทางcontrol (การใช้งาน แผงควบคุมของ Windowsของ Wine ), regedit (เครื่องมือแก้ไข รีจิสทรีของ Windowsของ Wine ) และwinecfg (เครื่องมือการกำหนดค่า GUI) รวมถึงโปรแกรมอื่นๆ อีกมากมาย โดยค่าเริ่มต้น Wine จะจัดเก็บไฟล์การกำหนดค่าและแอปพลิเคชัน Windows ที่ติดตั้งไว้ (เว้นแต่จะระบุไว้เป็นอย่างอื่นในระหว่างการติดตั้ง) ที่~/.wineตำแหน่งไดเร็กทอรีนี้เรียกว่า Wine Prefix หรือ Bottle ตัวแปรสภาพแวดล้อม wineprefixสามารถใช้เพื่อระบุ prefix ที่แตกต่างกันได้ และการใช้ตัวแปรนี้จะเปลี่ยนการกำหนดค่าที่คุณกำลังใช้งาน[ 33 ] [ 34 ]

ห้องสมุดและแอปพลิเคชัน

Wine อนุญาตให้โหลดทั้ง DLL ของ Windows และออบเจ็กต์ที่ใช้ร่วมกัน ของ Unix สำหรับโปรแกรม Windows การใช้งาน DLL ของ Windowsพื้นฐานที่สุดที่สร้างขึ้นในตัวได้แก่NTDLL , KERNEL32 , GDI32และUSER32ใช้เมธอดออบเจ็กต์ที่ใช้ร่วมกันเนื่องจากต้องใช้ฟังก์ชันในระบบปฏิบัติการโฮสต์ด้วย ไลบรารีระดับสูงกว่า เช่น WineD3D สามารถใช้รูปแบบ DLL ได้อย่างอิสระ ในหลายกรณีผู้ใช้สามารถเลือกที่จะโหลด DLL จาก Windows แทน DLL ที่ Wine สร้างขึ้น การทำเช่นนั้นอาจให้ฟังก์ชันการทำงานที่ Wine ยังไม่ได้ใช้งาน แต่ก็อาจทำให้เกิดความผิดพลาดได้หากต้องพึ่งพาอย่างอื่นที่ไม่มีอยู่ใน Wine [ 31 ]

Wine ติดตามสถานะการใช้งานผ่านการทดสอบหน่วย อัตโนมัติ ที่ทำในทุกการคอมมิตของ Git [ 35 ]

กราฟิกและเกม

ในขณะที่ซอฟต์แวร์สำนักงานส่วนใหญ่ไม่ได้ใช้ API กราฟิกเร่งความเร็ว GPU ที่ซับซ้อน แต่เกมคอมพิวเตอร์กลับใช้ เพื่อให้เกมเหล่านี้ทำงานได้อย่างถูกต้อง Wine จะต้องส่งต่อคำสั่งการวาดภาพไปยังระบบปฏิบัติการโฮสต์ และอาจต้องแปลงคำสั่งเหล่านั้นให้เป็นสิ่งที่โฮสต์เข้าใจได้ด้วย

DirectXคือชุด API ของ Microsoft สำหรับการเรนเดอร์ เสียง และอินพุต ณ ปี 2019 Wine 4.0 มีการใช้งาน DirectX 12 สำหรับVulkan APIและ DirectX 11.2 สำหรับ OpenGL [ 36 ]การสนับสนุน Direct2D ได้รับการอัปเดตเป็น Direct2D 1.2 [ 36 ] Wine 4.0 ยังอนุญาตให้ Wine เรียกใช้แอปพลิเคชัน Vulkan โดยส่งคำ สั่งวาดไปยังระบบปฏิบัติการโฮสต์ หรือในกรณีของ macOS โดยการแปลงเป็นMetal APIโดยMoltenVK [ 36 ]

เอ็กซ์ออดิโอ
ข้อมูล ณ เดือนกุมภาพันธ์พ.ศ. 2562 Wine 4.3 ใช้ ไลบรารี FAudio (และ Wine 4.13 ได้รวมการแก้ไขสำหรับไลบรารีนี้ไว้ด้วย) เพื่อใช้งาน API เสียง XAudio2 (และอื่นๆ) [ 37 ] [ 38 ]
XInput และ Raw Input
Wine เวอร์ชัน 4.0 (2019) รองรับคอนโทรลเลอร์เกม ผ่านการใช้งานไลบรารีเหล่านี้ในตัว โดยสร้างขึ้นเป็นออบเจ็กต์ที่ใช้ร่วมกันของ Unix เนื่องจากจำเป็นต้องเข้าถึงอินเทอร์เฟซคอนโทรลเลอร์ของระบบปฏิบัติการพื้นฐาน โดย เฉพาะผ่านSDL [ 36 ]

ไดเร็กต์3ดี

ความพยายามส่วนใหญ่ของ Wine ในการพัฒนา DirectX นั้นมุ่งเน้นไปที่การสร้าง WineD3D ซึ่งเป็นเลเยอร์การแปลงจากAPI ของ Direct3D และ DirectDraw ไปเป็น OpenGLณ ปี 2019 ส่วนประกอบนี้รองรับได้ถึง DirectX 11 [ 36 ]ณ วันที่ 12 ธันวาคม 2016 Wine มีประสิทธิภาพเพียงพอที่จะรันOverwatchด้วย D3D11 [ 39 ]นอกจากการใช้งานใน Wine แล้ว DLL ของ WineD3D ยังถูกนำไปใช้ใน Windows เองด้วย ทำให้ GPU รุ่นเก่าสามารถรันเกมที่ใช้ DirectX เวอร์ชันใหม่กว่าได้ และเกมเก่าที่ใช้ DDraw สามารถแสดงผลได้อย่างถูกต้อง[ 40 ]

มีการดำเนินการบางอย่างเพื่อย้ายแบ็กเอนด์ Direct3D ไปยัง API Vulkan การสนับสนุน Direct3D 12 ในเวอร์ชัน 4.0 มีให้โดยโครงการย่อย "vkd3d" [ 36 ]และ WineD3D ได้รับการพอร์ตแบบทดลองให้ใช้ API Vulkan ในปี 2019 [ 41 ]การใช้งานอีกแบบหนึ่งคือDXVKแปลการเรียก Direct3D 8, 9, 10 และ 11 โดยใช้ Vulkan เช่นกัน และเป็นโครงการแยกต่างหาก[ 42 ]

เมื่อแก้ไข Wine แล้ว จะสามารถเรียกใช้คำสั่ง API Direct3D 9 ได้โดยตรงผ่านGallium3D State Tracker (หรือที่เรียกว่าไดรเวอร์ Gallium3D GPU) ซึ่งเป็นซอฟต์แวร์โอเพน ซอร์สและใช้งานได้ฟรี โดย ไม่ต้องแปลงเป็นคำสั่ง API OpenGL ในกรณีนี้ เลเยอร์ Gallium3D จะอนุญาตให้ส่งผ่านคำสั่งการวาด DX9 โดยตรง ซึ่งส่งผลให้ประสิทธิภาพดีขึ้นถึง 2 เท่า[ 43 ]ณ ปี 2020 โครงการนี้มีชื่อว่า Gallium.Nine ปัจจุบันมีให้ใช้งานในรูปแบบแพ็กเกจแบบสแตนด์อโลนแยกต่างหาก และไม่จำเป็นต้องใช้ Wine เวอร์ชันที่แก้ไขแล้วอีกต่อไป[ 44 ]

ส่วนติดต่อผู้ใช้

โดยปกติ Wine จะถูกเรียกใช้จากตัวแปลคำสั่งบรรทัดคำสั่ง: wine program.exe. [ 45 ]

ไวน์ซีเอฟจี

ภาพหน้าจอแสดงวิธีการตั้งค่า Wine เพื่อจำลองระบบปฏิบัติการ Windows เวอร์ชันต่างๆ โดยย้อนกลับไปถึง Windows 2.0 ในเวอร์ชัน 32 บิต (Wine เวอร์ชัน 64 บิตรองรับเฉพาะ Windows เวอร์ชัน 64 บิตเท่านั้น)

มีโปรแกรมยูทิลิตี้winecfgที่เริ่มต้นอินเทอร์เฟซผู้ใช้แบบกราฟิกพร้อมตัวควบคุมสำหรับปรับตัวเลือกพื้นฐาน[ 46 ]เป็นโปรแกรมยูทิลิตี้การกำหนดค่า GUI ที่รวมอยู่ใน Wine Winecfg ช่วยให้การกำหนดค่า Wine ง่ายขึ้นโดยไม่จำเป็นต้องแก้ไขรีจิสทรีโดยตรง แม้ว่าหากจำเป็นก็สามารถทำได้ด้วยโปรแกรมแก้ไขรีจิสทรีที่รวมอยู่ (คล้ายกับregedit ของ Windows )

แอปพลิเคชันของบุคคลที่สาม

เล่นบน Linux

แอปพลิเคชันบางตัวต้องการการปรับแต่งมากกว่าแค่การติดตั้งแอปพลิเคชันเพื่อให้ทำงานได้อย่างถูกต้อง เช่น การกำหนดค่า Wine ด้วยตนเองเพื่อใช้DLL ของ Windows บางตัว โครงการ Wine ไม่ได้รวมวิธีแก้ปัญหา ดังกล่าวไว้ ในโค้ดเบสของ Wine แต่เลือกที่จะมุ่งเน้นไปที่การปรับปรุงการใช้งาน Windows API ของ Wine เท่านั้นแม้ว่าแนวทางนี้จะมุ่งเน้นการพัฒนา Wine ไปที่ความเข้ากันได้ในระยะยาว แต่ก็ทำให้ผู้ใช้ใช้งานแอปพลิเคชันที่ต้องการวิธีแก้ปัญหาได้ยาก ดังนั้นจึงมีการสร้างแอปพลิเคชันของบุคคลที่สามจำนวนมากเพื่ออำนวยความสะดวกในการใช้งานแอปพลิเคชันเหล่านั้นที่ไม่สามารถทำงานได้ทันทีภายใน Wine เอง วิกิของ Wine มีหน้าเว็บที่รวบรวมแอปพลิเคชันของบุคคลที่สามทั้งที่ยังใช้งานอยู่และที่ล้าสมัย[ 47 ]

  • Winetricksเป็นสคริปต์สำหรับติดตั้งส่วนประกอบพื้นฐานบางอย่าง (โดยทั่วไปคือ DLL และฟอนต์ของ Microsoft) และปรับแต่งการตั้งค่าที่จำเป็นสำหรับแอปพลิเคชันบางตัวเพื่อให้ทำงานได้อย่างถูกต้องภายใต้ Wine [ 48 ]สามารถติดตั้งแอปพลิเคชันและเกมจำนวนมากโดยอัตโนมัติได้อย่างสมบูรณ์ รวมถึงการใช้วิธีแก้ปัญหาที่จำเป็น Winetricks มีGUI [ 49 ] โครงการ Wine จะยอมรับรายงานข้อบกพร่องจากผู้ใช้ Winetricks ซึ่งแตกต่างจากแอปพลิเคชันของบุคคลที่สามส่วนใหญ่ โครงการนี้ได้รับการดูแลโดย Austin English นักพัฒนา Wine [ 50 ]
  • Q4Wineเป็น GUI แบบเปิดสำหรับการตั้งค่า Wine ขั้นสูง
  • Wine-Doorsเป็นเครื่องมือจัดการแอปพลิเคชันสำหรับ เดสก์ท็อป GNOMEซึ่งเพิ่มฟังก์ชันการทำงานให้กับ Wine Wine-Doors เป็นทางเลือกแทน WineTools ซึ่งมีจุดมุ่งหมายเพื่อปรับปรุงคุณสมบัติของ WineTools และขยายแนวคิดเดิมด้วยแนวทางการออกแบบที่ทันสมัยยิ่งขึ้น [ 51 ]
  • IEs4Linuxเป็นยูทิลิตี้สำหรับติดตั้ง Internet Explorer ทุกเวอร์ชัน รวมถึงเวอร์ชัน 4 ถึง 6 และเวอร์ชัน 7 (เบต้า) [ 52 ]
  • Wineskinเป็นยูทิลิตี้สำหรับจัดการเวอร์ชันของเอ็นจิ้น Wine และสร้าง wrapper สำหรับ macOS [ 53 ]
  • PlayOnLinuxเป็นแอปพลิเคชันที่ช่วยให้การติดตั้งแอปพลิเคชัน Windows (โดยหลักคือเกม) ง่ายขึ้น นอกจากนี้ยังมีเวอร์ชันสำหรับ Macintosh ที่ชื่อว่า PlayOnMacด้วย
  • Lutrisเป็นแอปพลิเคชันโอเพนซอร์สสำหรับติดตั้งเกม Windows บน Linux [ 54 ]
  • Bordeauxเป็นตัวจัดการการกำหนดค่า GUI ของ Wine ที่เป็นกรรมสิทธิ์ซึ่งทำงานแอปพลิเคชัน winelib นอกจากนี้ยังรองรับการติดตั้งยูทิลิตี้ของบุคคลที่สาม การติดตั้งแอปพลิเคชันและเกม และความสามารถในการใช้การกำหนดค่าแบบกำหนดเอง ปัจจุบัน Bordeauxทำงานบนคอมพิวเตอร์ Linux, FreeBSD, PC-BSD, Solaris, OpenSolaris,OpenIndiana [ 55 ] [ 56 ] และ macOS
  • Bottlesเป็น Wine Prefix และตัวจัดการรันเนอร์แบบกราฟิกโอเพนซอร์สสำหรับ Wine ที่ใช้GTK4 + Libadwaitaโดยมีระบบการติดตั้งการพึ่งพาตามที่เก็บและระบบการกำหนดเวอร์ชันของขวดเพื่อกู้คืนสถานะก่อนหน้า[ 57 ]
  • WineGUIเป็นอินเทอร์เฟซกราฟิกแบบโอเพนซอร์สและฟรีสำหรับการจัดการ Wine ช่วยให้ผู้ใช้สามารถสร้างขวด Wine และติดตั้งแอปพลิเคชันหรือเกมของ Windows ได้[ 58 ]

ฟังก์ชันการทำงาน

ความคืบหน้าด้านความเข้ากันได้ของแอปพลิเคชันเมื่อเวลาผ่านไป ตามผลการทดสอบจาก Wine AppDB:
  ซอฟต์แวร์ทำงานได้อย่างไร้ที่ติ
  ซอฟต์แวร์ทำงานได้อย่างราบรื่นหลังจากตั้งค่าเสร็จ
  มีปัญหาเล็กน้อยกับซอฟต์แวร์
  ปัญหาใหญ่เกี่ยวกับซอฟต์แวร์
  ซอฟต์แวร์ที่ใช้งานไม่ได้โดยสิ้นเชิง
คะแนนการประเมินแอปพลิเคชัน WineHQ เมื่อเวลาผ่านไป

ผู้พัฒนา ส่วน Direct3Dของ Wine ได้ดำเนินการใช้งานคุณสมบัติใหม่ๆ อย่างต่อเนื่อง เช่นpixel shadersเพื่อเพิ่มการรองรับเกม[ 59 ] Wine ยังสามารถใช้ DLL ดั้งเดิมได้โดยตรง ซึ่งจะเพิ่มฟังก์ชันการทำงาน แต่จะต้องมีใบอนุญาตสำหรับ Windows เว้นแต่ว่า DLL จะถูกแจกจ่ายมาพร้อมกับแอปพลิเคชันเอง

Wine ยังรวมถึงการใช้งานโอเพนซอร์สของโปรแกรม Windows หลายโปรแกรม เช่นNotepad , WordPad , Control Panel , Internet ExplorerและWindows Explorer [ 60 ]

ฐานข้อมูลแอปพลิเคชัน Wine (AppDB) เป็นฐานข้อมูลออนไลน์ที่ดูแลโดยชุมชน ซึ่งรวบรวมข้อมูลเกี่ยวกับโปรแกรม Windows ที่ใช้งานร่วมกับ Wine ได้ และประสิทธิภาพการทำงานของโปรแกรมเหล่านั้น

ความเข้ากันได้กับเวอร์ชันเก่า

Wine ช่วยให้สามารถใช้งานร่วมกับแอปพลิเคชัน Windows รุ่นเก่าได้ดี รวมถึงแอปพลิเคชันที่เขียนขึ้นสำหรับWindows 3.1xด้วย[ 61 ] Wine สามารถจำลองเวอร์ชัน Windows ต่างๆ ที่จำเป็นสำหรับบางโปรแกรมได้ โดยย้อนกลับไปได้ถึงWindows 2.0 [ 62 ]อย่างไรก็ตาม การสนับสนุน Windows 1.xและ Windows 2.x ถูกลบออกจาก Wine เวอร์ชันพัฒนา 1.3.12 แล้ว หากติดตั้ง DOSBox ไว้ในระบบ(ดูด้านล่างเกี่ยวกับMS-DOS ) Wine เวอร์ชันพัฒนา 1.3.12 และเวอร์ชันที่ใหม่กว่าจะยังคงแสดงตัวเลือก "Windows 2.0" สำหรับเวอร์ชัน Windows ที่จะจำลอง แต่ Wine ก็ยังไม่สามารถเรียกใช้โปรแกรม Windows 2.0 ส่วนใหญ่ได้ เนื่องจากฟังก์ชัน MS-DOS และ Windows ยังไม่ได้รับการบูรณาการในปัจจุบัน

โดยทั่วไปแล้ว ความเข้ากันได้แบบย้อนหลังใน Wine นั้นดีกว่าใน Windows เนื่องจาก Windows เวอร์ชันใหม่กว่าอาจบังคับให้ผู้ใช้ต้องอัปเกรดแอปพลิเคชัน Windows รุ่นเก่า และอาจทำให้ซอฟต์แวร์ที่ไม่ได้รับการสนับสนุนใช้งานไม่ได้ตลอดไป เพราะไม่มีใครปรับโปรแกรมให้เข้ากับการเปลี่ยนแปลงในระบบปฏิบัติการ ในหลายกรณี Wine สามารถให้การสนับสนุนรุ่นเก่าได้ดีกว่า Windows เวอร์ชันใหม่กว่าด้วย "โหมดความเข้ากันได้" Wine สามารถเรียกใช้ โปรแกรม Windows 16 บิต ( Win16 ) บนระบบปฏิบัติการ 64 บิต ซึ่งใช้ CPU x86-64 (64 บิต) [ 63 ]ซึ่งเป็นฟังก์ชันที่ไม่มีใน Microsoft Windows เวอร์ชัน 64 บิต[ 64 ] [ 65 ] WineVDMอนุญาตให้แอปพลิเคชัน Windows 16 บิตทำงานบน Windows เวอร์ชัน 64 บิต[ 66 ]

Wine รองรับแอปพลิเคชันคอนโซล ของ Windows บางส่วน และผู้ใช้สามารถเลือกแบ็กเอนด์ที่จะใช้ในการจัดการคอนโซลได้ (ตัวเลือกได้แก่ raw streams, cursesและuser32 ) [ 67 ]เมื่อใช้แบ็กเอนด์ raw streams หรือ curses แอปพลิเคชัน Windows จะทำงานในเทอร์มินัล Unix

แอปพลิเคชัน 64 บิต

การสนับสนุนเบื้องต้นสำหรับ แอปพลิเคชัน Windows 64 บิตถูกเพิ่มใน Wine 1.1.10 ในเดือนธันวาคม พ.ศ. 2551 [ 68 ]ณ เดือนเมษายนพ.ศ. 2562 การสนับสนุนถือว่ามีเสถียรภาพ Wine ทั้งสองเวอร์ชันถูกสร้างขึ้นแยกกัน และเป็นผลให้การสร้าง wine64 เพียงอย่างเดียวจะสร้างสภาพแวดล้อมที่สามารถเรียกใช้แอปพลิเคชัน x86-64 ได้เท่านั้น[ 69 ]

ข้อมูล ณ เดือนเมษายน2562 Wine มีการสนับสนุนที่เสถียรสำหรับ การสร้าง WoW64ซึ่งช่วยให้แอปพลิเคชัน Windows ทั้งแบบ 32 บิตและ 64 บิตสามารถทำงานภายในอินสแตนซ์ Wine เดียวกันได้ ในการสร้างดังกล่าว จะต้องสร้างเวอร์ชัน 64 บิตก่อน จากนั้นจึงสร้างเวอร์ชัน 32 บิตโดยอ้างอิงจากเวอร์ชัน 64 บิต เช่นเดียวกับ WoW64 ของ Microsoft กระบวนการสร้าง 32 บิตจะเพิ่มส่วนที่จำเป็นสำหรับการจัดการโปรแกรม 32 บิตลงในการสร้าง 64 บิต[ 69 ]ฟังก์ชันนี้มีให้เห็นมาตั้งแต่ปี 2010 เป็นอย่างน้อย[ 70 ]

เอ็มเอส-ดีโอเอส

ระบบปฏิบัติการ Microsoft Windows รุ่นแรกๆ ทำงานบนMS-DOSและโปรแกรม Windows อาจต้องอาศัยโปรแกรม MS-DOS จึงจะใช้งานได้ Wine ไม่รองรับ MS-DOS ได้ดีนัก แต่ตั้งแต่เวอร์ชันพัฒนา 1.3.12 เป็นต้นไป Wine จะพยายามรันโปรแกรม MS-DOS ในDOSBoxหาก DOSBox พร้อมใช้งานในระบบ[ 71 ]เนื่องจากข้อบกพร่อง Wine จึงระบุโปรแกรม Windows 1.x และ Windows 2.x ผิดพลาดว่าเป็นโปรแกรม MS-DOS และพยายามรันใน DOSBox แต่ไม่สำเร็จ[ 72 ]

ไวน์ลิบ

Wine มี Winelib ซึ่งช่วยให้สามารถใช้การใช้งาน API ของ Windows ร่วมกันเป็นไลบรารีจริงสำหรับโปรแกรม Unix ได้ ซึ่งทำให้สามารถสร้างโค้ด Windows ลงในไฟล์ปฏิบัติการ Unix ดั้งเดิมได้ ตั้งแต่เดือนตุลาคม 2010 Winelib ยังทำงานบนแพลตฟอร์มARM ได้อีกด้วย [ 73 ]

สถาปัตยกรรมที่ไม่ใช่ x86

การสนับสนุน Solaris SPARCถูกยกเลิกในเวอร์ชัน 1.5.26

อาร์เอ็ม, วินโดวส์ ซีอี และวินโดวส์ อาร์ที

Wine ให้การสนับสนุน โปรเซสเซอร์ ARM (รวมถึง ARM64/AArch64) และระบบปฏิบัติการ Windows เวอร์ชันต่างๆ ที่ทำงานบนโปรเซสเซอร์เหล่านั้น ข้อมูลณ เดือนเมษายน2562 Wine สามารถเรียกใช้แอปพลิเคชัน ARM/Win32 ที่ออกแบบมาสำหรับ อุปกรณ์ Windows RT ที่ปลดล็อกแล้ว (แต่ไม่ใช่โปรแกรม Windows RT) การสนับสนุน Windows CE (ทั้ง x86 หรือ ARM) ขาดหายไป[ 74 ]แต่ เวอร์ชัน ต้นแบบก่อนอัลฟ่าที่ไม่เป็นทางการที่เรียกว่า WineCE อนุญาตให้มีการสนับสนุนบางส่วน[ 75 ]

ไวน์สำหรับแอนดรอยด์

เกม Microsoft Solitaireทำงานบน WINE บนระบบ Android

เมื่อวันที่ 3 กุมภาพันธ์ 2013 ในการบรรยาย FOSDEM ที่บรัสเซลส์Alexandre Julliardได้สาธิตการใช้งาน Wine เวอร์ชันแรกบนระบบปฏิบัติการAndroid ของ Google [ 76 ]

WINE เวอร์ชันทดลองสำหรับ Android (x86 และ ARM) ได้รับการเผยแพร่ในช่วงปลายปี 2017 และได้รับการอัปเดตอย่างสม่ำเสมอโดยนักพัฒนาอย่างเป็นทางการนับตั้งแต่นั้นเป็นต้นมา[ 5 ]เวอร์ชันเริ่มต้นไม่ได้ใช้งานการจำลองข้ามสถาปัตยกรรมผ่านQEMUและส่งผลให้เวอร์ชัน ARM จะรันเฉพาะแอปพลิเคชัน ARM ที่ใช้ Win32 API เท่านั้น[ 77 ]

แอปพลิเคชันของ Microsoft

โดยปกติแล้ว Wine จะใช้GeckoและMono เวอร์ชันพิเศษสำหรับ Windows เพื่อทดแทน Internet Explorerและ . NET Frameworkของ Microsoft Wine มีการใช้งานJScriptและVBScript ในตัว คุณ สามารถดาวน์โหลดและเรียกใช้โปรแกรมติดตั้งของ Microsoft สำหรับโปรแกรมเหล่านั้นผ่าน winetricks หรือติดตั้งด้วยตนเองก็ได้

Wine ไม่เป็นที่รู้จักว่ารองรับ Internet Explorer (IE) เวอร์ชันส่วนใหญ่ได้ดี ในบรรดาเวอร์ชันที่ค่อนข้างใหม่ Internet Explorer 8 สำหรับ Windows XP เป็นเวอร์ชันเดียวที่รายงานคะแนนการใช้งานบน AppDB ของ Wine โดยไม่ต้องตั้งค่าเพิ่มเติม[ 78 ]อย่างไรก็ตามGoogle Chromeได้รับคะแนนระดับทอง (ณ Wine 5.5-staging) [ 79 ]และเว็บเบราว์เซอร์ Edge ของ Microsoft ซึ่งเป็นเบราว์เซอร์ทดแทน IE นั้นเป็นที่ทราบกันดีว่าใช้พื้นฐานมาจากเบราว์เซอร์ดังกล่าว (หลังจากเปลี่ยนจากเอ็นจิ้นการแสดงผลของ Microsoft เอง[ 80 ] ) Winetricks มีการติดตั้งอัตโนมัติสำหรับ Internet Explorer 6 ถึง 8 ดังนั้นจึงคาดได้ว่าเวอร์ชันเหล่านี้จะทำงานได้ด้วยวิธีการแก้ไขปัญหาในตัว

ทางเลือกอื่นในการติดตั้ง Internet Explorer โดยตรงคือการใช้ IEs4Linuxซึ่งปัจจุบันเลิกใช้งานแล้วมันไม่เข้ากันกับ Wine เวอร์ชันล่าสุด[ 81 ]และการพัฒนา IEs4Linux ก็หยุดชะงักลง

ไวน์เวอร์ชันอื่นๆ

การพัฒนาหลักของ Wine มีเป้าหมายเพื่อการใช้งาน Windows API อย่างถูกต้องโดยรวม และบางครั้งก็มีความล่าช้าในบางพื้นที่ของความเข้ากันได้กับแอปพลิเคชันบางอย่าง ตัวอย่างเช่น Direct3D ยังคงไม่ได้ใช้งานจนถึงปี 1998 [ 82 ]แม้ว่าเวอร์ชันใหม่กว่าจะมีการใช้งานที่สมบูรณ์มากขึ้นเรื่อยๆ ก็ตาม[ 83 ]

ครอสโอเวอร์

CodeWeavers ทำการตลาด CrossOver โดยเฉพาะสำหรับการเรียกใช้Microsoft Officeและแอปพลิเคชัน Windows หลักอื่นๆ รวมถึงเกมบางเกม CodeWeavers จ้างAlexandre Julliardให้ทำงานเกี่ยวกับ Wine และบริจาคโค้ดส่วนใหญ่ให้กับโครงการ Wine ภายใต้ LGPL นอกจากนี้ CodeWeavers ยังได้เปิดตัวเวอร์ชันใหม่ชื่อ CrossOver Mac สำหรับ คอมพิวเตอร์ Apple Macintosh ที่ใช้ Intel เมื่อวันที่ 10 มกราคม 2550 [ 84 ]แตกต่างจาก Wine ต้นทาง CrossOver สามารถทำงานบน macOS เวอร์ชัน x64 เท่านั้นได้[ 85 ]โดยใช้เทคนิคที่เรียกว่า "wine32on64" [ 86 ]

นับตั้งแต่ปี 2012 CrossOver ได้รวมฟังก์ชันการทำงานของทั้ง CrossOver Games และ CrossOver Pro ไว้ด้วยกัน ดังนั้น CrossOver Games และ CrossOver Pro จึงไม่สามารถจำหน่ายเป็นผลิตภัณฑ์เดี่ยวได้อีกต่อไป[ 87 ]

CrossOver Games ได้รับการปรับให้เหมาะสมสำหรับการเรียกใช้เกมวิดีโอ Windows แตกต่างจาก CrossOver ตรงที่ไม่ได้เน้นที่การจัดหา Wine เวอร์ชันที่เสถียรที่สุด แต่ได้จัดเตรียมคุณสมบัติทดลองเพื่อรองรับเกมใหม่ ๆ[ 88 ]

โปรตอน

เมื่อวันที่ 21 สิงหาคม 2561 Valveได้ประกาศ Wine เวอร์ชันใหม่ชื่อ Proton ซึ่งออกแบบมาเพื่อผสานรวมกับ ซอฟต์แวร์ Steam เวอร์ชัน Linux ของบริษัท (รวมถึงการติดตั้ง Steam ที่สร้างขึ้นใน ระบบปฏิบัติการSteamOSบน Linux และคอมพิวเตอร์ Steam Machine ) [ 89 ]เป้าหมายของ Valve สำหรับ Proton คือการช่วยให้ผู้ใช้ Steam บน Linux สามารถเล่นเกมที่ไม่มีเวอร์ชัน Linux ดั้งเดิม (โดยเฉพาะเกมเก่าๆ) และในที่สุด ผ่านการผสานรวมกับ Steam รวมถึงการปรับปรุงการสนับสนุนเกมเมื่อเทียบกับ Wine เวอร์ชันหลัก เพื่อให้ผู้ใช้ได้รับ "ประสบการณ์การใช้งานแบบเสียบปลั๊กและเล่นง่ายๆ เหมือนกัน" เหมือนกับที่พวกเขาจะได้รับหากเล่นเกมบน Linux โดยตรง[ 89 ] Proton เข้าสู่เบต้าสาธารณะทันทีหลังจากประกาศ[ 89 ]

Valve ได้ร่วมมือกับ CodeWeavers มาตั้งแต่ปี 2016 เพื่อพัฒนาการปรับปรุงประสิทธิภาพการเล่นเกมของ Wine ซึ่งบางส่วนได้ถูกรวมเข้ากับโครงการ Wine ต้นทางแล้ว[ 89 ]การปรับปรุงเฉพาะบางอย่างที่รวมอยู่ใน Proton ได้แก่การใช้งาน Direct3D 9, 10, 11 และ 12 ที่ใช้Vulkan ผ่าน vkd3d [ 90 ] DXVK [ 42 ]และD9VK [ 91 ]การปรับปรุงประสิทธิภาพการทำงานแบบมัลติเธรดผ่าน esync [ 92 ] การ จัดการ เกมแบบเต็มหน้าจอที่ดี ขึ้นและการสนับสนุนฮาร์ดแวร์คอนโทรลเลอร์เกมอัตโนมัติที่ดีขึ้น[ 89 ]

Proton เป็นโอเพนซอร์สอย่างสมบูรณ์และสามารถใช้งานได้ผ่าน GitHub [ 93 ]การแยกสาขาของ Proton เช่น 'GEproton' ก็ได้รับความนิยมเช่นกัน[ 94 ]

ไวน์@อีเทอร์ซอฟต์

บริษัท Etersoft ของรัสเซียได้พัฒนา Wine เวอร์ชันเฉพาะของตนเองมาตั้งแต่ปี 2549 WINE@Etersoft รองรับแอปพลิเคชันยอดนิยมของรัสเซีย (เช่น1C:Enterpriseโดยบริษัท 1C ) [ 95 ]

โครงการอื่นๆ ที่ใช้ซอร์สโค้ดของ Wine

โครงการอื่นๆ ที่ใช้ซอร์สโค้ดของ Wine ได้แก่:

  • WineVDMหรือ OTVDM เป็นเลเยอร์ความเข้ากันได้ ของแอป 16 บิต สำหรับ Windows 64 บิต[ 66 ]
  • ReactOSเป็นโครงการที่มุ่งเขียนระบบปฏิบัติการที่เข้ากันได้กับWindows NTเวอร์ชัน 5.x ขึ้นไป (ซึ่งรวมถึงWindows 2000และรุ่นต่อๆ มา) ลงไปถึง ระดับ ไดรเวอร์อุปกรณ์ ReactOS ใช้ซอร์สโค้ดของ Wine เป็นจำนวนมาก อย่างไรก็ตาม เนื่องจากความแตกต่างทางสถาปัตยกรรม ReactOS จึงไม่สามารถนำส่วนประกอบ NTDLL, USER32, KERNEL32, GDI32 และ ADVAPI32 ของ Wine มาใช้ซ้ำได้โดยตรง[ 96 ] [ 97 ]ในเดือนกรกฎาคม พ.ศ. 2552 Aleksey Bragin หัวหน้าโครงการ ReactOS ได้เริ่มต้น[ 98 ]สาขาใหม่ของ ReactOS ที่เรียกว่าArwinss [ 99 ] และได้ประกาศอย่างเป็นทางการในเดือนมกราคม พ.ศ. 2553 [ 100 ] Arwinss เป็นการใช้งานทางเลือกของส่วนประกอบ Win32 หลัก และใช้ user32.dll และ gdi32.dll ของ Wine เวอร์ชันที่ไม่เปลี่ยนแปลงเป็นส่วนใหญ่
  • WineBottler [ 101 ]เป็นตัวห่อหุ้ม Wine ในรูปแบบของแอปพลิเคชัน Mac ทั่วไป โดยจะจัดการการกำหนดค่า Wine หลายรายการสำหรับโปรแกรมต่างๆ ในรูปแบบของ "ขวด"
  • Wineskinเป็นตัวจัดการการกำหนดค่า GUI ของ Wine แบบโอเพนซอร์สสำหรับmacOS Wineskin สร้างตัวห่อหุ้มรอบ Wine ในรูปแบบของแอปพลิเคชัน Mac ทั่วไป ตัวห่อหุ้มนี้ยังสามารถใช้เพื่อสร้าง "พอร์ต" ของซอฟต์แวร์ที่สามารถแจกจ่ายได้[ 102 ]
  • Odinคือโปรเจกต์สำหรับรันไบนารี Win32 บนOS/2หรือแปลงให้เป็นรูปแบบดั้งเดิมของ OS/2 โปรเจกต์นี้ยังจัดเตรียม API Odin32 สำหรับคอมไพล์โปรแกรม Win32 สำหรับ OS/2 อีกด้วย
  • ผลิตภัณฑ์เวอร์ชวลไลเซชัน เช่นParallels Desktop สำหรับ MacและVirtualBoxใช้ WineD3D เพื่อใช้ประโยชน์จาก GPU
  • WinOnX เป็นแพ็กเกจเชิงพาณิชย์ของ Wine สำหรับ macOS ที่มี GUI สำหรับเพิ่มและจัดการแอปพลิเคชันและเครื่องเสมือน[ 103 ]
  • WineD3D สำหรับ Windows เป็นตัวห่อความเข้ากันได้ซึ่งจำลองเวอร์ชัน Direct3D เก่าและคุณสมบัติที่ Microsoft ลบออกใน Windows รุ่นล่าสุดโดยใช้ OpenGL ซึ่งบางครั้งทำให้เกมเก่าๆ กลับมาใช้งานได้อีกครั้ง[ 40 ]
  • Apple Game Porting Toolkit ชุดซอฟต์แวร์ที่เปิดตัวในงาน Apple Worldwide Developer Conferenceในเดือนมิถุนายน 2023 เพื่ออำนวยความสะดวกในการพอร์ตเกมจาก Windows ไปยัง Mac [ 104 ]
  • FEX-Emuสามารถรันแอปพลิเคชัน Linux x86 บน Linux ARM64 และสามารถใช้งานร่วมกับ Wine เพื่อรันแอปพลิเคชัน Windows ได้

เลิกผลิตแล้ว

  • Cedega / WineX : TransGaming Inc. (ปัจจุบันคือFindev Inc.หลังจากการขายธุรกิจซอฟต์แวร์) ผลิตซอฟต์แวร์ Cedega ที่เป็นกรรมสิทธิ์ เดิมชื่อ WineX Cedega เป็นการแยกสาขา มา จาก Wine เวอร์ชันสุดท้ายที่ได้รับอนุญาตภายใต้ MIT ในปี 2545 เช่นเดียวกับ CrossOver Games ซอฟต์แวร์ Cedega ของ TransGaming มุ่งเป้าไปที่การใช้งานวิดีโอเกมบน Windows เมื่อวันที่ 7 มกราคม 2554 TransGaming Inc. ประกาศการพัฒนาเทคโนโลยี Cedega อย่างต่อเนื่องภายใต้โปรแกรม GameTree Developer TransGaming Inc. อนุญาตให้สมาชิกใช้ Cedega ID และรหัสผ่านต่อไปได้จนถึงวันที่ 28 กุมภาพันธ์ 2554 [ 105 ]
  • Cider : TransGaming ยังผลิต Cider ซึ่งเป็นไลบรารีสำหรับ เครื่อง Macintosh ที่ ใช้สถาปัตยกรรม Apple–Intelแทนที่จะเป็นผลิตภัณฑ์สำหรับผู้ใช้ทั่วไป Cider (เช่นเดียวกับ Winelib) เป็นตัวห่อหุ้ม ที่ช่วยให้นักพัฒนาสามารถปรับแต่งเกมของตนให้ทำงานบน เครื่อง Mac ที่ใช้ Intelได้โดยตรงโดยไม่ต้องเปลี่ยนแปลงซอร์สโค้ดใดๆ
  • Darwine : พอร์ตของไลบรารี Wine ไปยังDarwinและ Mac OS X สำหรับสถาปัตยกรรม PowerPC และIntel x86 (32 บิต) สร้างโดย ทีม OpenDarwinในปี 2547 [ 106 ] [ 107 ]เวอร์ชัน PowerPC อาศัย QEMU [ 108 ] Darwine ถูกรวมกลับเข้ากับ Wine ในปี 2552 [ 109 ] [ 110 ]
  • E/OS LX : โครงการที่พยายามทำให้โปรแกรมใดๆ ที่ออกแบบมาสำหรับระบบปฏิบัติการใดๆ ก็ตาม สามารถทำงานได้โดยไม่จำเป็นต้องติดตั้งระบบปฏิบัติการอื่นใดเพิ่มเติม
  • Pipelight : เวอร์ชันที่กำหนดเองของ Wine (wine-compholio) ที่ทำหน้าที่เป็นตัวห่อหุ้ม ปลั๊กอิน Windows NPAPIภายในเบราว์เซอร์ Linux [ 111 ]เครื่องมือนี้อนุญาตให้ผู้ใช้ Linux เรียกใช้Microsoft Silverlightซึ่งเป็นเวอร์ชันเทียบเท่าของAdobe Flashและปลั๊กอินเว็บ Unityพร้อมกับปลั๊กอิน NPAPI อื่นๆ อีกมากมาย โครงการนี้มีชุดแพตช์ที่ครอบคลุมสำหรับโครงการ Wine ต้นทาง[ 112 ]ซึ่งบางส่วนได้รับการอนุมัติและเพิ่มลงใน Wine ต้นทาง Pipelight นั้นล้าสมัยไปแล้วเป็นส่วนใหญ่ เนื่องจากเบราว์เซอร์สมัยใหม่ไม่รองรับปลั๊กอิน NPAPI อีกต่อไป และ Silverlight ก็ถูกยกเลิกการใช้งานโดย Microsoft แล้ว[ 113 ]

แผนกต้อนรับ

โครงการไวน์นี้ได้รับการร้องเรียนและข้อกังวลทั้งในเชิงเทคนิคและเชิงปรัชญามามากมายตลอดหลายปีที่ผ่านมา

ความปลอดภัย

เนื่องจากความสามารถของ Wine ในการรันโค้ดไบนารีของ Windows ทำให้เกิดความกังวลเกี่ยวกับไวรัสและมัลแวร์ของ Windows ที่ส่งผลกระทบต่อระบบปฏิบัติการแบบ Unix [ 114 ]เนื่องจาก Wine สามารถรันมัลแวร์ที่สร้างขึ้นสำหรับ Windows ได้ในระดับจำกัด การวิเคราะห์ความปลอดภัยในปี 2018 พบว่าตัวอย่างมัลแวร์ 5 ใน 30 ตัวอย่างสามารถรันผ่าน Wine ได้สำเร็จ ซึ่งเป็นอัตราที่ค่อนข้างต่ำ แต่ก็ยังก่อให้เกิดความเสี่ยงด้านความปลอดภัย[ 115 ]ด้วยเหตุนี้ นักพัฒนา Wine จึงแนะนำว่าไม่ควรรันในฐานะผู้ใช้ระดับสูงสุด[ 116 ]ซอฟต์แวร์วิจัยมัลแวร์ เช่นZeroWine [ 117 ]รัน Wine บน Linux ในเครื่องเสมือนเพื่อแยกมัลแวร์ออกจากระบบโฮสต์อย่างสมบูรณ์ ทางเลือกอื่นในการปรับปรุงความปลอดภัยโดยไม่เสียค่าใช้จ่ายด้านประสิทธิภาพของการใช้เครื่องเสมือน คือการรัน Wine ใน คอนเทนเนอร์ LXCดังเช่นที่ ซอฟต์แวร์ Anboxทำโดยค่าเริ่มต้นกับAndroid

ข้อกังวลด้านความปลอดภัยอีกประการหนึ่งคือ เมื่อข้อกำหนดที่นำมาใช้ได้รับการออกแบบไม่ดีและทำให้เกิดช่องโหว่ด้านความปลอดภัย เนื่องจาก Wine นำข้อกำหนดเหล่านี้มาใช้ จึงมีแนวโน้มที่จะนำช่องโหว่ด้านความปลอดภัยใดๆ ที่มีอยู่ในนั้นมาใช้ด้วย ตัวอย่างหนึ่งของปัญหานี้คือช่องโหว่ Windows Metafile ในปี 2006 ซึ่ง Wine นำ SETABORTPROC escape ที่มีช่องโหว่มาใช้[ 118 ] [ 119 ]

Wine เทียบกับแอปพลิเคชัน Unix ดั้งเดิม

ข้อกังวลทั่วไปเกี่ยวกับ Wine คือ การมีอยู่ของมันหมายความว่าผู้จำหน่ายซอฟต์แวร์มีแนวโน้มที่จะเขียนแอปพลิเคชันแบบเนทีฟสำหรับ Linux, macOS และ BSD น้อยลง ตัวอย่างเช่น ระบบปฏิบัติการOS/2 Warpของ IBM ในปี 1994 นั้นน่าสนใจ บทความหนึ่งได้อธิบายถึงจุดอ่อนของ OS/2 ที่ทำให้มันล้มเหลว โดยจุดอ่อนข้อแรกคือ:

OS/2 มีความเข้ากันได้ดีเยี่ยมกับแอปพลิเคชัน DOS และ Windows 3.1 ไม่ นี่ไม่ใช่ข้อผิดพลาด ผู้จำหน่ายแอปพลิเคชันหลายรายโต้แย้งว่าการพัฒนาแอป DOS หรือ Windows จะทำให้เข้าถึงตลาด OS/2 ได้นอกเหนือจากตลาด DOS/Windows และพวกเขาไม่ได้พัฒนาแอปพลิเคชัน OS/2 ดั้งเดิม[ 120 ]

อย่างไรก็ตาม OS/2 ประสบปัญหามากมายในด้านการยอมรับจากผู้ใช้ปลายทาง ปัญหาที่ร้ายแรงที่สุดอาจเป็นเรื่องที่คอมพิวเตอร์ส่วนใหญ่ที่วางขายนั้นมาพร้อมกับ DOS และ Windows อยู่แล้ว และหลายคนไม่ได้สนใจที่จะประเมินคุณสมบัติของ OS/2 เนื่องจากมีระบบปฏิบัติการอยู่แล้ว การ "รวม" DOS และ Windows และผลกระทบที่เกิดขึ้นกับตลาดระบบปฏิบัติการนั้นถูกหยิบยกขึ้นมาพูดถึงบ่อยครั้งในคดีUnited States v. Microsoft Corporation

โครงการ Wine เองได้ตอบข้อร้องเรียนเฉพาะเรื่องการ "สนับสนุน" การพัฒนา Windows API อย่างต่อเนื่องใน หน้า วิกิ หน้าหนึ่งของโครงการ :

สำหรับคนส่วนใหญ่ ยังคงมีโปรแกรมจำนวนหนึ่งที่ทำให้พวกเขาต้องใช้ Windows อยู่ เห็นได้ชัดว่า Microsoft Office จะไม่มีวันถูกพอร์ตไปยัง Linux อย่างไรก็ตาม โปรแกรมเวอร์ชันเก่าอย่าง TurboTax ก็จะไม่ถูกพอร์ตเช่นกัน ในทำนองเดียวกัน มีเกมและแอปพลิเคชันภายในองค์กรอีกหลายหมื่นรายการที่จะไม่มีวันถูกพอร์ต หากคุณต้องการใช้ Linux และต้องพึ่งพาแอปพลิเคชัน Windows รุ่นเก่า โปรแกรมอย่าง Wine ถือเป็นสิ่งจำเป็น... Wine ทำให้ Linux มีประโยชน์มากขึ้นและช่วยให้ผู้ใช้หลายล้านคนเปลี่ยนมาใช้ Linux ได้ ซึ่งหากไม่มี Wine พวกเขาไม่สามารถทำได้ สิ่งนี้ช่วยเพิ่มส่วนแบ่งการตลาดของ Linux อย่างมาก ดึงดูดนักพัฒนาเชิงพาณิชย์และชุมชนให้มาใช้ Linux มากขึ้น[ 121 ]

นอกจากนี้ หน้า Wine Wiki ยังอ้างว่า Wine สามารถช่วยแก้ปัญหาไก่กับไข่สำหรับLinux บนเดสก์ท็อปได้ : [ 122 ]

นี่จึงนำเรามาสู่ปัญหาไก่กับไข่ของลินุกซ์บนเดสก์ท็อป ตราบใดที่ลินุกซ์ยังไม่มีแอปพลิเคชันที่เทียบเท่ากับแอปพลิเคชันข้างต้น ส่วนแบ่งการตลาดของลินุกซ์บนเดสก์ท็อปก็จะหยุดนิ่ง แต่ตราบใดที่ส่วนแบ่งการตลาดของลินุกซ์บนเดสก์ท็อปยังไม่เพิ่มขึ้น ก็จะไม่มีผู้ผลิตรายใดพัฒนาแอปพลิเคชันสำหรับลินุกซ์ แล้วเราจะทำลายวงจรเลวร้ายนี้ได้อย่างไร?

Wine สามารถให้คำตอบได้อีกครั้ง ด้วยการอนุญาตให้ผู้ใช้ใช้งานแอปพลิเคชัน Windows ที่พวกเขาลงทุนเวลาและเงินไปแล้ว Wine จึงลดอุปสรรคที่ขัดขวางการเปลี่ยนมาใช้ Linux ลงอย่างมาก ซึ่งจะทำให้ Linux สามารถเติบโตบนเดสก์ท็อปได้ และเพิ่มส่วนแบ่งการตลาดในกลุ่มนั้น ในทางกลับกัน สิ่งนี้จะทำให้บริษัทต่างๆ สามารถผลิตแอปพลิเคชันเวอร์ชัน Linux และพัฒนาผลิตภัณฑ์ใหม่ๆ สำหรับตลาด Linux โดยเฉพาะได้

เหตุผลนี้อาจถูกปัดทิ้งไปได้ง่ายๆ หาก Wine สามารถเล่นได้แค่เกม Solitaire เท่านั้น แต่ในปัจจุบัน Wine สามารถใช้งาน Microsoft Office, โปรแกรมมัลติมีเดีย เช่น QuickTime และ Windows Media Player รวมถึงเกมอย่าง Max Payne หรือ Unreal Tournament 3 ได้แล้ว แทบทุกโปรแกรมที่ซับซ้อนก็สามารถใช้งานได้ดีหากใช้เวลาสักหน่อย และทุกครั้งที่มีการพัฒนาเพื่อเพิ่มโปรแกรมหนึ่งลงในรายการนี้ โปรแกรมอื่นๆ อีกมากมายก็จะได้รับประโยชน์และสามารถใช้งานได้เช่นกัน

ลองดูฐานข้อมูลแอปพลิเคชันของเราเพื่อทำความเข้าใจว่าสามารถเรียกใช้แอปพลิเคชันใดได้บ้างภายใต้ Wine

การใช้ Wine สำหรับการเล่นเกมพิสูจน์ให้เห็นถึงความขัดแย้งโดยเฉพาะในชุมชน Linux เนื่องจากบางคนรู้สึกว่ามันขัดขวางหรืออย่างน้อยก็เป็นอุปสรรคต่อการเติบโตของการเล่นเกม Linux ดั้งเดิม บนแพลตฟอร์ม[ 123 ] [ 124 ] [ 125 ]อย่างไรก็ตาม จุดเด่นอย่างหนึ่งคือ Wine สามารถเรียกใช้ แอปพลิเคชันและเกม 16 บิตและแม้แต่32 บิต บาง แอปพลิเคชันที่ไม่สามารถเรียกใช้บนWindows เวอร์ชัน64 บิต ในปัจจุบันได้ [ 126 ]กรณีการใช้งานนี้ทำให้มีการเรียกใช้ Wine บน Windows เองผ่านWindows Subsystem for Linux หรือ เครื่องเสมือนของบุคคลที่สามรวมถึงการห่อหุ้มด้วยวิธีการต่างๆ เช่น BoxedWine [ 127 ]และ otvdm [ 128 ]

ไมโครซอฟต์

จนกระทั่งปี 2020 ไมโครซอฟต์ไม่ได้ออกแถลงการณ์ใดๆ เกี่ยวกับ Wine อย่างเป็นทางการ อย่างไรก็ตาม บริการ อัปเดต Windowsออนไลน์จะบล็อกการอัปเดตแอปพลิเคชันของไมโครซอฟต์ที่ทำงานใน Wine เมื่อวันที่ 16 กุมภาพันธ์ 2005 อีวาน ลีโอ ปูโอติ ค้นพบว่าไมโครซอฟต์ได้เริ่มตรวจสอบรีจิสทรีของ Windowsเพื่อหาคีย์การกำหนดค่า Wine และจะบล็อกการอัปเดต Windows สำหรับส่วนประกอบใดๆ[ 129 ]ดังที่ปูโอติกล่าวไว้ว่า "นี่เป็นครั้งแรกที่ไมโครซอฟต์ยอมรับการมีอยู่ของ Wine"

ในเดือนมกราคม 2020 ไมโครซอฟต์อ้างถึง Wine เป็นผลดีจากการที่สามารถนำ API กลับมาใช้ใหม่ได้ ใน คำแถลงการณ์ ในฐานะเพื่อนศาลสำหรับคดีGoogle LLC v. Oracle America, Inc. [ 130 ]

ในเดือนสิงหาคม พ.ศ. 2567 ไมโครซอฟต์ได้บริจาคโครงการ Monoซึ่งเป็นการนำ . NET Framework มาสร้างใหม่ ให้แก่นักพัฒนา Wine [ 131 ]

ดูเพิ่มเติม

ทางเลือกอื่นๆ

  • Cooperative Linux – ซอฟต์แวร์ที่ช่วยให้สามารถใช้งาน Windows และ Linux ได้พร้อมกัน 
  • Windows Subsystem for Linux – คุณสมบัติสำหรับสภาพแวดล้อม Linux ใน Windows 

หมายเหตุ

  1. เดิมทีเป็นตัวย่อแบบเรียกซ้ำสำหรับ "Wine Is Not an Emulator " [ 9 ]

อ่านเพิ่มเติม

  • คำตอบเรื่องไวน์ของเจเรมี ไวท์ – บทสัมภาษณ์เจเรมี ไวท์ จากCodeWeavers บน Slashdot
  • "Mad Penguin: บทสัมภาษณ์กับJeremy White ผู้ก่อตั้ง CodeWeavers" 25พฤษภาคม2004เก็บถาวรจากต้นฉบับเมื่อวันที่ 7 ตุลาคม 2015
  • แต่งตั้งศูนย์กฎหมายเพื่อเสรีภาพซอฟต์แวร์เป็นที่ปรึกษาทางกฎหมายเพื่อเป็นตัวแทนโครงการ Wine
  • ไวน์: ที่มา วิธีใช้ และอนาคตของมัน – ผลงานของ แดน เคเกล
  • เว็บไซต์อย่างเป็นทางการแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Wine_(software)&oldid=1361490499 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไวน์ (ซอฟต์แวร์)

Wine เป็นเลเยอร์ความเข้ากันได้ที่ช่วยให้ซอฟต์แวร์แอปพลิเคชันและเกมคอมพิวเตอร์ที่พัฒนาขึ้นสำหรับMicrosoft Windowsสามารถทำงานบนระบบปฏิบัติการที่คล้าย Unix ได้ Wine เป็น ซอฟต์แวร์

ประวัติศาสตร์

Bob Amstadt หัวหน้าโครงการเริ่มต้น และ Eric Youngdale เริ่มโครงการ Wine ในปี 1993 เพื่อเป็นวิธีการเรียกใช้แอปพลิเคชัน Windows บน Linux โดย ได้รับแรงบันดาลใจจากผลิตภัณฑ์ ของ Sun Microsystems สองรายการ ได้แก่ Wabi สำหรับ ระบบปฏิบัติการ Solaris และ Public...

การสนับสนุนจากองค์กร

ผู้สนับสนุนหลักของ Wine คือ CodeWeavers ซึ่งจ้าง Julliard และนักพัฒนา Wine คนอื่นๆ อีกมากมายให้ทำงานเกี่ยวกับ Wine และ CrossOver ซึ่งเป็นเวอร์ชัน Wine ที่ CodeWeavers ให้การสนับสนุน CrossOver...

ออกแบบ

เป้าหมายของ Wine คือการนำ API ของ Windows มาใช้ ทั้งหมดหรือบางส่วนตามที่โปรแกรมต่างๆ ที่ผู้ใช้ Wine ต้องการเรียกใช้บนระบบปฏิบัติการที่คล้าย Unix