關于嵌入式系統最煩人的事情之一就是它們缺乏一個公共的API。對于那些希望在基于不同操作系統的產品之間共享應用程序代碼的公司來說,這是一個特別問題。我曾經工作過的一個公司甚至在操作系統之上創建它們自己的層,只是為了把它們的應用程序從這些操作系統之間的差別里分用出來。但是可以肯定,這不過是把創建另一個API 的問題加入到總的問題中來。每一個嵌入式的操作系統的基本功能大致一樣。每一個函數或者方法代表了操作系統可以向應用程序提供的一種服務。但是沒有那么多不同的可能的服務。經常是這種情況:兩個實現之間真正的不同只是在于函數和方法的名稱。
這個問題已經持續了幾十年了,并且在可見的日子里也不會解決。然而,與此同時的Win32 和POSIX API 已經分別占據了PC 機和Unix 工作站。因此,為什么沒有出現一個嵌入式操作系統的類似標準呢?不是因為缺乏嘗試。實際上,原始POSIX 標準(IEEE 1003.1)的tb作者們也為實時操作系統創建了一個標準(IEEE 1003.4h)。一些很像Unix 的嵌入式操作系統(讓人想起了VxWorks 和LynxOS)是符合這個標準API 的。然而,對于絕大部分的應用程序員來說,必須為每一個使用的操作系統學習一個新的API。
幸運的是,有了一線曙光,Java 編程語言已經支持嵌入式的多任務和任務同步。那意味著不管Java 程序運行在什么樣的操作系統中,創建和處理任務以及使它們同步的機理是一樣的。由于這個以及其他的一些原因,對于嵌入式程序員來說Java 會是一個很好的語言。我希望有一天大家需要一本關于嵌入式系統用Java 語言編程的書,并且因此不再需要這樣介紹了。