在嵌入式系统上从DOS切换到Linux

Switching from DOS to Linux on embedded system

本文关键字:Linux DOS 嵌入式 系统      更新时间:2023-10-16

我最近的任务是进行一项可行性研究,该研究基于从使用DOS切换到Linux,用作运行我们的工业控制软件(内部开发的操作系统)。简而言之,我被限制使用Ubuntu 8.04(供应商提供的内核升级为板上的硬件提供驱动程序)。由于不再支持此功能,我无法更新或安装软件,这意味着我无法使用 gcc 版本 4.2。我希望能够使用C++,最好是提升库,但目前这似乎我无法这样做。

基本上,我问的是公司/专业人士如何使用Linux作为开发环境?我上面描述的很常见吗?您是简单地选择一个版本和一个编译器,并在整个产品生命周期中坚持使用它,以确保开发环境不会发生太大变化,还是可以自由升级内核、编译器等?是否经常受到特定供应商可以提供的内容的限制。有人愿意就 ubuntu 8.04 是否是开发工业控制软件的合适操作系统选择发表意见吗?

根本不是Linux专家,但是到目前为止我的研究和实验使我得出结论,我应该放弃Linux方法并使用DOS。我们公司没有Linux知识,而且规模很小,出于个人职业原因,我对学习DOS等冗余技术没有兴趣。

我意识到这不完全是一个是/否类型的问题,但任何回复都将不胜感激。

GCC 4.2 没有 C++11 支持,但 C++03 支持应该很好,您应该能够找到可以轻松处理这个问题的 Boost 版本。

最终,Linux 有许多你在 DOS 中找不到的优点——例如,没有分段、虚拟内存,以及使软件开发更容易、更快捷的东西,更不用说你可能需要的其他库了,因为今天绝对没有人会支持 DOS。

对于基于 Linux 的系统,没有太多理由坚持使用固定的 OS+工具链版本,因为向后兼容性在 Unix 世界中是一个非常严重的问题。有时针对某些固定系统是件好事,但坦率地说,这些是相当罕见的,即使这样,只要在目标 macine/平台上进行测试,也可以在最新系统上完成开发。

基本上,您可以升级到例如Ubuntu 12.04 LTS(长期支持)进行开发并坚持下去,目标平台/机器上不太可能出现任何类型的不兼容问题。

库等倾向于在 Linux 发行版、新版本的 Linux 发行版和其他 *nix 操作系统之间变化。

我曾经开发过一个C++应用程序,它必须在Windows和RHEL上运行。 我是团队中的"Linux人",所以我必须处理我们用来构建和在Windows上工作的所有开源Linux库(使用cygwin),并获得在Windows上工作的开发人员所做的最新更改在Linux上工作。

在开发过程中,我们升级到了较新版本的RHEL。 这不是一次有趣的经历。 库版本已更改,一些已被删除,以支持其他"等效"库等。 摆脱更改 gcc 版本导致的所有问题也需要一点时间(当然,较新的 gcc 版本不太宽容,并且在我们的代码中暴露了一些可能不太正确的东西)。

在大型演示前几天,管理层告诉我们,该应用程序也需要在 Solaris 上运行。 这不是一项微不足道的任务 - Solaris不是Linux。 他们暗示希望它一度在IRIX上运行。 很高兴没有发生。

我建议您选择Linux发行版,gcc等的特定版本,并在整个开发过程中坚持使用。 升级这些东西可能会在以后软件维护时发生。 RHEL提供长期支持,但需要付费。 你也可以考虑新发布的Ubuntu 12.04 LTS