RTOS的必備特性
用于嵌入式環(huán)境的操作系統RTOS與桌面操作系統有很多本質(zhì)的不同。這些不同的特性導致產(chǎn)品開(kāi)發(fā)的不同結果。
嵌入式環(huán)境給人的第一印象就是占用空間小。所以,普通的Linux或者Windows操作系統要變成嵌入式操作系統,首先就是要進(jìn)行裁剪。然而,與桌面環(huán)境相比,嵌入式環(huán)境對于操作系統系統要求不僅僅是“小”,二者在設計要求上有著(zhù)本質(zhì)的不同。這些不同主要體現在可裁剪性、實(shí)時(shí)性和可靠性等三個(gè)方面。
隨機應變――可裁剪性
從硬件環(huán)境來(lái)看,桌面操作系統具有標準化的CPU、存儲和I/O架構,而嵌入式環(huán)境中的RTOS的硬件環(huán)境只有標準化的CPU,沒(méi)有標準化的存儲、I/O和顯示器架構。
從應用環(huán)境來(lái)看,桌面操作系統面向復雜多變的應用,而RTOS面向單一設備的單一應用。
從開(kāi)發(fā)界面來(lái)看,桌面操作系統試圖給開(kāi)發(fā)人員提供一個(gè)“黑箱”,讓開(kāi)發(fā)人員通過(guò)一系列標準的系統調用來(lái)使用操作系統中的功能,而嵌入式試圖為開(kāi)發(fā)人員提供一個(gè)“白箱”,讓開(kāi)發(fā)人員可以自主控制系統的所有資源。
總之,桌面操作系統的研究開(kāi)發(fā)指導思想是盡可能在不改變自身的前提下具有廣泛的適應性。也就是說(shuō):不論應用環(huán)境怎么變化,最好都不要對自身內部產(chǎn)生什么影響,也不要求自身做太多的變化。反過(guò)來(lái),應用于嵌入式環(huán)境的RTOS,在研發(fā)的時(shí)候就必須立足于改變自身、開(kāi)放自身,讓開(kāi)發(fā)人員可以根據硬件環(huán)境和應用環(huán)境的不同而對操作系統進(jìn)行靈活的裁剪和配置,因為對于任何一個(gè)具體的嵌入式設備,它的功能是確定的,因此只要從原有操作系統中把這個(gè)特定應用所需的功能拿進(jìn)來(lái)即可。
應當指出的是:如果一個(gè)操作系統平臺只能依靠手工的方式去掉一些代碼,這根本就不是可裁剪性。所謂可裁剪性是在軟件工程階段利用軟件配置方法實(shí)現軟件構件的“即插即用”。
可裁剪性帶給用戶(hù)的一個(gè)最直接的好處是硬件成本降低,這對于成本敏感的應用,如消費電子類(lèi)設備,具有重要的現實(shí)意義。由于設備中只包含應用程序用到的那部分操作系統功能,這就使得系統變得簡(jiǎn)單、易把握,從而提高系統的可靠性。
精確到位――實(shí)時(shí)性
許多人都把實(shí)時(shí)性理解為速度快。那么,速度快到什么程度才算是達到實(shí)時(shí)性呢?其實(shí),所謂實(shí)時(shí)性,其核心含義在于確定性,而不是單純的速度快。也就是說(shuō),RTOS所要求的是在規定的時(shí)間內做完應該做的事情,并且操作系統的行為(執行線(xiàn)索)是確定的,這是寫(xiě)出高可靠性程序的基礎。如果完成同樣的動(dòng)作,有的時(shí)候快,有的時(shí)候慢,且執行線(xiàn)索千差萬(wàn)別,程序員無(wú)法把握,可靠性就無(wú)從保證。
嵌入式系統為什么對實(shí)時(shí)性要求那么高呢?因為嵌入式系統主要是對儀器設備的動(dòng)作進(jìn)行監測控制的,而一般的桌面操作系統基本上是根據人在鍵盤(pán)和鼠標發(fā)出的命令進(jìn)行工作。相對而言,儀器設備的動(dòng)作具有嚴格的、機械的時(shí)序要求,而人的動(dòng)作和反應在時(shí)序上并不那么嚴格。比如,用于控制火箭發(fā)動(dòng)機的嵌入式系統,它所發(fā)出的指令不僅要速度快,而且多個(gè)發(fā)動(dòng)機之間的時(shí)序要求非常嚴格,否則就會(huì )差之毫厘、謬之千里。在這樣的應用環(huán)境中,非實(shí)時(shí)的普通操作系統無(wú)論如何是無(wú)法適應的。
如果我們所開(kāi)發(fā)的設備并不是像航空航天器那樣生命攸關(guān)或者生產(chǎn)控制那樣的關(guān)鍵任務(wù)系統,而是像消費電子類(lèi)那樣,即使出現錯誤也不會(huì )造成災難性后果的設備,那么實(shí)時(shí)性(嚴格地講是確定性)是否還具有現實(shí)意義呢?答案是肯定的!設備的高可靠性可以有效地降低維護成本;軟件運行效率高也會(huì )降低對CPU的要求,從而降低硬件成本。對于消費電子產(chǎn)品這類(lèi)價(jià)格十分敏感的產(chǎn)品,實(shí)時(shí)性、可靠性仍然是非常值得重視的問(wèn)題。
堅如磐石DD可靠性
桌面操作系統與RTOS相比,另一個(gè)差別就是對于穩定性、可靠性方面的設計思路。一方面,桌面操作系統比較龐大、復雜,而RTOS比較小巧、簡(jiǎn)捷,而“越簡(jiǎn)單、越可靠,越復雜、故障概率越大”這又是一個(gè)常理。另一方面,更重要的是:桌面操作環(huán)境與嵌入式環(huán)境在設計思路上有一個(gè)重大的不同――桌面環(huán)境假定應用軟件與操作系統相比而言可以是不可靠的,而嵌入式環(huán)境假定應用軟件與操作系統一樣可靠。
運行于嵌入式環(huán)境中的RTOS要求應用軟件具有與操作系統同樣的可靠性,這種設計思路對應用開(kāi)發(fā)人員提出了更高的要求,同時(shí)也要求操作系統自身足夠開(kāi)放。
著(zhù)名的“木桶原理”告訴我們,局部的不足會(huì )導致整體的缺陷。要保證系統的可靠性,必須保證系統中每一個(gè)部分都是可靠的,任何部分的不可靠都會(huì )導致系統整體的不可靠。大多數桌面系統都是上千萬(wàn)行代碼的龐大而復雜的系統,即使有源代碼程序員也難以把握。而且對開(kāi)發(fā)人員來(lái)說(shuō),桌面系統龐雜的細節是隱蔽在一個(gè)個(gè)的固定的接口下的,是一個(gè)黑箱,很難把握具體執行的線(xiàn)索。即便其內核是足夠可靠的,但它的應用環(huán)境復雜多樣、千差萬(wàn)別,其中常常有一些應用并不是那么穩定可靠,從而破壞了整體系統的可靠性。相反,RTOS對軟件開(kāi)發(fā)人員來(lái)說(shuō)是完全開(kāi)放的,是一個(gè)白箱,允許開(kāi)發(fā)人員非常清楚地了解和掌握操作系統內部情況,對存儲器中的每一位和每一個(gè)I/O接口進(jìn)行操作控制,從而可以設計出高效穩定的應用軟件。
評論