POSIX 에 대해서 질문있습니다.(유닉스버전을 리눅스로 포팅)
글쓴이: jamongx / 작성시간: 목, 2007/04/19 - 11:25오전
안녕하세요
저는 썬장비에서
솔라리스9에서 GCC 3.4.6을 가지고 프로그래밍을 하고 있는데요
멀티쓰레드도 사용하고 그럽니다.
저희 회사 윗분(^^;) 께서
솔라리스나 리눅스(인텔기반)나 POSIX 기반이기 때문에
리눅스로 포팅하는데 금방 될거라고 말씀하시네요
지금 개발하는것이 규모도 꽤 있기도하고
제가 가진 짧은 지식으로는 리눅스와 솔라리스에서 사용하는 gcc가 버전이
같다고 하더라도 자잘하게 차이가 있는것으로 알고 있습니다.
그래서 포팅하는데 시간도 어느정도 필요하고(바이트 오더 바꾸는데도 시간 필요하고)
포팅이 다 되더라도 안정성에서는 문제가 생길수 있다고 말씀드렸는데
그 다지 믿지 않으시는것 같네요 ㅜㅜ (일주일만에 하라고 그러면 안되거든요 ㅜㅜ)
혹시 동일한 문제로 경험을 가지고 계시면
조언 부탁드리겠습니다.
리눅스 쪽에 경험이 많지 않아 주의해야 될 부분도 알려주시면 감사하겠습니다.
그럼 수고하십시요
Forums:
결국
solaris상에서 얼마나 posix 규칙에 작성했느냐가 관건이 될 것 같습니다.
그리고 포팅할 프로젝트 내용이 어떤 것인가도 영향을 미치리라 보입니다.
기존 project가 gcc로 개발되었다면 그나마 좀 편할 겁니다.
가장 문제가 될 수 있는 복병은 thread 관련 문제일 듯 싶군요.
같은 thread 라이브러리를 쓰더라도 platform 따라서 이상 동작이 발생할 지도 모르겠습니다.
아래 pdf 문서는 solaris to linux porting guide 입니다.
약간 오래된 문서이기는 해도 간단하게 읽어볼 만 할 겁니다.
http://people.redhat.com/drepper/sol-porting.pdf
감사합니다.
이런 자료가 있었군요
잘 보겠습니다. ^^;
특정 OS가
특정 OS가 posix-compliant하다고 해서 그 OS의 프로그램이 포팅하기 쉬운지는 알 수 없습니다.
일단 Solaris의 경우 POSIX에 맞는 라이브러리가 있고, 거기에 Solaris의 확장이 있습니다. 만약 해당 프로그램이 이 POSIX에 맞는 부분만을 사용했다면 포팅이 쉽고, 그 외에 동작도 어느 정도 보장 받을 수 있습니다. (물론 POSIX의 undefined를 심하게 사용했다면 또 다르지만..)
하지만 그렇지 않고 Solaris에 의존적인 부분이 많이 들어갔다면 포팅이 좀 더 힘들 수 있죠.
OS에 의존적인 부분이
OS에 의존적인 부분이 없다고 가정하고
경험상 int정렬문제, byte order를 제외하고 거의 손댈것 없어요.
통신이 필요없다면 byteorder는 신경쓸 필요가 없고요
헤더파일 손보는정도 unix에 숙달되었다고 한다면
포팅 위한 코드 수정하는것 넉넉잡고 2~3일이면 됩니다.
근데 방대한 양이면 1주일로는 조금 무린 듯 하군요.
테스트하는데 시간이 좀 걸리죠. 몇개 정도는 문제가 발생합니다.
그중에 기존플랫폼에선 버그인데도 안나타나고 옮긴플랫폼에서 가끔발생하는 경우도 있고
아무튼 전체 테스트는 반드시 필요해요.
통신이 필요 없어도
통신이 필요 없어도 이진 파일 입·출력을 한다면
byteorder는 신경써야 하지 않을까요?
네 신경써야
네 신경써야 겠죠.
생성된 파일을 타 플랫폼과 공유하는가에 따라 달라지겠죠.
댓글 달기