2010-03-24 4 views
7

나의 최종 목표는 유닉스 OS에서 돌아갈 수있는 프로그램을 작성하는 것이다. 나는 많은 유닉스 버전이 있다는 것을 알고 있으며, 현재 어느 버전을 지원해야하는지 정확히 알지 못한다. 나는 지금 유닉스 OS를 설치할 수 없다. 내가 할 수있는 유일한 방법은 가능한 한 유닉스에 가까운 무료 OS를 사용하는 것이다. FreeBSD는 이것을위한 좋은 선택입니까? 나는 또한 OpenBSD가있을 거라는 것을 알고있다.유닉스와 FreeBSD

추가 정보 : 프로그래밍 언어는 C++이며 일부 휴대용 라이브러리 인 GCC를 사용하고 있습니다 : Boost 및 wxWidgets.

+2

어떤 프로그램을 쓰고 있습니까? 쉘 스크립트? C 프로그램? – ghostdog74

+0

유닉스는 OS가 아니라 OS 계열입니다. gcc를 사용하여 대부분의 올바른 작업을 수행하고 있습니다. –

+0

@Andrew, UNIX라는 용어는 과부하 상태이므로 혼란을 이해할 수 있습니다 ... UNIX는 이전에는 운영 체제 였지만 현재는 운영 체제 제품군뿐만 아니라 운영 체제 제품군에 대한 개방형 표준입니다 (즉, 투기). –

답변

6

OpenBSD, FreeBSD, FreeBSD, NetBSD, Open Solaris 등은 모두 개방적이고 자유로운 유닉스 운영체제입니다. 그보다 더 가까워 질 수는 없습니다.

설치 제한을 피하려면 Sun의 Virtual box과 같은 도구로 가상화를 고려하십시오.

+5

BSD는 Unix는 인증되지 않지만 Open Solaris는 인증되었습니다. – reinierpost

+0

고맙습니다.이 정보는 내가 찾고있는 정보입니다. 제 제한은 프로그램이 오픈 소스가 아니라는 것입니다. 대상 OS와 호환되는 바이너리를 제공해야합니다. 따라서이 OS 중 하나를 설치하고 거기에 프로그램을 빌드해야합니다. 맞습니까? –

+0

@Alex : 이진 호환성은 어려울 것입니다. 대상 시스템에 대해 자세히 알아보십시오. Sparc 시스템에서 실행되는 Solaris에서는 FreeBSD x86 바이너리가 제대로 실행되지 않습니다. –

5

프로그램에 따라, 어떤 언어로 쓰여지는지 등에 따라 다양한 플랫폼에서 이식 가능한 코드를 작성할 수 있습니다. 예를 들어, 필자는 C++로 작성된 응용 프로그램 중 하나를 약간 변경 (ODBC 지원 제거)하여 Windows로 개발하고 Linux로 포팅합니다. 따라서 개발을 수행 할 OS의 선택은 중요하지 않습니다. 의식적으로 이식 가능한 코드를 작성하는 것이 중요합니다.

2

어떤 프로그램을 쓰고 있으며 어떤 언어를 사용하고 있습니까? FreeBSD를 사용하든 Solaris를 사용하든, C++/Python/Perl 등을 사용하여 상당히 이식성있는 코드를 작성할 수 있습니다.이 프로그래밍 언어는 다른 플랫폼에서 작동 할 수 있으며, 그 중대한 문제는 없을 것이라고 생각합니다.

3

POSIX 표준보세요. 대부분의 유닉스 계열 운영체제에서 지원하는 이식 가능한 API이다.

3

Single UNIX Specification을 참조하십시오. 단일 UNIX 사양에서 OpenGroup이 제공하는 맨 페이지에 가정을 한 경우 모든 UNIX 호환 OS에서 코드가 작동해야합니다.

development/coding search engine을 사용하는 경우, 단일 UNIX 사양의 원본에 비해 크게 편향되어 있으며 "단일 UNIX 사양"을 클릭하면 해당 원본으로 검색이 제한됩니다. 스펙에 의한 보증을 제한하는 한 모든 UNIX 변형에서 작동해야합니다.

또한 ISO C++ 표준, Boost C++ 라이브러리 및 WxWidgets에서 제공하는 기능 만 사용하도록 제한하는 경우 모든 UNIX 변종을 대상으로 할 수 있어야합니다 뿐만 아니라 Windows도 있습니다. 그러나 UNIX 만 대상으로해야하는 경우에는 지정된 UNIX UNIX 사양의 시스템 인터페이스를 사용하는 것이 안전해야합니다.

개발 환경의 측면에서

, 나는 sudo apt-get install의 단일 호출과 같은 간단한 리눅스의 특정 분포에 작동하는 개발 환경을 설정 한 이후, VirtualBoxUbuntu Linux의 사본을 설치하는 것이 좋습니다 것이고, 리눅스는 드입니다 UNIX와 호환되는 기능 단일 명령 sudo apt-get install build-essential pkg-config g++ automake autoconf cmake doxygen libboost1.40-dev libwxgtk2.8-dev은 WxWidgets 및 Boost C++ 라이브러리가 설치된 Ubuntu에서 C++ 개발 환경을 완벽하게 작동시키기에 충분합니다.

0

위에서 언급 한 대부분의 시스템에는 Linux 바이너리 실행을위한 (제한된) 지원이 있습니다. 리눅스 바이너리를 빌드하고 배포하려고 할 수 있습니다. RHEL4와 같은 것으로 구축하면 대부분이 프로그램을 실행하는 데 필요한 ABI를 지원합니다.

예를 들어 대부분의 BSD에서 flashplugin은 실제로 linux-flashplugin입니다.

관련 문제