ไวน์ไม่ใช่ตัวเลียนแบบได้อย่างไร


23

เมื่อฉันเข้าใจอีมูเลเตอร์ (ในวิธีที่ง่าย) พวกเขาทำการแปลหรือแทนที่การเรียกใช้ฟังก์ชันของโปรแกรมโดยใช้ฟังก์ชั่นของ System X เป็นฟังก์ชั่นที่ใช้โดยระบบ Y ซึ่งโปรแกรมกำลังทำงานอยู่ โครงการไวน์อ้างว่าไวน์ไม่ใช่ผู้เลียนแบบเพราะ:

แทนที่จะจำลองตรรกะภายในของ Windows เช่นเครื่องเสมือนหรือเครื่องจำลองไวน์แปลการเรียก Windows API เป็นการเรียก POSIX ได้ทันทีกำจัดประสิทธิภาพและหน่วยความจำของวิธีอื่น ๆ และอนุญาตให้คุณรวมแอปพลิเคชัน Windows เข้ากับเดสก์ท็อปของคุณ

อีมูเลเตอร์และเครื่องเสมือนจำลองตรรกะ Windows ภายในในระบบโฮสต์ที่ไม่ใช่ Windows อย่างไร นั่นไม่ใช่โดยการแปลการเรียกระบบ Windows เป็นการโทรตามลำดับของโฮสต์หรือไม่ ความแตกต่างระหว่างอีมูเลเตอร์และไม่ใช่อีมูเลเตอร์ (เช่นไวน์) คืออีมูเลเตอร์จำลองระบบปฏิบัติการทั้งหมดจากนั้นแอปพลิเคชันจะใช้ API ของระบบนั้นโดยไม่ทราบว่ามันกำลังพูดคุยกับอีมูเลเตอร์ และแอปพลิเคชันอาจไม่ทราบ) การเพิ่มระดับทางอ้อมนั้นแตกต่างกันระหว่างอีมูเลเตอร์และไวน์หรือไม่


7
โดยทั่วไปเมื่อคนในคอมพิวเตอร์ใช้คำว่า "อีมูเลเตอร์" พวกเขาหมายถึงฮาร์ดแวร์อีมูเลเตอร์ซึ่งเป็นซอฟต์แวร์ที่เลียนแบบฮาร์ดแวร์ ในแง่นี้ไวน์ไม่ใช่ตัวเลียนแบบ อย่างไรก็ตามในความหมายของคำในพจนานุกรมไวน์จะเลียนแบบ Windows และในแง่นี้คุณสามารถเรียก Wine a Windows emulator ได้
Christoffer Hammarström

1
WINE ยังเป็น backronym ที่ยืดออกไปเล็กน้อยซึ่งเป็นอารมณ์ขันที่ดึงดูดความสนใจของบุคลิกภาพที่จำเป็นในการสร้าง WINE ในตอนแรก
RBerteig

คำตอบ:


29

อีมูเลเตอร์และเครื่องเสมือนจำลองตรรกะ Windows ภายในในระบบโฮสต์ที่ไม่ใช่ Windows อย่างไร นั่นไม่ใช่โดยการแปลการเรียกระบบ Windows เป็นการโทรตามลำดับของโฮสต์หรือไม่

ไม่หรืออย่างน้อยก็ไม่ได้อยู่ในแง่ที่ว่าไวน์ทำ - โดยการแปลระบบเรียกหนึ่งถึงหนึ่งในพื้นที่ผู้ใช้ ตัวจำลองทำสิ่งนี้อย่างเป็นนามธรรมผ่านเส้นทางที่มีวงจรมากขึ้น มันไม่ได้แปลการโทรของระบบโดยตรง

จริงจำลองสร้างเสมือนเครื่อง (เช่น x86-64) ไม่ได้เป็นเสมือนระบบปฏิบัติการ ในทางทฤษฎีแล้วคุณสามารถเรียกใช้ระบบปฏิบัติการใดก็ได้ที่กำหนดเป้าหมายรูปแบบของเครื่อง โดยทั่วไป "อีมูเลเตอร์" รวมถึงระบบปฏิบัติการ แต่นั่นไม่ใช่สิ่งที่มันจำลอง ระบบปฏิบัติการนั้นรวมอยู่ในระบบเดียวกันกับที่ใช้กับเครื่องจริง

บางครั้งอีมูเลเตอร์ใช้เพื่อจำลองฮาร์ดแวร์ที่แตกต่างจากเครื่องโฮสต์ แต่ก็มีฮาร์ดแวร์ที่เหมือนกันทุกประการสำหรับการใช้งานระบบปฏิบัติการหนึ่งระบบภายในเครื่องอื่น

ไวน์แตกต่างจากที่กล่าวไว้ในที่นี้ไม่ใช่หน้าต่างจริง ๆ คุณสามารถเรียกใช้อีมูเลเตอร์ x86-64 พร้อมสำเนาหน้าต่างจริงไว้ข้างใน แต่นั่นไม่ใช่สิ่งที่ WINE เป็น พวกเขาอ้างว่าจริง ๆ แล้วมันมีประสิทธิภาพมากกว่าอีมูเลเตอร์ที่สมเหตุสมผล - ค่าใช้จ่ายเพียงแค่การแปลการเรียกระบบอาจต่ำกว่าการเรียกใช้ VM ข้อเสียคือไวน์สามารถเป็น windows ได้เท่านั้น คุณไม่สามารถใช้กับระบบปฏิบัติการอื่น ๆ ได้เนื่องจากคุณสามารถใช้ VM ปกติได้


13

พิจารณา Java Virtual Machines ไม่มี JVM เลียนแบบอื่นใดพวกเขาทั้งหมดใช้งานข้อมูลจำเพาะ ไวน์ไม่ได้เลียนแบบ win32 api แต่เป็นการนำไปปฏิบัติ สเป็คและความเป็นจริงไม่จำเป็นต้องตรงกันทั้งการใช้งานของ Microsoft และการนำไปใช้ของไวน์มีวิธีแก้ไขปัญหาเพื่อให้โค้ด buggy ทำงานได้และไม่จำเป็นต้องชัดเจนว่าการใช้งานใดเป็นเป้าหมายที่ดีกว่าสำหรับโครงการใดก็ตาม


4

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


0

Emulators จำลองเสมือนตัวประมวลผลและ / หรือระบบปฏิบัติการซึ่งปกติจะรันแอพพลิเคชั่น Windows โดยการสร้างตรรกะและพฤติกรรมของแพลตฟอร์ม OS / โปรเซสเซอร์ในแอพพลิเคชั่นอีมูเลเตอร์ซึ่งทำงานบนแพลตฟอร์ม OS / โปรเซสเซอร์อื่น Wine ไม่ได้จำลองพฤติกรรมของระบบปฏิบัติการ Windows / โปรเซสเซอร์ แต่ใช้งานแอพพลิเคชั่น Windows ที่ระดับนามธรรมเท่ากับ Windows OS ทำได้โดยการนำ Windows API ไปใช้ใหม่เพื่อรันโดยตรงบนแพลตฟอร์ม OS / โปรเซสเซอร์ที่ใช้ Unix นั่นคือไวน์เป็นการใช้งานองค์ประกอบหลักของ Windows OS อีกครั้งซึ่งเป็นชุดของ DLL ที่คอมไพล์ซึ่งแปลการร้องขอการเรียก Windows API โดยตรงเป็นโค้ดที่ใช้ Unix ที่เทียบเท่ากับการสื่อสารโดยตรงกับตัวประมวลผลทางกายภาพ

ซึ่งหมายความว่าบางครั้งมีบริบทเวลาทำงานซึ่งจะทำให้ Wine + Linux สามารถเรียกใช้แอปพลิเคชัน Windows ได้เร็วกว่า Windows! Emulator ไม่สามารถมีความเป็นไปได้เพราะรหัสของมันจะยุ่งอยู่กับการจำลองแพลตฟอร์ม CPU / WinOS ที่ด้านบนของแพลตฟอร์มที่ใช้ Unix ในระดับที่สูงกว่าของนามธรรม ในกรณีนี้จำเป็นต้องมีการแปลและอินเทอร์เฟซเพิ่มเติมเพื่อเรียกใช้แอปพลิเคชัน Windows (ดูแผนภาพด้านล่าง)

กล่าวโดยย่อคือไวน์เป็นการใช้งาน Windows อีกครั้งไม่ใช่การเลียนแบบ Windows

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.