와인 (소프트웨어)

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
와인
WINE-logo.png
Wineie on ubuntu.png
우분투에서 실행 중인 와인 인터넷 익스플로러 스크린샷.
원저자 알렉상드르 줄리어드
개발자 와인 개발 팀
발표일 1993년 7월 4일
안정화 버전 1.6.2
(2014년 01월 10일, 289일 경과)[1]
미리보기 버전 1.7.14
(2014년 03월 07일, 233일 경과)

[2]

개발 상태 개발중
프로그래밍 언어 C
운영 체제 윈도, GNU/리눅스, BSD
크기 21.1 MB (압축됨)
종류 호환성 계층
라이선스 GNU LGPL v2.1+
웹사이트 www.winehq.org
K 데스크톱 환경에서의 와인 환경 설정 화면

와인(Wine)은 유닉스 계열 운영 체제X 윈도 시스템에서 마이크로소프트 윈도X86 프로그램을 실행시킬 수 있는 소프트웨어이다. 또한 윈도 프로그램을 유닉스 계열 시스템으로 포팅하는 것에도 와인 라이브러리를 사용할 수 있다.

개요[편집]

이름 ‘Wine’은 “Wine Is Not an Emulator”(와인은 에뮬레이터가 아니다.)에서 딴 재귀 약자이다. 사실 와인은 에뮬레이터보다는 호환성 계층에 더 가깝다. 이름을 대문자 혹은 소문자의 형태로 다 나타내기도 하지만, 개발자들은 미관상의 이유로 “Wine”을 권장하고 있다. 이름에서 알 수 있듯이 개발자들은 와인을 윈도 에뮬레이터라기보다는 유닉스 계열 운영 체제에서 윈도에서 제작된 바이너리 프로그램을 해독하는 계층이며, 와인 소개글과 홈페이지에서 이를 강조하고 있다.

와인은 LGPL로 배포되는 자유 소프트웨어이다. 와인은 원래 MIT 라이선스로 배포되었지만, Cedega같이 상용 버전의 와인이 프로젝트에 보답을 하지 않을 것을 우려하여,[3] 2002년 3월부터 LGPL로 배포되었다.[4].

12년간의 개발 끝에 2005년 10월 24일 와인 개발자들은 와인의 첫 베타 버전 0.9를 내놓았다.[5]. 이후 2010년 5월 ~ 7월 중순 사이에 1.1.x 베타 버전 다음으로 1.2-RC 버전이 꾸준히 업데이트가 이루어졌다.

2008년 6월 17일, 프로젝트가 진행된 지 15년째에 Wine의 첫 번째 안정 버전인 1.0이 출시됐다,[6] . 2010년 7월 16일, Wine의 두 번째 안정 버전인 1.2가 출시됐다.[7].

개발[편집]

Bob Amstadt(초기 프로젝트 관리자)와 Eric Youngdale1993년 리눅스에서 윈도 프로그램을 구동시키기 위해서 와인 프로젝트를 시작했다. 원래는 윈도 3.x용 프로그램을 위해서 개발되었지만 현재는 32비트 및 64비트 윈도용 프로그램을 실행시킬 수 있다. 이 프로젝트는 유즈넷comp.os.linux에서 처음 알려졌다.[8]. Alexandre Julliard가 1994년까지 프로젝트를 이끌어 갔다. 에뮬레이터로 작동하기보다 호환성 계층으로 작동하는 와인은 윈도 프로그램이 사용하는 DLL의 또 다른 구현을 제공한다. 와인 개발자들은 리눅스를 위해서 프로그램을 만들었으나 곧 FreeBSD, 솔라리스로 이식되었다[9] .

Win32 API의 문서가 완전하지 않았기 때문에 시간이 많이 걸리고 난이도가 높았다. 마이크로소프트가 Win32 표준을 문서화시킨 것이 있지만 파일 형식이나 프로토콜 같은 것은 문서가 제대로 되어 있지 않았고 심지어는 똑같이 작동하게 만들어야 할 버그도 있었다. 그래서 와인 팀은 역공학을 사용해서 함수와 파일 형식을 분석했다.

코렐은 많은 것을 도와 주었다. 코렐은 워드퍼펙트 오피스를 리눅스 플랫폼으로 옮기는 것에 관심을 보였다. 하지만 마이크로소프트가 이 회사에 투자한 이후로 리눅스 버전의 개발이 중단되었다. CodeWeavers에서 많은 현재 와인 개발자를 채용하였고 크로스오버라는 와인의 상용 버전을 만들기 시작했다.

개발 버전은 2주마다 한 번 업데이트된다.

구조[편집]

와인은 커널 모듈이 아닌, 사용자 공간에서 완전한 윈도 API를 구현한다. 윈도 커널에서 제공하는 서비스는 일반적으로 wineserver라는 데몬에 의해 제공된다. wineserver는 기본 윈도의 예외로 기본적인 윈도 기능뿐만 아니라, X 윈도 시스템과 통합 및 신호 변환을 구현한다. 와인은 윈도 커널의 일부를 구현했지만, 그것만으로 네이티브 윈도용 드라이버를 와인의 기본 구조로 인해 사용할 수 없다. 이것은 복사 방지 작업에서 특정 프로그램의 동작을 방해한다.

유용성[편집]

AppDB에서의 테스트 결과에 의한 응용 프로그램 호환성을 보여주는 애니메이션 (그림을 누르면 애니메이션을 볼 수 있다).      완벽하게 동작하는 소프트웨어 ("Platinum")      설정을 하면 완벽하게 동작하는 소프트웨어 ("Gold")      작은 문제를 가지고 있는 소프트웨어 ("Silver")      큰 문제를 지닌 소프트웨어 ("Bronze")      구동 불가능한 소프트웨어 ("Garbage")

와인에서 다이렉트3D를 지원하도록 한 개발자는 픽셀 세이더 같은 새로운 특징에 대한 개발을 완료했다고 밝혔다. [10] 와인은 또한 더 많은 프로그램을 구동시키기 위해 윈도의 네이티브 DLL을 직접 사용할 수 있지만 프로그램 자체에서 DLL을 가지고 있지 않으면 윈도 라이선스가 필요하다.

winecfg은 와인에 포함되어 있는 GUI 설정 프로그램이다. Winecfg는 직접 레지스트리를 수정하는 것을 필요하지 않게 함으로써 와인 설정을 쉽게 한다. 필요하다면 윈도의 Regedit와 비슷하면서도 더 가벼운 레지스트리 에디터를 쓸수 있다(와인에 포함됨). 와인은 또한 메모장, 워드패드, 제어판, 윈도 탐색기, 인터넷 익스플로러 같은 윈도 프로그램의 오픈소스 도구를 포함하고 있다.

AppDB는 와인에서 윈도 프로그램이 얼마나 잘 동작하는지 커뮤니티에서 테스트한 목록이다.

하위 호환성[편집]

와인이 윈도의 다른 버전을 모방하도록 구성할 수있는 방법을 보여주는 스크린샷.

와인은 윈도 3.1용으로 작성된 것을 비롯하여 오래된 윈도용 응용 프로그램과 좋은 하위 호환성을 보장한다.[11] 와인은 윈도 2.0을 요구하는 몇몇 프로그램도 구동할 수 있다.[12]

Wine은 64비트 컴퓨터에서 오래된 16비트 윈도 게임을 동작시킬 수 있다.

윈도를 최신 버전으로 업그레이드 할 경우 사용자가 기존에 사용하던 프로그램 중 일부를 업그레이드해야만 하는 것에 비해, 와인의 하위 호환성은 윈도보다 우수하다. 많은 경우에, 와인은 "호환성 모드"로 윈도의 최신 버전보다 더 오래된 프로그램에 대한 지원을 제공할 수 있다.[11]

와인은 64비트 CPU를 사용하는 64 비트 운영 체제에서 16비트 윈도용 프로그램을 실행할 수 있다. 마이크로소프트 윈도의 64비트 버전은 16비트 윈도용 프로그램을 구동할 수 없다[13].

와인은 부분적으로 윈도 콘솔 응용 프로그램을 지원하여, 사용자는 콘솔 관리를 사용하기 위해 백엔드를 사용할 것인지 선택할 수 있다.(선택에는 Raw streams, curses, user32가 있다)[14] raw streams나 curses 백엔드를 사용할 때, 윈도용 응용 프로그램은 유닉스 터미널 위에서 동작한다.

64비트 응용 프로그램[편집]

64비트 윈도 프로그램을 위한 예비 지원은 2008년 11월에 와인 1.1.10부터 되었다.[15] 이것은 보통 최신GCC 버전 4.4를 필요로하며, 와인 개발자들은 이것이 안정버전으로 지원하기 전까지 중요한 시간이라고 기대한다. 그러나 거의 모든 윈도 프로그램은 32비트 버전으로 존재하며, 32비트 버전의 와인은 64비트 플랫폼에서도 동작하기 때분에 이것을 문제로 보지는 않는다.

와인의 64비트 포트 또한 예비로WOW64를 지원한다. 2010년 5월에, 32비트와 64비트 윈도 프로그램은 같은 와인 단계에서 동작하는 것이 허용되어 있다.[16]

와인 소스 코드를 이용하는 프로젝트[편집]

다른 운영 체제에 포팅[편집]

와인은 원래 리눅스용으로 개발되었지만, Mac OS X, FreeBSD솔라리스로 쉽게 포팅할 수 있다.[17] 와인 오픈 BSD 포팅으로 OpenBSD와 NetBSD에서도 사용할 수 있다. [18] 그리고 NetBSD의 pkgsrc에서도 가능하다. 2010년 10월부터 와인도 Winelib로 사용할 때 ARM 플랫폼에서 작동한다(개발자들이 라이브러리로 와인을 사용하여 리눅스에서 윈도 소스 코드를 컴파일 할 수 있다).[19] 와인 DLL의 몇몇 버전은 마이크로소프트 윈도에서도 사용 가능하지만,[20] 아직 와인은 완벽하게 윈도에서 동작하거나 컴파일되지 않는다.[21]

보안[편집]

윈도 바이너리 코드를 실행하는 와인에 의해, 네이티브 윈도 바이러스 및 악성 코드가 유닉스 계열 운영 체제에 영향을 끼쳐서 시스템이 파괴될 수 있는 문제가 발생한다.[22] 와인은 윈도 바이러스를 실행할 수 있으므로, 와인에서 실행되는 프로그램은 바람직하지 않은 결과를 제한하기 위해 현재 사용자의 권한으로 제한하고 있다. 이것은 와인이 관리자 권한으로 실행되지 않을 것이라는 이유 중 하나다.[23] ZeroWine같은 멀웨어 연구 소프트웨어는[24] 완전히 호스트 시스템에서 격리된 악성 코드를 유지하기 위해 가상 머신에 있는 리눅스에서 와인을 실행한다.

안정화 버전[편집]

와인은 안정화 버전과 개발 버전으로 나뉜다. 지금까지 출시된 안정화 버전은 다음과 같다.

버전 출시일 비고
와인(WINE) 1.0.1 2008년 10월 18일[25] 최초의 안정화 버전
1.2 2010년 7월 16일[26] 64비트 프로그램 구동기능 향상
1.2.1 2010년 10월 8일[27] 자잘한 버그 수정. 번역 업데이트
1.2.2 2010년 12월 3일[28] 애니메이션 커서에 대한 지원. 자잘한 버그 수정. 번역 업데이트
1.2.3 2011년 4월 8일[29] 자잘한 버그 수정. 번역 업데이트
1.4 2012년 3월 7일[30] 하드웨어 드라이버 같은 전반적인 업데이트
1.4.1 2012년 6월 15일[31] 자잘한 버그 수정. 번역 업데이트

주석[편집]

  1. Wine 1.6.2 Released. WineHQ (12 January 2014). 12 January 2014에 확인.
  2. Wine 1.7.14 Released. WineHQ (7 March 2014). 8 March 2014에 확인.
  3. White, Jeremy (6 February 2002). Wine license change. 27 April 2010에 확인.
  4. Alexandre Julliard (18 February 2002). License change vote results. 27 April 2010에 확인.
  5. Beta! (25 October 2005). 9 December 2010에 확인.
  6. Announcement of version 1.0. Wine HQ (17 June 2008). 1 September 2008에 확인.
  7. Julliard, Alexandre (16 July 2010). Release News.
  8. Byron A Jeff (25 August 1993). WABI available on linux or not. 21 September 2007에 확인.
  9. Amstadt, Bob (29 September 1993). Wine project status. 13 July 2008에 확인.
  10. DirectX-Shaders. Official Wine Wiki. 3 January 2009에 확인.
  11. Windows Legacy Application Support Under Wine. 9 December 2010에 확인.
  12. Strohmeyer, Robert (6 April 2007). Still need to run Windows apps? Have a glass of wine. 9 December 2010에 확인.
  13. Savill, John (11 February 2002). Why can't I install 16-bit programs on a computer running the 64-bit version of Windows XP?. 9 December 2010에 확인.
  14. Text mode programs (CUI: Console User Interface). Wine User Guide. 22 May 2010에 확인.
  15. Lankhorst, Maarten (5 December 2008). Wine64 hello world app runs!. 15 December 2008에 확인.
  16. Wine64 for packagers. Official Wine Wiki. 20 April 2010에 확인.
  17. Under what hardware platform(s) and operating system(s) will Wine(Lib) run?. 《Wine FAQ》. 2009년 1월 3일에 확인.
  18. OpenBSD Ports: emulators/wine. Openports.se. 27 April 2010에 확인.
  19. The Wine development release 1.3.4 announcement. Winehq.org. 15 October 2010에 확인.
  20. Wine Win32 Packages. Sourceforge.net. 17 October 2010에 확인.
  21. The Official Wine Wiki: Wine on Windows. Wiki.winehq.org. 27 April 2010에 확인.
  22. Matt Moen (26 January 2005). Running Windows viruses with Wine. 23 October 2009에 확인.
  23. Should I run Wine as root?. 《Wine Wiki FAQ》. Official Wine Wiki (7 August 2009). 24 August 2009에 확인.
  24. ZeroWine project home page.
  25. Wine 1.0.1 Released,《WINEHQ》,2010년 7월 24일 확인
  26. Wine 1.2 Released,《WINEHQ》,2010년 7월 24일 확인
  27. Wine 1.2.1 Released,《WINEHQ》,2011년 5월 22일 확인
  28. Wine 1.2.2 Released,《WINEHQ》,2011년 5월 22일 확인
  29. Wine 1.2.3 Released,《WINEHQ》,2011년 5월 22일 확인
  30. Wine 1.4 Released,《WINEHQ》,2012년 9월 22일 확인
  31. Wine 1.4.1 Released,《WINEHQ》,2011년 9월 22일 확인

바깥 고리[편집]