윈도우즈 기반 클라이언트용 API를 리눅스용으로 포팅

oDo의 이미지

서버는 WMWORKS이구요 지금 윈도우즈 기반의 클라이언트 API를 리눅스용으로 포팅하는 작업을 하고 있습니다.

근데 윈도우즈 기반 클라이언트 API도 자세한 주석도 달려 있지 않은 상태에 샘플 프로그램은 달랑하나...

이 API를 전부 LINUX용으로 포팅해야하는데요....

일단 API에서 사용되고 있는 윈도우즈용 헤더와 함수들을 뽑아서 분석하고 그에 대응하는 것을 찾아 바꿔 나가야 할 것 같은데..쉽지가 않네요...조언부탁합니다.

bootmeta의 이미지

코드에서 윈도우즈 특화된 부분과 유닉스와 윈도우즈에서 어느 정도 공통적인 부분들로 분리하는 작업이 선행되야 할 것 같습니다.

예로 윈도우즈 특화된 gui영역과 inter process는 분리해서 대응하는 유닉스 라이브러리나 기능을 찾아야 합니다.
만인 네트웍 부분은 많이 특화되어 있지 않다면 해당 프로토콜에 해당하는 라이브러리를 찾는 식으로 큰 그림으로 매핑 시켜 놓고 작업해야 합니다.

단순히 함수를 1대1로 매칭하는 작업은 작업 시간도 오래 걸리고 효율적인 코드 작성에 도움이 되지 않습니다. 1대1 매칭 된다는 보장도 없고요.

실제 작업 전에 구글로 "windows linux 포팅"등으로 검색해서 포팅 작업시의 주의점, 대응하는 기능을 먼저 숙지하시는 것이 좋습니다.

그리고 현재 포팅하려는 작업을 좀 더 자세히 설명해주시면 많은 분들이 댓글을 달아 주실 것 같습니다.

zipsinworm의 이미지

그렇군요. 우선은 윈도우즈 어플리케이션이 어떤 기능과 구조로 되어 있는지 분석을 선행한 다음 리눅스와 공통점과 차이점을 발견하고 그 정보로 하나씩 고쳐나가면 되겠군요. 만약에 윈도우즈 어플리케이션이 DLL 파일을 로드시켜서 구동하는 구조라면 DLL파일의 어느 부분을 먼저 보는 편이 좋을까요? 당연히 DLL파일 만들기전의 함수 소스를 가지고 있다는 가정에서요. DLL파일이 어떻게 생겼는지 분석하는것이 먼저일꺼라고 생각하는데...

gamdora의 이미지

process.h가 리눅스*에 없나요?

gcc에서 썼던 기억있 있는데······. -_-;;

bootmeta의 이미지

DLL파일로 구성이 되었는지 단일 실행파일로 구성되었는지는 큰 의미가 없습니다.
(리눅스도 동적 라이브러리인 so파일로 구성할 수 있습니다.)
보통 관련있는 기능끼리 모아놓은 단위로 이해한다면 분석할 때 기준으로 삼을 수는 있을 것 같습니다.

oDo의 이미지

잘 해결 하였습니다..여러분 덕분에..

--------------------------------------
나만 이래?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.