윈도우즈 기반 클라이언트용 API를 리눅스용으로 포팅
글쓴이: oDo / 작성시간: 화, 2007/02/20 - 2:58오후
서버는 WMWORKS이구요 지금 윈도우즈 기반의 클라이언트 API를 리눅스용으로 포팅하는 작업을 하고 있습니다.
근데 윈도우즈 기반 클라이언트 API도 자세한 주석도 달려 있지 않은 상태에 샘플 프로그램은 달랑하나...
이 API를 전부 LINUX용으로 포팅해야하는데요....
일단 API에서 사용되고 있는 윈도우즈용 헤더와 함수들을 뽑아서 분석하고 그에 대응하는 것을 찾아 바꿔 나가야 할 것 같은데..쉽지가 않네요...조언부탁합니다.
Forums:
일단...
코드에서 윈도우즈 특화된 부분과 유닉스와 윈도우즈에서 어느 정도 공통적인 부분들로 분리하는 작업이 선행되야 할 것 같습니다.
예로 윈도우즈 특화된 gui영역과 inter process는 분리해서 대응하는 유닉스 라이브러리나 기능을 찾아야 합니다.
만인 네트웍 부분은 많이 특화되어 있지 않다면 해당 프로토콜에 해당하는 라이브러리를 찾는 식으로 큰 그림으로 매핑 시켜 놓고 작업해야 합니다.
단순히 함수를 1대1로 매칭하는 작업은 작업 시간도 오래 걸리고 효율적인 코드 작성에 도움이 되지 않습니다. 1대1 매칭 된다는 보장도 없고요.
실제 작업 전에 구글로 "windows linux 포팅"등으로 검색해서 포팅 작업시의 주의점, 대응하는 기능을 먼저 숙지하시는 것이 좋습니다.
그리고 현재 포팅하려는 작업을 좀 더 자세히 설명해주시면 많은 분들이 댓글을 달아 주실 것 같습니다.
음.....
그렇군요. 우선은 윈도우즈 어플리케이션이 어떤 기능과 구조로 되어 있는지 분석을 선행한 다음 리눅스와 공통점과 차이점을 발견하고 그 정보로 하나씩 고쳐나가면 되겠군요. 만약에 윈도우즈 어플리케이션이 DLL 파일을 로드시켜서 구동하는 구조라면 DLL파일의 어느 부분을 먼저 보는 편이 좋을까요? 당연히 DLL파일 만들기전의 함수 소스를 가지고 있다는 가정에서요. DLL파일이 어떻게 생겼는지 분석하는것이 먼저일꺼라고 생각하는데...
process.h
process.h가 리눅스*에 없나요?
gcc에서 썼던 기억있 있는데······. -_-;;
크게 보면
DLL파일로 구성이 되었는지 단일 실행파일로 구성되었는지는 큰 의미가 없습니다.
(리눅스도 동적 라이브러리인 so파일로 구성할 수 있습니다.)
보통 관련있는 기능끼리 모아놓은 단위로 이해한다면 분석할 때 기준으로 삼을 수는 있을 것 같습니다.
감사합니다.
잘 해결 하였습니다..여러분 덕분에..
--------------------------------------
나만 이래?
댓글 달기