关于嵌入式系统最烦人的事情之一就是它们缺乏一个公共的API。对于那些希望在基于不同操作系统的产品之间共享应用程序代码的公司来说,这是一个特别问题。我曾经工作过的一个公司甚至在操作系统之上创建它们自己的层,只是为了把它们的应用程序从这些操作系统之间的差别里分用出来。但是可以肯定,这不过是把创建另一个API 的问题加入到总的问题中来。每一个嵌入式的操作系统的基本功能大致一样。每一个函数或者方法代表了操作系统可以向应用程序提供的一种服务。但是没有那么多不同的可能的服务。经常是这种情况:两个实现之间真正的不同只是在于函数和方法的名称。
这个问题已经持续了几十年了,并且在可见的日子里也不会解决。然而,与此同时的Win32 和POSIX API 已经分别占据了PC 机和Unix 工作站。因此,为什么没有出现一个嵌入式操作系统的类似标准呢?不是因为缺乏尝试。实际上,原始POSIX 标准(IEEE 1003.1)的tb作者们也为实时操作系统创建了一个标准(IEEE 1003.4h)。一些很像Unix 的嵌入式操作系统(让人想起了VxWorks 和LynxOS)是符合这个标准API 的。然而,对于绝大部分的应用程序员来说,必须为每一个使用的操作系统学习一个新的API。
幸运的是,有了一线曙光,Java 编程语言已经支持嵌入式的多任务和任务同步。那意味着不管Java 程序运行在什么样的操作系统中,创建和处理任务以及使它们同步的机理是一样的。由于这个以及其他的一些原因,对于嵌入式程序员来说Java 会是一个很好的语言。我希望有一天大家需要一本关于嵌入式系统用Java 语言编程的书,并且因此不再需要这样介绍了。