Unix и FreeBSD - PullRequest
       16

Unix и FreeBSD

8 голосов
/ 24 марта 2010

Моя конечная цель - написать программу, которая может работать на ОС Unix. Я знаю, что существует много версий Unix, и пока точно не знаю, какую из них мне нужно поддерживать. Я не могу установить любую ОС Unix прямо сейчас. Единственное, что я могу сделать, - это использовать бесплатную ОС, максимально приближенную к Unix. Является ли FreeBSD хорошим выбором для этого? Я знаю, что есть также OpenBSD, возможно, что-то еще.

Дополнительная информация: Язык программирования - C ++, я использую GCC, с некоторыми переносимыми библиотеками: Boost и wxWidgets.

Ответы [ 6 ]

7 голосов
/ 24 марта 2010

OpenBSD, FreeBSD, DragonFlyBSD, NetBSD, Open Solaris и т. Д. - все это открытые и бесплатные операционные системы Unix, вы не можете быть ближе к этому.

Чтобы обойти ограничение установки, рассмотрите возможность виртуализации с помощью такого инструмента, как Sun Virtual box .

5 голосов
/ 24 марта 2010

В зависимости от того, что делает ваша программа, на каком языке она написана и т. Д. Вы можете написать переносимый код на любой платформе. Например, я обычно портирую одно из моих приложений, написанных на C ++, из Windows, где я его разрабатываю, в Linux, с одним незначительным изменением (я удаляю поддержку ODBC). Таким образом, выбор ОС для разработки не является критичным - сознательно пишу переносимый код.

3 голосов
/ 24 марта 2010

См. Спецификацию Single UNIX . Если вы делаете только предположения, приведенные на страницах руководства, предоставленных OpenGroup в ее Единой спецификации UNIX, тогда ваш код должен работать на всех UNIX-совместимых ОС.

Если вы используете мою поисковую систему / кодировщик , она сильно смещена в пользу источников из Единой спецификации UNIX, и нажатие на "Единую спецификацию UNIX" ограничит поиск этим источником. Пока вы ограничиваетесь гарантиями, предоставляемыми спецификацией, она должна работать на всех вариантах UNIX.

Я также должен отметить, что если вы ограничитесь еще большим использованием функций, предоставляемых стандартом ISO C ++, библиотеками Boost C ++ и WxWidgets, то вы сможете использовать не только все варианты UNIX, но также и Windows. Однако, если вам нужно только ориентироваться на UNIX, любой из системных интерфейсов в Единой спецификации UNIX, как указано в ней, должен быть безопасным для использования.

С точки зрения среды разработки, я бы порекомендовал вам установить копию Ubuntu Linux в VirtualBox , поскольку настройка рабочей среды разработки для этого конкретного дистрибутива Linux просто как один вызов sudo apt-get install, и Linux де-факто совместим с UNIX. Одной команды sudo apt-get install build-essential pkg-config g++ automake autoconf cmake doxygen libboost1.40-dev libwxgtk2.8-dev достаточно, чтобы получить полностью работающую среду разработки C ++ в Ubuntu с установленными WxWidgets и библиотеками Boost C ++.

3 голосов
/ 24 марта 2010

Посмотрите на POSIX стандарт. Это переносимый API, поддерживаемый большинством Unix-подобных операционных систем.

2 голосов
/ 24 марта 2010

какие программы вы пишете и на каком языке вы используете? Независимо от того, используете ли вы FreeBSD или Solaris и т. Д., Вы можете написать довольно переносимый код, используя C ++ / Python / Perl и т. Д. Эти языки программирования могут работать на разных платформах, и я не думаю, что у вас будут серьезные проблемы с этим.

0 голосов
/ 01 июня 2012

Большинство систем, упомянутых выше, имеют (ограниченную) поддержку запуска исполняемых файлов Linux. Вы можете попробовать собрать и распространить бинарный файл Linux. Если вы создадите его на RHEL4, большинство из них будет поддерживать необходимый ABI для запуска программы.

Например, flashplugin на большинстве BSD на самом деле является linux-flashplugin.

...