본문 바로가기

특정 오픈소스 패키지를 VOS 또는 OpenVOS (이하 "VOS")의 특정 릴리스로 포팅할 수 있는지 자주 묻습니다. 일반적으로 사용자 모드 작업만 수행하는 대부분의 오픈소스 패키지는 VOS로 포팅할 수 있다고 답변합니다. Stratus 고객들이 다양한 VOS 릴리스를 사용하고 있으며, VOS의 각 신규 릴리스마다 POSIX 환경에 새로운 기능을 추가해 왔기 때문에, 해당 패키지를 실제로 포팅해 보지 않고서는 더 구체적인 답변을 드리기가 어렵습니다.

저는 약 백만 줄 이상의 소스 코드를 VOS로 이식한 것으로 추정합니다. 소프트웨어를 VOS로 이식할 때 누구나 마주칠 수 있는 대부분의 문제를 경험했다고 생각합니다. 첫 번째 경험칙은 조직에 설치된 최신 버전의 VOS를 사용해야 한다는 것입니다. 고객사들 사이에서 흔히 볼 수 있듯이 사용 중인 버전이 수년 전 것이라면, 설치할 수 있는 최신 버전이 거의 확실히 존재합니다. 구형 Continuum 시스템을 사용 중이더라도, VOS 14.7 유지보수 릴리스에서 POSIX 라이브러리를 지속적으로 개선해 왔으므로, 이러한 추가 기능과 수정 사항을 얻기 위해 업그레이드하는 것이 여전히 가치가 있습니다. 최신 V 시리즈 모듈을 사용 중이라면, 모든 릴리스 중 가장 완벽한 POSIX 지원을 제공하는 OpenVOS 17.0.1을 사용해야 합니다.

"오픈소스 코드를 VOS로 포팅하기"(이전 블로그 게시물 참조) 발표에서 논의한 바와 같이, VOS에 POSIX 헤더나 함수가 일부 누락되어 있더라도 일반적으로 원본 소스 코드를 수정하여 누락을 우회하거나 다른 오픈소스 운영체제에서 누락된 코드를 포팅하는 것이 어렵지 않습니다.

VOS 익명 FTP 사이트에 있는 "openvos.save.evf.gz" 및 "posix.save.evf.gz" 패키지를 사용하면 오픈소스 소프트웨어를 VOS로 이식하는 작업이 훨씬 수월해질 것입니다. 또한 방금 언급한 프레젠테이션을 꼭 읽어보시길 바랍니다. 유용한 제안이 많이 담겨 있기 때문입니다.

제 경험상 많은 오픈소스 패키지는 OpenVOS Release 17.0.1로 변경 없이 포팅됩니다. 변경이 필요한 경우에도 대체로 사소한 수준입니다. 유일한 문제 영역은 동적 링크로, 현재 VOS 릴리스에서는 지원되지 않습니다. 일부 패키지는 테스트 케이스 실행 시에만 동적 링크가 필요합니다(예: Sleepycat Berkeley DBMS). 반면 일부는 빌드 자체에 동적 링크가 필수적입니다(예: 현재 릴리스된 MIT Kerberos). 인터넷 검색 엔진을 활용해 정적 링크를 여전히 지원하는 구버전 패키지를 찾을 수 있을 것입니다. 그런 다음 해당 지원을 현재 버전으로 이전할 수 있습니다. Stratus는 향후 OpenVOS 릴리스를 위해 현재 동적 링크를 구현 중입니다.

항상 Stratus Professional Services 전문가에게 포트 작업 및 관련 테스트를 수행하도록 의뢰하고 결과를 전달받을 수 있습니다. 당사는 고객을 위해 gSOAP, Xerces 및 기타 패키지를 포팅한 경험이 있으며, 당사 소프트웨어 제품 라이브러리를 위해 GCC부터 MySQL에 이르기까지 모든 것을 포팅한 바 있습니다.

© 2024 Stratus Technologies.