嵌入式操作系统与
通用操作系统的最显著的区别之一就是它的可移植性。一款嵌入式操作系统通常可以运行在不同
体系结构的处理器和
开发板上。为了使嵌入式操作系统可以在某款具体的目标设备上运行,嵌入式操作系统的编写者通常无法一次性完成整个操作系统的代码,而必须把一部分与具体硬件设备相关的代码作为抽象的接口保留出来,让提供硬件的OEM厂商来完成。这样才可以保证整个操作系统的可移植性。这些代码通常是
板级支持包(Board Support Package, BSP)的一部分。例如:不同处理器和
开发板通常都会提供实时钟支持,用来得到当前的时间日期,但是实时钟的实现方式却不胜枚举。如何告诉嵌入式操作系统当前的时间,就是操作系统移植者要完成的任务了。
系统移植人员不但要对嵌入式操作系统提供的接口了如指掌,还要对操作系统运行的硬件有极为深入的了解,此类开发人员可能同时会身兼
软件工程师和
硬件工程师的双重身份——让嵌入式操作系统在自己设计的硬件平台上运行起来。