嵌入式操作系統(tǒng)與通用操作系統(tǒng)的最顯著的區(qū)別之一就是它的可移植性。
一款嵌入式操作系統(tǒng)通??梢赃\(yùn)行在不同體系結(jié)構(gòu)的處理器和開發(fā)板上。為了使嵌入式操作系統(tǒng)可以在某款具體的目標(biāo)設(shè)備上運(yùn)行,嵌入式操作系統(tǒng)的編寫者通常無法一次性完成整個(gè)操作系統(tǒng)的代碼,而必須把一部分與具體硬件設(shè)備相關(guān)的代碼作為抽象的接口保留出來,讓提供硬件的OEM廠商來完成。這樣才可以保證整個(gè)操作系統(tǒng)的可移植性。這些代碼通常是板級(jí)支持包(Board Support Package, BSP)的一部分。
例如:不同處理器和開發(fā)板通常都會(huì)提供實(shí)時(shí)鐘支持,用來得到當(dāng)前的時(shí)間日期,但是實(shí)時(shí)鐘的實(shí)現(xiàn)方式卻不勝枚舉。如何告訴嵌入式操作系統(tǒng)當(dāng)前的時(shí)間,就是操作系統(tǒng)移植者要完成的任務(wù)了。
系統(tǒng)移植人員不但要對(duì)嵌入式操作系統(tǒng)提供的接口了如指掌,還要對(duì)操作系統(tǒng)運(yùn)行的硬件有極為深入的了解,此類開發(fā)人員可能同時(shí)會(huì)身兼軟件工程師和硬件工程師的雙重身份——讓嵌入式操作系統(tǒng)在自己設(shè)計(jì)的硬件平臺(tái)上運(yùn)行起來。