Apakah anggur merupakan emulator atau lapisan kompatibilitas?

8

Kemarin, saya melakukan diskusi panas dengan salah satu teman saya (pengguna Windows). Dia mengatakan Wine hanyalah sebuah emulator. Saya mengatakan tidak ada Wine yang dibaca sebagai "Wine bukan emulator". Lalu dia memberi saya banyak tautan termasuk halaman wiki WineHQ . "Wine bukan emulator semacam itu" tertulis di sana.

Jadi saya ingin bertanya apakah Wine adalah emulator mengapa ia menyebut dirinya "Wine bukan emulator"?

puneet
sumber
7
Anggur singkatan dari " W ine aku s N ot sebuah E mulator".
1
Buat dia membaca apa yang ada di bawah judul "Wine bukan emulator semacam itu".
Oxwivi
Tertulis dengan jelas 'Wine tidak melakukan emulasi CPU - karenanya nama "Wine Is Not an Emulator."'
Oxwivi
Anggur bukan jenis emulator tapi masih emulator ?? Wine tidak melakukan emulasi CPU lalu apa yang ditiru Wine?
puneet
itu hanya mengemulasi perpustakaan windows . Jadi panggilan API dari suatu perangkat lunak dicontoh, sisa kode perangkat lunak tidak, itu berjalan secara nativetly.
MestreLion

Jawaban:

14

Sebuah program di Windows menggunakan ekstensif pustaka standar milik Microsoft Windows. Perpustakaan-perpustakaan ini ditulis ulang dan diimplementasikan dalam Wine sehingga mereka melakukan hal yang sama. Semakin banyak program ditulis dengan baik dan perpustakaan standar, semakin besar kemungkinan program akan bekerja di Wine.

Kode program pertama kali diperiksa untuk memanggil pustaka Windows. Panggilan ini diterjemahkan sehingga perpustakaan Wine memanggil. Kemudian kode program dijalankan dengan kecepatan penuh. Tidak ada kode yang ditiru, tetapi hanya panggilan ke perpustakaan yang diterjemahkan.

Karena itu, secara teori. sebuah program harus bekerja secepat Microsoft Windows. Dalam praktiknya, program mungkin lebih lambat, karena terjemahan dibuat. Tetapi ada kemungkinan program bekerja lebih cepat karena perpustakaan Wine lebih sederhana, dan karena akses disk sering lebih cepat di Linux.

Karena Linux menggunakan OpenGL, program Windows yang menggunakan OpenGL sering bekerja dengan baik di Wine. Linux tidak menggunakan DirectX - namun, game DirectX bekerja di Wine karena panggilan DirectX dapat diterjemahkan oleh Wine ke panggilan OpenGL.

glaasje
sumber
4
Kesimpulannya: Anggur adalah Lapisan Kompatibilitas, bukan Emulator.
Marco Ceppi
4

Dari tautan yang sama dengan yang Anda tunjuk pada "Wine tidak melakukan emulasi CPU" Itulah yang biasanya dilakukan oleh emulator (wii, psx, n64, dll)

Untuk jawaban yang lebih lengkap, Anda dapat membaca paragraf pertama dari tautan yang Anda berikan - saya rasa tidak ada yang bisa menjelaskannya dengan cara yang lebih baik.

Chriskin
sumber