Unix和FreeBSD

时间:2010-03-24 09:16:33

标签: unix freebsd

我的最终目标是编写可以在Unix OS上运行的程序。我知道有很多Unix版本,现在还不知道我需要支持哪一个。我现在无法安装任何Unix操作系统。我唯一能做的就是尽可能使用接近Unix的免费操作系统。 FreeBSD是一个不错的选择吗?我知道还有OpenBSD,可能还有别的东西。

其他信息: 编程语言是C ++,我使用的是GCC,还有一些可移植的库:Boost和wxWidgets。

6 个答案:

答案 0 :(得分:7)

OpenBSD,FreeBSD,DragonFlyBSD,NetBSD,Open Solaris等都是开放的免费Unix操作系统,你真的不能比这更接近。

要绕过安装限制,请考虑使用Sun Virtual box等工具进行虚拟化。

答案 1 :(得分:5)

根据程序的功能,编写的语言等,您可以在任何平台上编写可移植代码。例如,我经常将我用C ++编写的一个应用程序从Windows开发到Linux,只需一个小的改动(我删除了ODBC支持)。因此,开发OS的选择并不重要 - 有意识地编写可移植代码。

答案 2 :(得分:3)

查看POSIX标准。它是大多数Unix操作系统支持的可移植API。

答案 3 :(得分:3)

请参阅Single UNIX Specification。如果只做OpenGroup在其单一UNIX规范中提供的手册页中给出的假设,那么您的代码应该适用于所有符合UNIX的操作系统。

如果您使用我的development/coding search engine,它会偏向于单一UNIX规范中的源,并且单击“Single UNIX Specification”会将搜索限制为该源。只要您将自己局限于规范所做的保证,那么它应该适用于所有UNIX变体。

我还应该指出,如果您仅限于使用ISO C ++标准,Boost C ++库和WxWidgets提供的功能,那么您应该能够不仅针对UNIX的所有变体,而且Windows也是如此。但是,如果您只需要定位UNIX,那么其中指定的Single UNIX Specification中的任何系统接口都应该是安全的。

就开发环境而言,我建议您在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足以在Ubuntu上安装完全正常的C ++开发环境,并安装了WxWidgets和Boost C ++库。

答案 4 :(得分:2)

你在写什么课程,你用的是什么语言?无论您使用的是FreeBSD还是Solaris等,您都可以使用C ++ / Python / Perl等编写相当可移植的代码。这些编程语言可以在不同的平台上运行,我认为您不会遇到重大问题。

答案 5 :(得分:0)

上面提到的大多数系统都支持(限制)运行Linux二进制文件。您可以尝试构建和分发Linux二进制文件。如果你在RHEL4之类的东西上构建它,它们中的大多数都会支持必要的ABI来运行程序。

例如,大多数BSD上的flashplugin实际上是一个linux-flashplugin。