Kylix Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
카일릭스 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
자유게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

카일릭스 자유게시판
[9] wine 이란?
이갑연.에릭 [neoic] 2894 읽음    2002-06-08 11:40
윈도 프로그램을 리눅스 프로그램으로 포팅(Porting)하는데 쓰이는 WINE

지금까지 많은 프로그래머들의 노력으로 윈도 응용프로그램(application program)들이 다른 운영체제들(SCO UNIX, UNIX, OpenBSD, IBM OS/2, Linux 등등)로 포팅되어 왔다.

그러나 기존의 Windows source code들을 다른 플랫폼에서 컴파일하여 실행파일을 만들어 낸다는 것은 여간 힘든 작업이 아니다.

특히 기존의 윈도 코드들의 중심부분을 건드리지 않는다고 하여도 사용자 인터페이스(user interfaces)를 다른 플랫폼에서 그대로 구현하는 것은 상당한 기간과 인력이 요구되는 작업인 것이다. 이러한 포팅작업을 효과적으로 수행하기 위해서는 기존의 윈도 코드들을 되도록이면 건드리지 않고 작업하는 것이다.

이것이 가능하려면 윈도의 application programming interfaces(API)를 구현해 낼 수 있는 라이브러리가 필요하며 이러한 라이브러리에는 Willows의 TWIN APIW나 Wine 라이브러리를 들 수 있다. 특히 Wine 라이브러리는 Corel의 WordPerfect나 CorelDRAW와 같은 프로그램들을 리눅스로 포팅(porting)하는데 적용되었다.

Wine Project

Wine은 Microsoft Windows 95/ Microsoft Windows NT의 application programming interfaces(API)가 X-windows의 환경에서(Linux system) 동작하도록 open source로 구현된 것이다.

Wine은 윈도의 응용프로그램(application program)들을 리눅스상으로 포팅하기 위한 라이브러리와 윈도 프로그램의 실행파일(binary files)을 리눅스에서 실행하는 프로그램 loader를 제공하고 있다.

이러한 Wine Project는 1993년 Bob Amstadt에 의해서 Windows 3.1 응용프로그램들이 리눅스에서 실행되도록 하기 위해 시작되었다. 지금은 Alexandre Julliard가 이 Wine Project를 이끌고 있다.

또한 현재 300명 정도의 개발자들이 참여하여 Wine Project가 진행되고 있으며 그 코드(code)는 54만여 줄에 이르고 있다. Wine을 사용하는 사용자는 약 9만여명에 이르는 것으로 추산되고 있다.

Wine으로 할 수 있는 작업

Wine은 두 가지 방법으로 사용되고 있다.

첫번째는 윈도의 실행파일을 리눅스에서 다시 컴파일하지 않고 바로 실행하도록 하는 프로그램 loader, 즉 에뮬레이터(emulator)이며, 두번째는 윈도우 프로그램 소스 코드(source code)를 리눅스에서 컴파일(compile)하는데에 사용되는 라이브러리이다.

프로그램 loader는 리눅스에서 윈도의 실행파일(binary file)을 바로 실행하기 때문에 가장 손쉽게 사용할 수 있지만 리눅스 시스템의 특성들을 십분 활용하기는 어려운 문제점이 있으며 또한 어떤 프로그램은 실행할 수 없는 경우도 있다.

그러나 Wine 라이브러리는 윈도 라이브러리의 API의 기능들을 구현할 수 있기 때문에 리눅스 환경에 잘 맞는 프로그램을 만들어 낼 수 있다. 특히 wine library가 X-windows의 Xlib 라이브러리처럼 공개되어 있기 때문에 특정한 응용프로그램을 리눅스에서 컴파일 할 때 필요에 따라 개발자가 Wine library를 수정할 수 있다는 장점이 있다.

Wine 라이브러리를 통하여 윈도 프로그램을 리눅스에서 컴파일한다는 것은 곧 순수한 리눅스 프로그램으로 다시 만들어 진다는 것을 의미한다. 우리는 Wine 라이브러리를 Qt나 gtk+ 라이브러리와 같은 라이브러리로 이해할 수 있는 것이다.

  







Wine 라이브러리

위에서 언급한 것처럼 Wine 라이브러리는 리눅스의 X-window 시스템과 응용프로그램 사이에서 작동되는 공개된 API 라이브러리로 이해될 수 있다.

즉 윈도의 API에서 구현되고 있는 기능들이 X-windows를 기반으로 하는 리눅스 윈도 시스템에서 구현될 수 있도록 wine 라이브러리가 그 기능들(API)을 제공하고 있다는 것이다.

물론 현재까지 wine 라이브러리가 윈도 API의 기능들을 모두 구현하고 있지는 않으나 약 90 %정도 구현하고 있다는 것은 주목할 만한 일이다. 특히 약 2주 혹은 한 달간의 간격으로 새로운 version이 나오고 있다는 것은 얼마나 활발하게 Wine Project가 이루어지고 있는가를 보여준다.


+ -

관련 글 리스트
9 wine 이란? 이갑연.에릭 2894 2002/06/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.