[질문]윈도우 어플리케이션을 리눅스로 포팅
글쓴이: zipsinworm / 작성시간: 수, 2007/02/14 - 3:06오후
윈도우 어플리케이션을 리눅스로 포팅 하려고 합니다.
서버/클라이언트 프로그램인데(소켓사용)
어디부터 시작해야 할지 모르겠습니다.
여기저기 게시판을 찾아보니 와인이라는 프로그램을 사용하면 된다고 하던데
그 프로그램 사용하지 않고 포팅하고 싶습니다.
제 생각으론 클라이언트 라이브러리부터 하나씩 컴파일해서 오류를 잡는것이 우선이라고
생각합니다.
포팅을 직접 해보신 분이나 리눅스를 잘 사용하시는 분들께 조언 구합니다.
Forums:
C 로만 짰다면 모를까...
C로만 짰다면 모를까 여기 저기 수정할 곳이 많을 겁니다.
프로그램에 GUI가 있다면 그 쪽 부분은 완전히 들어내야 할거구요.
MFC에서 제공하는 각종 Class들을 사용하셨다면 그것들 역시 제거하셔야 할 것이고...
단순히 콘솔 프로그램으로 만든 것이 아니라면,
포팅 수준이 아니라 재작성이라고 생각하시길...
콘 솔 프로그램이라면 어렵지 않군요.
쓰레드와 관련한 사항은 POSIX 쓰레드로 대체하면 될테구
Winsock관련한 함수들은 일반적인 BSD 소켓함수들로 대체
혹시 IOCP와 같은 것을 사용하였다면 epoll 같은걸루 대체..
터미널에서만 사용할 것 같습니다.
프린터 어플리케이션인데 윈도우용을 리눅스로 포팅하는 작업입니다.
리눅스에서 윈도우 GUI를 구현한다는것은 bejoy4him님 말씀대로 처음부터 새로 작성하는게 낳을듯 싶어요.
윈도우 자체 API도 있으니.. 그래서 콘솔상에서 동작하는 기능만 생각하고 있습니다.
여기저기 알아봐도 포팅에 관한 자료는 자세히 나와있지도 않네요..
꼭 포팅을 성공해서 리눅스 고수(그렇게 생각하지 않지만..)의 길로 가는 첩경이라고 생각합니다.
다른 조언도 있으시면 많이많이 해주세요.
참고하실만한
참고하실만한 싸이트
IBM Migration station
http://www-128.ibm.com/developerworks/ondemand/migrate/linux.html
MS Unix -> Win32 Migration Guide
http://www.microsoft.com/windowsserver/unix/default.mspx
http://msdn2.microsoft.com/en-us/library/ms811903.aspx
http://www.microsoft.com/downloads/results.aspx?pocId=&freetext=UNIX%20Application%20Migration%20Guide&DisplayLang=en
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
1. win32API로만 짠
1. win32API로만 짠 경우
-> 윈도우API관련부분만 수정
-> 소켓함수는 큰 변경 필요 없음
(HANDLE -> int, closesocket() -> close(), 그 외 시그널처리 로직 변경 정도)
2. MFC로 짠 경우
-> API, MFC 메시지 처리부분을 다 들여냄
-> 각 클래스의 메소드에 분산되어 있는 실행코드들을 통합할 필요 있음
제가 봤을 때는 1번으로 만든 프로그램은 수정을 하면 끝나지만,
2번에 해당되는 프로그램이라면 규모가 장난 아닐 겁니다.
특히 2번에다가 문자열을 다 CString으로 처리하고, MFC클래스내에
자료를 저장하는 식으로 구현했다면 다시 만드는게 나을수도 있습니다.
소켓도 MFC소켓클래스 썼다면 다시짜야합니다.
(MFC프로그램 빨리 만들려고 할때 이런식으로 구현 많이 하더군요)
Written By the Black Knight of Destruction
Written By the Black Knight of Destruction
댓글 달기