经常有人问我,某个特定的开源软件包是否可以移植到VOS或OpenVOS(简称"VOS")的某个版本上。我的一般回答是,大多数只执行用户模式操作的开源软件包都可以移植到VOS上。因为Stratus 客户使用的是许多不同版本的VOS,而且随着VOS的每一个新版本的发布,我们都为POSIX环境增加了新的功能,所以在没有实际尝试移植相关软件包之前,很难给出一个更具体的答案。
我估计我已经将超过一百万行的源代码移植到VOS上。我想我已经遇到了任何人在将软件移植到VOS时可能面临的大部分问题。第一个经验法则是,你应该使用你的组织所安装的最新版本的VOS。如果您的版本是几年前的,这在我们的客户中并不罕见,那么几乎可以肯定您可以安装一个较新的版本。即使你还在使用我们的老版本Continuum系统,我们也在VOS 14.7的维护版本中不断改进POSIX库,仍然值得升级以获得这些补充和修正。如果你有更新的V系列模块,那么你应该使用OpenVOS 17.0.1,它拥有所有版本中最完整的POSIX支持。
正如我在"将开源代码移植到VOS"(见我之前的博文)中所讨论的那样,即使VOS缺少一些POSIX头或函数,通过修改原始源代码,或者从另一个开源操作系统中移植缺少的代码,一般来说也不难解决。
我想你会发现VOS匿名FTP站点上的"openvos.save.evf.gz"和"posix.save.evf.gz"包会简化将开源软件移植到VOS的任务。我还希望你能阅读刚刚的参考介绍,因为它包含了许多有用的建议。
我的经验是,许多开放源码的软件包都可以移植到OpenVOS 17.0.1版而不做任何改动。即使需要修改,通常也是相当小的改动。剩下的一个问题是动态链接,目前的VOS版本不支持动态链接。有些软件包只在运行测试用例时才需要动态链接 (例如 Sleepycat Berkeley DBMS),有些则需要动态链接才能构建 (例如 MIT Kerberos 的当前版本)。你也许可以使用 Internet 搜索引擎找到一个仍然支持静态链接的旧版本的软件包。Stratus 目前正在为 OpenVOS 的未来版本实现动态链接。
您可以随时选择聘请Stratus 专业服务专家来进行移植和相关测试,并将结果交给您。我们已经为客户移植了gSOAP、Xerces和其他软件包,当然我们也为我们的软件产品库移植了从GCC到MySQL的所有软件。