WINE
Wine (Wine is not Emulator) jest programem, który tworzy środowisko WinAPI.
Umożliwia on uruchamianie windowsowych programów pod linuxem.
„Emulator" (Wine to nie emulator) posiada kilka zalet w stosunku do maszyny wirtualnej.
W przypadku korzystania z maszyny wirtualnej, nadal potrzebujemy systemu. A jeśli chcemy być uczciwi ;-) to np. windowsa powinniśmy kupić. Wiadomo też, że windows i aplikacja dla niego są bardzo rozpowszechnione, więc kusząca może się wydawać perspektywa znalezienia sposobu uruchamiania programów na innych systemach, gdyż jednorodność jest zazwyczaj bardzo niebezpieczna (nie należy mylić jednorodności ze standaryzacją). Wine właśnie nam to umożliwia.
Właściwości:
Kompatybilność binariów
Wspiera uruchamianie binariów pod Win32 (9x/NT/XP), Win 3.x i Dos
Wspiera wywołania funkcji dla Win32 i Win16
Umożliwia uruchamianie 32 i 16 bitowego kodu na x86
Posiada duża bibliotekę przerwań bu programy korzystające z INTxx mogły z nich korzystać
Możliwość skorzystania z zewnętrznych DLL'i.
Wsparcie Grafiki
Wspiera grafikę bazującą na X11, SDL, oraz wyświetlanie tekstu (tty)
Ma możliwość zdalnego wyświetlania X-terminalu
W pełni wspiera GDI oraz wiele nowych właściwości GDI32
Częściowe wsparcie DirectX dla gier (ograniczenia dla Direct3D)
Wspiera oryginalne sterowniki drukarek pod Win 16
Posiada wewnętrzny interfejs postscriptowy
Inne:
Dobre wsparcie obsługi dźwięku
Wspiera modemy i inne urządzenia szeregowe
Obsługa TCP/IP
Wsparcie dla skanerów ASPI
Obsługa zaawansowanych kontrolerów pod Win32
Wine API:
Zaprojektowany w zgodności z kodem Win32
Automatyczna dokumentacja
32 bitowy kompilator
Wsparcie dla 16 języków
Wbudowany debuger
Korzyści z użytkowania:
Umożliwia połączenie korzyści wynikających z zalet linuxa (np. odporności na wirusy) i aplikacji Windowsowych
Połączenie bardzo dobrych skryptów Linuxowych i aplikacji Windowsowych (wydaje się, że lepszych)
Możliwość uruchamiania aplikacji na odległość
Po zainstalowaniu Wine'a na serwerze linuxowym wraz z aplikacjami Windowsowymi możemy uruchamiać je z dowolnego terminalu
Z racji tego że Wine jest open sourcowy można własnoręcznie dostosować go do własnych potrzeb.
Instalacja i konfiguracja
Instalacja ze źródeł
ściągamy i rozpakowujemy źródła tar zxvf Wine-YYYYMMDD.tar.gz
W katalogu ze źródłami wykonujemy ./configure && make depend && make
instalacja su -c "make install" (jako root)
Instalacja binariów
RPM: rpm -iv wine-YYYYMMDD-i386.rpm (as root)
Debian: apt-get install wine
Konfiguracja:
Od maja 2004 Wine konfiguruje się praktycznie sam.
Plik konfiguracyjny to ~/.wine/config
Dyski
Z uwagi że pod linuxem i windowsem są różne struktury plików musimy ręcznie je domontować.
Każdemu Windowsowemu dyskowi należy stworzyć odpowiednią sekcję o nazwei Drive #, gdzie # to litera dysku. Następnie w sekcji tej należy ustawić następujące parametry:
Path:
UNIX-owa ścieżka odpowiadająca dyskowi;
Type:
typ dysku, możliwe wartości to: floppy - dyskietka, hd - normalny dysk, cdrom , network - dysk sieciowy;
Label:
etykieta dysku, maksymalnie 11 znaków, parametr opcjonalny
Serial:
numer seryjny, 8 znakowa liczba hexadecymalna, parametr opcjonalny
Filesystem:
system plików. Zalecane wartości to msdos dla systemu FAT-16 lub win95 dla VFAT, FAT32, NTFS lub partycji Linuxowych. Dopuszczalną wartością jest także unix, ale nie jest ona zalecana, gdyż mogą wystąpić pewne problemu z nazewnictwem plików;
Device:
UNIX-owa ścieżka do urządzenia odpowiadająca za dany dysk. Parametr jest opcjonalny i jeżeli jest podany, to wówczas WINE będzie umożliwiał bezpośredni dostęp do dysku. Może to być wykorzystywane dla dyskietek lub cdrom-ów, szczególnie jeżeli jakieś programy wymagają sprawdzania poprawności licencji albo czegoś w tym guście.
np.:
[Drive C]
"Path" = "/mnt/win_xp"
"Type" = "hd"
"Label" = "DYSK_C"
"Filesystem" = "win95"
"ReadVolInfo" = "true"
Fake Windows vs. MS Windows
WINE można skonfigurować tak, aby korzystał z istniejącej kopii Windowsów, i wówczas wszelkie biblioteki, które nie zostały zaimplementowane będą brane z oryginalnych Windowsów, lub z tzw. "fake Windows directory", czyli bez niczego. W przypadku pierwszym należy zauważyć, że nie zalecane jest korzystanie z Windowsów z serii NT (WinNT, Win2K, WinXP czy nowszych) tylko z Win9x. Spowodowane to jest sporymi zmianami w bibliotekach i w ogóle w systemie jako takim jaki się dokonał pomiędzy serią 9x a NT. Tak czy owak, w pliku konfiguracyjnym w sekcji wine należy ustawić odpowiednie opcje:
Windows:
ścieżka do głównego katalogu Windows;
System:
ścieżka do katalogu z bibliotekami, w przypadku Win9x jest to katalog system w katalogu głównym Windows, a w WinNT jest to katalog system32;
Temp:
katalog na pliki tymczasowe. Zazwyczaj katalog Temp w katalogu Windowsów, ale np. ja sobie to ustawiłem na T:\\, a z kolei dysk T wskazuje u mnie na /tmp;
Path:
zmienna środowiskowa Path. Zazwyczaj wystarczy podać tutaj te same ścieżki co w opcji Windows i System oddzielone średnikiem;
Profile:
ścieżka do katalogu z profilem. Należy ustawić tylko jeżeli WINE ma symulować WinNT (o czym niżej).
Resztę opcji należy zostawić tak jak są.. Należy również zauważyć, że backslashe ("\") należy "uniknąćuquot; i zamienić na "\\".
Jeszcze co do konfiguracji z fake Windows directory to należy się upewnić żeby podane katalogi istniały w rzeczywistości..
Symulacja
WINE może się przedstawiać jako wiele wersji Windowsów. Zmienia się to bardzo prosto, bo zmeiniając opcję Windwos w sekcji Version. Dopuszczalne wartości to: win95, win98, winme, nt351, nt40, win2k, winxp, win20, win30, win31.
Użycie:
np.:
$ wine "c:\program files\appname\appname.exe"
$ wine c:\\program files\\appname\\appname.exe
posłużono się materiałami ze stron: www.winehq.com i www.projektcode.org