




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1第五章第五章中間件:嵌入式操作系統(tǒng)和中間件:嵌入式操作系統(tǒng)和用戶接口用戶接口2教材內(nèi)容5.1 嵌入式操作系統(tǒng) 5.1.1 操作系統(tǒng)體系結(jié)構(gòu) 5.1.2 實時特性 5.1.3 操作系統(tǒng)裁剪 5.1.4 嵌入式操作系統(tǒng)評測 5.2 用戶接口(UI) 5.2.1 UI的定義 5.2.2 UI的發(fā)展歷程 5.2.3 嵌入式UI的結(jié)構(gòu)特點 5.2.4 嵌入式UI設(shè)計原則 中間件指中間件指5層模型中的第三、四層,通常由兩部分軟件程序構(gòu)成。對于層模型中的第三、四層,通常由兩部分軟件程序構(gòu)成。對于低級的專用智能設(shè)備,如工業(yè)儀表,通常不需要專門的操作系統(tǒng)的支持,低級的專用智能設(shè)備,如工業(yè)儀表,通常不需要專門的
2、操作系統(tǒng)的支持,為了提高系統(tǒng)的靈活性、可復(fù)用性,縮短研發(fā)周期,高端嵌入式系統(tǒng)借鑒為了提高系統(tǒng)的靈活性、可復(fù)用性,縮短研發(fā)周期,高端嵌入式系統(tǒng)借鑒了通用計算機的一些概念和方法,建立了嵌入式操作系統(tǒng)等支持軟件。中了通用計算機的一些概念和方法,建立了嵌入式操作系統(tǒng)等支持軟件。中間件可使用戶應(yīng)用程序與底層的接口具有更好的一致性,降低對硬件和基間件可使用戶應(yīng)用程序與底層的接口具有更好的一致性,降低對硬件和基礎(chǔ)數(shù)據(jù)操作的依賴。中間件功能越強大,則對上層的平整度越好,但存儲礎(chǔ)數(shù)據(jù)操作的依賴。中間件功能越強大,則對上層的平整度越好,但存儲量和執(zhí)行速度都會付出代價。量和執(zhí)行速度都會付出代價。35.1 嵌入式操作
3、系統(tǒng)嵌入式操作系統(tǒng) 嵌入式操作系統(tǒng)是在專用智能設(shè)備的硬件基礎(chǔ)上,借鑒了嵌入式操作系統(tǒng)是在專用智能設(shè)備的硬件基礎(chǔ)上,借鑒了通用計算機操作系統(tǒng)的一些概念、結(jié)構(gòu)等建立的具有嵌入通用計算機操作系統(tǒng)的一些概念、結(jié)構(gòu)等建立的具有嵌入式特點的操作系統(tǒng)。式特點的操作系統(tǒng)。 顯然,它的根本仍是通用操作系統(tǒng)的骨架,但具體的功能、顯然,它的根本仍是通用操作系統(tǒng)的骨架,但具體的功能、實現(xiàn)方法等都須根據(jù)嵌入式系統(tǒng)硬件的具體情況進行修改。實現(xiàn)方法等都須根據(jù)嵌入式系統(tǒng)硬件的具體情況進行修改。 因此常見的很多嵌入式操作系統(tǒng)都脫胎于通用操作系統(tǒng),因此常見的很多嵌入式操作系統(tǒng)都脫胎于通用操作系統(tǒng),典型的就是典型的就是WinCE、
4、Embedded Linux。 研究嵌入式操作系統(tǒng)的目的:研究嵌入式操作系統(tǒng)的目的:1.設(shè)計專用的嵌入式操作系設(shè)計專用的嵌入式操作系統(tǒng);統(tǒng);2.更好的對標(biāo)準(zhǔn)嵌入式操作進行裁剪、配置。更好的對標(biāo)準(zhǔn)嵌入式操作進行裁剪、配置。 嵌入式操作系統(tǒng)的基本要求包括嵌入式操作系統(tǒng)的基本要求包括 結(jié)構(gòu)方面:軟件規(guī)模適當(dāng)、執(zhí)行速度快、可根據(jù)需要進行裁剪等;結(jié)構(gòu)方面:軟件規(guī)模適當(dāng)、執(zhí)行速度快、可根據(jù)需要進行裁剪等; 性能指標(biāo)方面:實時性、能耗控制、可靠性等;性能指標(biāo)方面:實時性、能耗控制、可靠性等; 為了適應(yīng)要求,嵌入式操作系統(tǒng)的編程設(shè)計盡可能的簡潔,為了適應(yīng)要求,嵌入式操作系統(tǒng)的編程設(shè)計盡可能的簡潔,因此其結(jié)構(gòu)相
5、對緊湊,很難象通用操作系統(tǒng)那樣具有清晰因此其結(jié)構(gòu)相對緊湊,很難象通用操作系統(tǒng)那樣具有清晰的結(jié)構(gòu)和層次。的結(jié)構(gòu)和層次。45.1.1 操作系統(tǒng)體系結(jié)構(gòu)操作系統(tǒng)體系結(jié)構(gòu)三組概念三組概念 操作系統(tǒng)和內(nèi)核操作系統(tǒng)和內(nèi)核內(nèi)核是操作系統(tǒng)的核心部分,而非全部,它向外提供了計算機內(nèi)核是操作系統(tǒng)的核心部分,而非全部,它向外提供了計算機設(shè)備的核心管理調(diào)用,除內(nèi)核外,操作系統(tǒng)還包括其它系統(tǒng)程序。設(shè)備的核心管理調(diào)用,除內(nèi)核外,操作系統(tǒng)還包括其它系統(tǒng)程序。 開發(fā)態(tài)和運行態(tài)開發(fā)態(tài)和運行態(tài)開發(fā)態(tài)指操作系統(tǒng)在開發(fā)階段,內(nèi)核和其它程序尚未編譯為可開發(fā)態(tài)指操作系統(tǒng)在開發(fā)階段,內(nèi)核和其它程序尚未編譯為可運行機器代碼時的狀態(tài)。程序以源
6、碼形式(數(shù)據(jù))存在與非揮發(fā)性運行機器代碼時的狀態(tài)。程序以源碼形式(數(shù)據(jù))存在與非揮發(fā)性存儲器(宿主機)內(nèi)。存儲器(宿主機)內(nèi)。運行態(tài)指操作系統(tǒng)已完成編譯、連接,并下載到硬件系統(tǒng)上,運行態(tài)指操作系統(tǒng)已完成編譯、連接,并下載到硬件系統(tǒng)上,程序以機器碼形式(程序)存在于內(nèi)存中,內(nèi)核只有一個副本。程序以機器碼形式(程序)存在于內(nèi)存中,內(nèi)核只有一個副本。 用戶空間(用戶態(tài))和內(nèi)核空間(內(nèi)核態(tài))用戶空間(用戶態(tài))和內(nèi)核空間(內(nèi)核態(tài))操作系統(tǒng)運行態(tài)時總的地址空間分為用戶空間和內(nèi)核空間。運操作系統(tǒng)運行態(tài)時總的地址空間分為用戶空間和內(nèi)核空間。運行中的操作系統(tǒng)中內(nèi)核所在的地址空間即為內(nèi)核空間,除此之外的行中的操作
7、系統(tǒng)中內(nèi)核所在的地址空間即為內(nèi)核空間,除此之外的外部管理程序、用戶進程占據(jù)用戶空間。一個完整的嵌入式系統(tǒng)軟外部管理程序、用戶進程占據(jù)用戶空間。一個完整的嵌入式系統(tǒng)軟件同時包含這兩部分,當(dāng)運行內(nèi)核代碼時處于內(nèi)核空間,即稱件同時包含這兩部分,當(dāng)運行內(nèi)核代碼時處于內(nèi)核空間,即稱CPU處于內(nèi)核態(tài),否則為用戶態(tài)。處于內(nèi)核態(tài),否則為用戶態(tài)。5 劃分內(nèi)核空間與用戶空間是為了充分保證內(nèi)核代碼和數(shù)據(jù)的安全性安全性,早期通用操作系統(tǒng)和低級的嵌入式操作系統(tǒng)并不嚴格區(qū)分這兩個空間和CPU狀態(tài),這種系統(tǒng)可能由于用戶程序的錯誤造成內(nèi)核崩潰用戶程序的錯誤造成內(nèi)核崩潰。操作系統(tǒng)的基本功能:進進程調(diào)度程調(diào)度、進程間通信進程間通
8、信、內(nèi)內(nèi)存管理存管理、設(shè)備管理設(shè)備管理、文件文件系統(tǒng)系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)網(wǎng)絡(luò)系統(tǒng)等。操作系統(tǒng)與內(nèi)核之間存在差別,這在嵌入式系統(tǒng)中非常重要。內(nèi)核可能具備了操作系統(tǒng)的所有功能,也可能只具備一部分,這種差別決定了嵌入式操作系統(tǒng)的三種基本體系結(jié)構(gòu)。61.整體內(nèi)核結(jié)構(gòu)整體內(nèi)核結(jié)構(gòu) 也稱單內(nèi)核結(jié)構(gòu)、大內(nèi)核結(jié)構(gòu),幾乎涵蓋了所有操作系統(tǒng)也稱單內(nèi)核結(jié)構(gòu)、大內(nèi)核結(jié)構(gòu),幾乎涵蓋了所有操作系統(tǒng)功能的內(nèi)核結(jié)構(gòu)。內(nèi)核由多個模塊構(gòu)成,遵循特定的接口功能的內(nèi)核結(jié)構(gòu)。內(nèi)核由多個模塊構(gòu)成,遵循特定的接口規(guī)范相互調(diào)用。所有模塊編譯連接為一個可執(zhí)行文件規(guī)范相互調(diào)用。所有模塊編譯連接為一個可執(zhí)行文件。 內(nèi)核所有模塊統(tǒng)一封裝,內(nèi)核所有模塊統(tǒng)一
9、封裝,對外接口也統(tǒng)一設(shè)計;對外接口也統(tǒng)一設(shè)計; 各模塊之間相互調(diào)用,依各模塊之間相互調(diào)用,依賴程度高,系統(tǒng)內(nèi)部結(jié)構(gòu)賴程度高,系統(tǒng)內(nèi)部結(jié)構(gòu)模糊;模糊; 模塊間調(diào)用直接、簡潔,模塊間調(diào)用直接、簡潔,整個系統(tǒng)執(zhí)行效率高。整個系統(tǒng)執(zhí)行效率高。7 整體內(nèi)核與硬件、用戶空間程序的關(guān)系整體內(nèi)核與硬件、用戶空間程序的關(guān)系 8 整體內(nèi)核的缺點:整體內(nèi)核的缺點:內(nèi)核結(jié)構(gòu)模糊,難于裁剪;內(nèi)核結(jié)構(gòu)模糊,難于裁剪;內(nèi)核代碼各模塊調(diào)試困難;內(nèi)核代碼各模塊調(diào)試困難;內(nèi)核調(diào)試困難;內(nèi)核調(diào)試困難;內(nèi)核穩(wěn)定性較差;內(nèi)核穩(wěn)定性較差;內(nèi)核規(guī)模可能很大;內(nèi)核規(guī)模可能很大;92.微內(nèi)核結(jié)構(gòu)微內(nèi)核結(jié)構(gòu) 也稱插件式結(jié)構(gòu),類似客戶也稱插件式結(jié)
10、構(gòu),類似客戶端端/服務(wù)器模式。服務(wù)器模式。 操作系統(tǒng)分為兩個部分:系操作系統(tǒng)分為兩個部分:系統(tǒng)必不可少的功能集合,操統(tǒng)必不可少的功能集合,操作系統(tǒng)擴展的功能。前者構(gòu)作系統(tǒng)擴展的功能。前者構(gòu)成微內(nèi)核,運行于內(nèi)核空間,成微內(nèi)核,運行于內(nèi)核空間,后者則運行于用戶空間。后者則運行于用戶空間。 QNX10 微內(nèi)核應(yīng)包含的功能:微內(nèi)核應(yīng)包含的功能: 基本進程調(diào)度管理基本進程調(diào)度管理 基本進程通信管理基本進程通信管理 基本設(shè)備管理基本設(shè)備管理 基本內(nèi)存管理基本內(nèi)存管理 中斷管理中斷管理其它(設(shè)備驅(qū)動程序、文件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、高級內(nèi)存管理、高級進其它(設(shè)備驅(qū)動程序、文件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、高級內(nèi)存管理、高級進程管
11、理等)作為外圍模塊,分別建立相應(yīng)的進程,稱為服務(wù)進程,與程管理等)作為外圍模塊,分別建立相應(yīng)的進程,稱為服務(wù)進程,與應(yīng)用程序以客戶端應(yīng)用程序以客戶端/服務(wù)器方式運行在同一層。服務(wù)器方式運行在同一層。11 最簡單的微內(nèi)核主要功能就是消息交換:確認消息、在組件間傳送消息、準(zhǔn)許對硬件操作消息。 根據(jù)這樣的思路,微內(nèi)核系統(tǒng)支持多個進程同時存活,這些進程分別完成一部分功能,組合在一起實現(xiàn)系統(tǒng)完整的功能。系統(tǒng)工作的基本過程就是進程間服務(wù)的相互調(diào)用,由于所有進程都處于虛擬空間中,相互之間無法實現(xiàn)通信,信息的交換必須通過內(nèi)核,如圖。 這樣的機制增加了信息交換的開銷增加了信息交換的開銷。 微內(nèi)核的功能調(diào)用可一次
12、完成,因此具有最高的效率,因此微內(nèi)核中集成哪些功能需要根據(jù)實際要求進行設(shè)計。保證要求高的某些任務(wù)具有足夠高的效率。12 微內(nèi)核的優(yōu)點:微內(nèi)核的優(yōu)點: 結(jié)構(gòu)規(guī)范,易于裁剪;結(jié)構(gòu)規(guī)范,易于裁剪; 易于編程設(shè)計;易于編程設(shè)計; 調(diào)試簡單;調(diào)試簡單; 魯棒性好;魯棒性好; 擴展性好;擴展性好; 移植性好;移植性好; 降低內(nèi)存的固定使用量;降低內(nèi)存的固定使用量; 內(nèi)核規(guī)模越小,實時性能越好(中斷響應(yīng)速度快);內(nèi)核規(guī)模越小,實時性能越好(中斷響應(yīng)速度快);微內(nèi)核的缺點:微內(nèi)核的缺點: 整體效率低;整體效率低; 資源管理復(fù)雜;資源管理復(fù)雜;133.層次內(nèi)核結(jié)構(gòu)層次內(nèi)核結(jié)構(gòu) 一種基于分層思想的內(nèi)核結(jié)構(gòu)。一種基
13、于分層思想的內(nèi)核結(jié)構(gòu)。 操作系統(tǒng)被分為若干模塊,按功能流程的次序排列稱若操作系統(tǒng)被分為若干模塊,按功能流程的次序排列稱若干層,下層模塊封裝內(nèi)部細節(jié)并向上提供統(tǒng)一的抽象和干層,下層模塊封裝內(nèi)部細節(jié)并向上提供統(tǒng)一的抽象和接口,上層模塊調(diào)用下層模塊提供的接口,各層次間的接口,上層模塊調(diào)用下層模塊提供的接口,各層次間的實現(xiàn)比較獨立。實現(xiàn)比較獨立。層次結(jié)構(gòu)的主要貢獻在于理論,層次結(jié)構(gòu)的主要貢獻在于理論,它給出了構(gòu)建操作系統(tǒng)的一個它給出了構(gòu)建操作系統(tǒng)的一個基本思路,實際工程中則并非基本思路,實際工程中則并非必須嚴格采用這樣的結(jié)構(gòu),它必須嚴格采用這樣的結(jié)構(gòu),它通常融合在其它結(jié)構(gòu)的系統(tǒng)中。通常融合在其它結(jié)構(gòu)的
14、系統(tǒng)中。14 層次結(jié)構(gòu)內(nèi)部的調(diào)用關(guān)系 系統(tǒng)調(diào)用只能是調(diào)用與其相鄰的下層。 同層模塊間不允許相互調(diào)用的稱為全序結(jié)構(gòu)全序結(jié)構(gòu)關(guān)系,全序結(jié)構(gòu)不存在循環(huán)調(diào)用。 同層模塊間允許相互調(diào)用,可以有循環(huán)調(diào)用的結(jié)構(gòu)曾為半半序結(jié)構(gòu)序結(jié)構(gòu)關(guān)系。15 層次內(nèi)核的特點:層次內(nèi)核的特點: 把一個復(fù)雜的系統(tǒng)分解有許多功能單一的模塊,各模塊間把一個復(fù)雜的系統(tǒng)分解有許多功能單一的模塊,各模塊間組織結(jié)構(gòu)和依賴關(guān)系清晰明確,適合進行系統(tǒng)功能劃分。組織結(jié)構(gòu)和依賴關(guān)系清晰明確,適合進行系統(tǒng)功能劃分。 分層思想有利于組織操作系統(tǒng)的開發(fā),易于測試和診斷,分層思想有利于組織操作系統(tǒng)的開發(fā),易于測試和診斷,也使得系統(tǒng)的修改和擴展相對容易。也使
15、得系統(tǒng)的修改和擴展相對容易。 各層次模塊間存在依賴關(guān)系,任何一層的裁剪修改都影響各層次模塊間存在依賴關(guān)系,任何一層的裁剪修改都影響其上層模塊,因此裁剪較微內(nèi)核系統(tǒng)困難。其上層模塊,因此裁剪較微內(nèi)核系統(tǒng)困難。 層次內(nèi)核的規(guī)模會隨著功能的增強而變大。層次內(nèi)核的規(guī)模會隨著功能的增強而變大。164.其它結(jié)構(gòu)其它結(jié)構(gòu)(1)外內(nèi)核)外內(nèi)核 一種縱向的操作系統(tǒng)內(nèi)核結(jié)構(gòu),設(shè)計理念是由用戶程序設(shè)一種縱向的操作系統(tǒng)內(nèi)核結(jié)構(gòu),設(shè)計理念是由用戶程序設(shè)計者來決定硬件接口的設(shè)計。計者來決定硬件接口的設(shè)計。 外內(nèi)核本身非常小,只負責(zé)系統(tǒng)保護和系統(tǒng)資源復(fù)用相關(guān)外內(nèi)核本身非常小,只負責(zé)系統(tǒng)保護和系統(tǒng)資源復(fù)用相關(guān)的服務(wù)。的服務(wù)。
16、 外內(nèi)核不對硬件及其驅(qū)動進行抽象封裝,而直接讓應(yīng)用程外內(nèi)核不對硬件及其驅(qū)動進行抽象封裝,而直接讓應(yīng)用程序請求一塊特定的物理空間、磁盤塊等。系統(tǒng)則只保證被序請求一塊特定的物理空間、磁盤塊等。系統(tǒng)則只保證被請求的資源當(dāng)前是空閑的,應(yīng)用程序就允許直接存取它。請求的資源當(dāng)前是空閑的,應(yīng)用程序就允許直接存取它。 運行期間,系統(tǒng)需要額外的硬件、數(shù)據(jù)運行庫的支持,這運行期間,系統(tǒng)需要額外的硬件、數(shù)據(jù)運行庫的支持,這些庫不會封裝在內(nèi)核中,而是存在于用戶空間。些庫不會封裝在內(nèi)核中,而是存在于用戶空間。17 (2)無核)無核 沒有專門的內(nèi)核,所有軟件程序都運行在用戶空間。在系沒有專門的內(nèi)核,所有軟件程序都運行在用
17、戶空間。在系統(tǒng)運行過程中,它們不永久占據(jù)某些存儲單元,也可能在統(tǒng)運行過程中,它們不永久占據(jù)某些存儲單元,也可能在完成一些任務(wù)后被終止。完成一些任務(wù)后被終止。 為了完成操作系統(tǒng)的各項工作,系統(tǒng)必須具有一些特定的為了完成操作系統(tǒng)的各項工作,系統(tǒng)必須具有一些特定的所謂所謂“元對象元對象”,一旦某個應(yīng)用程序需要執(zhí)行操作系統(tǒng)的,一旦某個應(yīng)用程序需要執(zhí)行操作系統(tǒng)的工作,如進程的調(diào)度、通信等,它就啟動相應(yīng)的工作,如進程的調(diào)度、通信等,它就啟動相應(yīng)的“元對元對象象”,創(chuàng)建一個該對象的實例,當(dāng)任務(wù)結(jié)束,這個實例也,創(chuàng)建一個該對象的實例,當(dāng)任務(wù)結(jié)束,這個實例也就終止了。就終止了。185.體系結(jié)構(gòu)案例分析體系結(jié)構(gòu)案
18、例分析了解常見操作系統(tǒng)是如何組織系統(tǒng)各項功能的。了解常見操作系統(tǒng)是如何組織系統(tǒng)各項功能的。Embedded Linux19(1)Embedded LinuxLinux的環(huán)境改編版,系統(tǒng)架構(gòu)不變。的環(huán)境改編版,系統(tǒng)架構(gòu)不變。Linux在整體內(nèi)核結(jié)在整體內(nèi)核結(jié)構(gòu)的基礎(chǔ)上融入了微內(nèi)核思想。構(gòu)的基礎(chǔ)上融入了微內(nèi)核思想。Linux系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu) Linux體系包含四個部分。體系包含四個部分。系統(tǒng)調(diào)用接口為應(yīng)用程序提供調(diào)用系統(tǒng)功系統(tǒng)調(diào)用接口為應(yīng)用程序提供調(diào)用系統(tǒng)功能的渠道,它本身由一系列代碼構(gòu)成(子能的渠道,它本身由一系列代碼構(gòu)成(子程序)。調(diào)用入口在用戶態(tài),接收應(yīng)用程程序)。調(diào)用入口在用戶態(tài),接收應(yīng)用
19、程序的調(diào)用和實參。然后進入核心態(tài),調(diào)用序的調(diào)用和實參。然后進入核心態(tài),調(diào)用內(nèi)核服務(wù),服務(wù)執(zhí)行完成后向接口子程序內(nèi)核服務(wù),服務(wù)執(zhí)行完成后向接口子程序返回服務(wù)結(jié)構(gòu)數(shù)據(jù),接口返回用戶態(tài),再返回服務(wù)結(jié)構(gòu)數(shù)據(jù),接口返回用戶態(tài),再向應(yīng)用程序返回服務(wù)結(jié)果數(shù)據(jù)。向應(yīng)用程序返回服務(wù)結(jié)果數(shù)據(jù)。Linux內(nèi)核:運行在核心態(tài)的一系列子程序,內(nèi)核:運行在核心態(tài)的一系列子程序,向上為調(diào)用接口提供服務(wù),向下調(diào)用各種向上為調(diào)用接口提供服務(wù),向下調(diào)用各種硬件驅(qū)動程序操作硬件資源。硬件驅(qū)動程序操作硬件資源。20 Linux內(nèi)核結(jié)構(gòu)內(nèi)核結(jié)構(gòu) Linux內(nèi)核由眾多代碼文內(nèi)核由眾多代碼文件組成,編譯連接為一個件組成,編譯連接為一個單獨
20、可執(zhí)行文件。單獨可執(zhí)行文件。 內(nèi)核根據(jù)模塊機制將某些內(nèi)核根據(jù)模塊機制將某些非核心任務(wù)封裝成外部模非核心任務(wù)封裝成外部模塊,在運行過程中動態(tài)加塊,在運行過程中動態(tài)加載和卸載。這種方式與微載和卸載。這種方式與微內(nèi)核的差別在于:系統(tǒng)有內(nèi)核的差別在于:系統(tǒng)有些特殊的處理方法,使動些特殊的處理方法,使動態(tài)加載的模塊運行在核心態(tài)加載的模塊運行在核心態(tài)。態(tài)。 Linux內(nèi)核框架如圖。內(nèi)核框架如圖。 核心級部分即核心級部分即Linux內(nèi)核,內(nèi)核,它既綜合了層次設(shè)計的特它既綜合了層次設(shè)計的特點、又存在同層間的相互點、又存在同層間的相互調(diào)用。調(diào)用。21 Linux結(jié)構(gòu)的特點結(jié)構(gòu)的特點 引入了模塊體系(引入了模塊體
21、系(Modules)實現(xiàn)了它從單內(nèi)核向微內(nèi)核)實現(xiàn)了它從單內(nèi)核向微內(nèi)核的轉(zhuǎn)變,同時又兼具兩者的特點。的轉(zhuǎn)變,同時又兼具兩者的特點。 模塊動態(tài)加載進入內(nèi)核態(tài),故具有單內(nèi)核高效的特點,避模塊動態(tài)加載進入內(nèi)核態(tài),故具有單內(nèi)核高效的特點,避免了微內(nèi)核在消息傳遞方面的資源開銷。免了微內(nèi)核在消息傳遞方面的資源開銷。 動態(tài)加載克服了單內(nèi)核的靜態(tài)性和單一性,可靈活、動態(tài)動態(tài)加載克服了單內(nèi)核的靜態(tài)性和單一性,可靈活、動態(tài)地分配內(nèi)核空間資源。地分配內(nèi)核空間資源。 管理模塊需要額外的管理結(jié)構(gòu)和代碼,占用更多內(nèi)存。管理模塊需要額外的管理結(jié)構(gòu)和代碼,占用更多內(nèi)存。 模塊加載、卸載時會輕微增加資源額外開銷,降低系統(tǒng)效模塊
22、加載、卸載時會輕微增加資源額外開銷,降低系統(tǒng)效率。率。 模塊一旦加載即成為內(nèi)核的一部分,不完善的內(nèi)核給系統(tǒng)模塊一旦加載即成為內(nèi)核的一部分,不完善的內(nèi)核給系統(tǒng)安全帶來隱患。安全帶來隱患。 模塊與內(nèi)核之間的兼容問題不易解決。模塊與內(nèi)核之間的兼容問題不易解決。225.1.2 實時特性實時特性實時性:控制系統(tǒng)能夠及時處理系統(tǒng)中發(fā)生的或要求控制的實時性:控制系統(tǒng)能夠及時處理系統(tǒng)中發(fā)生的或要求控制的外部事件的能力。外部事件的能力。 實時性實際上是系統(tǒng)對各種突發(fā)事件的響應(yīng)能力,這些事實時性實際上是系統(tǒng)對各種突發(fā)事件的響應(yīng)能力,這些事件包括被控對象的變化、人的操作、系統(tǒng)自身故障等。件包括被控對象的變化、人的操
23、作、系統(tǒng)自身故障等。 所有這些事件紛繁復(fù)雜,因此嵌入式系統(tǒng)的設(shè)計必須對事所有這些事件紛繁復(fù)雜,因此嵌入式系統(tǒng)的設(shè)計必須對事件進行分級,保證某些關(guān)鍵事件的響應(yīng)。件進行分級,保證某些關(guān)鍵事件的響應(yīng)。 系統(tǒng)的響應(yīng)包括顯示輸出、通信輸出、控制輸出等。系統(tǒng)的響應(yīng)包括顯示輸出、通信輸出、控制輸出等。231.實時性能實時性能(1)實時系統(tǒng)和實時嵌入式操作系統(tǒng))實時系統(tǒng)和實時嵌入式操作系統(tǒng) 實時系統(tǒng)指計算結(jié)果的正確性不僅依賴于計算結(jié)果的邏實時系統(tǒng)指計算結(jié)果的正確性不僅依賴于計算結(jié)果的邏輯正確性,還依賴于計算結(jié)果產(chǎn)生時間的計算機系統(tǒng)。輯正確性,還依賴于計算結(jié)果產(chǎn)生時間的計算機系統(tǒng)。 實時系統(tǒng)要求各項任務(wù)應(yīng)在可確
24、定的、滿足要求的時間實時系統(tǒng)要求各項任務(wù)應(yīng)在可確定的、滿足要求的時間內(nèi)完成。內(nèi)完成。實時系統(tǒng)的分類:(按響應(yīng)時間)實時系統(tǒng)的分類:(按響應(yīng)時間) 強實時系統(tǒng):系統(tǒng)響應(yīng)時間在強實時系統(tǒng):系統(tǒng)響應(yīng)時間在msus級級 一般實時系統(tǒng):系統(tǒng)響應(yīng)時間在一般實時系統(tǒng):系統(tǒng)響應(yīng)時間在x ms級級 弱實時系統(tǒng):系統(tǒng)響應(yīng)時間在數(shù)十秒。弱實時系統(tǒng):系統(tǒng)響應(yīng)時間在數(shù)十秒。按系統(tǒng)錯過時限的嚴重性按系統(tǒng)錯過時限的嚴重性 硬實時系統(tǒng):系統(tǒng)必須嚴格按照限時硬實時系統(tǒng):系統(tǒng)必須嚴格按照限時完成任務(wù),否則即意味著嚴重事故。完成任務(wù),否則即意味著嚴重事故。 軟實時系統(tǒng):在負荷較重時允許在一定程度上降低實時性要求,一旦軟實時系統(tǒng):在
25、負荷較重時允許在一定程度上降低實時性要求,一旦任務(wù)超時限不會引起嚴重后果。任務(wù)超時限不會引起嚴重后果。24 實時嵌入式操作系統(tǒng):實時嵌入式操作系統(tǒng): 應(yīng)用于嵌入式系統(tǒng)中,有能力在響應(yīng)時間邊界內(nèi)提供滿足應(yīng)用于嵌入式系統(tǒng)中,有能力在響應(yīng)時間邊界內(nèi)提供滿足要求的服務(wù)的操作系統(tǒng)。要求的服務(wù)的操作系統(tǒng)。 操作系統(tǒng)的各方面任務(wù)都必須提供足夠高的服務(wù)效率,如操作系統(tǒng)的各方面任務(wù)都必須提供足夠高的服務(wù)效率,如進程調(diào)度、進程間通信、內(nèi)存操作等。進程調(diào)度、進程間通信、內(nèi)存操作等。應(yīng)用類型響應(yīng)要求人機接口設(shè)計復(fù)雜性功能性任務(wù)處理數(shù)文件系統(tǒng)機器實現(xiàn)機器人控制us1ms簡單/無簡單低低于5無板級數(shù)采儀表電機控制1ms有
26、時中中中/多于10無工作站過程控制客戶化微機科學(xué)數(shù)據(jù)采集us1ms簡單易用高高多有帶局域網(wǎng)高性能微機醫(yī)療影像50有高性能微機25 (2)實時系統(tǒng)特征)實時系統(tǒng)特征 異步事件響應(yīng):及時響應(yīng)各種突發(fā)事件(隨機產(chǎn)生)。異步事件響應(yīng):及時響應(yīng)各種突發(fā)事件(隨機產(chǎn)生)。 確定的切換時間和中斷延遲時間確定的切換時間和中斷延遲時間 搶占式調(diào)度:高優(yōu)先級任務(wù)搶占低級任務(wù)的控制權(quán),保證搶占式調(diào)度:高優(yōu)先級任務(wù)搶占低級任務(wù)的控制權(quán),保證高級任務(wù)的響應(yīng)速度。高級任務(wù)的響應(yīng)速度。 優(yōu)先級中斷和調(diào)度優(yōu)先級中斷和調(diào)度 同步:提供同步和協(xié)調(diào)共享數(shù)據(jù)使用和時間執(zhí)行的手段。同步:提供同步和協(xié)調(diào)共享數(shù)據(jù)使用和時間執(zhí)行的手段。 內(nèi)
27、存鎖定:將程序和部分程序鎖定在內(nèi)存中,減少它們對內(nèi)存鎖定:將程序和部分程序鎖定在內(nèi)存中,減少它們對存儲器的訪問。存儲器的訪問。 連續(xù)文件存儲方式連續(xù)文件存儲方式26 在許多嵌入式操作系統(tǒng)中不存在文件系統(tǒng)和存儲管理,整在許多嵌入式操作系統(tǒng)中不存在文件系統(tǒng)和存儲管理,整個軟件部分做成一個映象,引導(dǎo)加載時全部進入內(nèi)存,不個軟件部分做成一個映象,引導(dǎo)加載時全部進入內(nèi)存,不區(qū)分內(nèi)核空間和用戶空間。區(qū)分內(nèi)核空間和用戶空間。 一般實時操作系統(tǒng)的系統(tǒng)軟件和應(yīng)用軟件之間界限分明,一般實時操作系統(tǒng)的系統(tǒng)軟件和應(yīng)用軟件之間界限分明,并提供開發(fā)、測試、應(yīng)用環(huán)境。嵌入式實時應(yīng)用系統(tǒng)的軟并提供開發(fā)、測試、應(yīng)用環(huán)境。嵌入式
28、實時應(yīng)用系統(tǒng)的軟件開發(fā)受時間、空間開銷的限制,需要在專門的開發(fā)平臺件開發(fā)受時間、空間開銷的限制,需要在專門的開發(fā)平臺上進行軟件交叉開發(fā),開發(fā)環(huán)境與運行環(huán)境不同。上進行軟件交叉開發(fā),開發(fā)環(huán)境與運行環(huán)境不同。 嵌入式實時操作系統(tǒng)屬于強實時系統(tǒng),響應(yīng)時間在嵌入式實時操作系統(tǒng)屬于強實時系統(tǒng),響應(yīng)時間在msus級級 嵌入式操作系統(tǒng)規(guī)模小,固化使用,與應(yīng)用程序融合在一嵌入式操作系統(tǒng)規(guī)模小,固化使用,與應(yīng)用程序融合在一起,可見實時嵌入式系統(tǒng)的極限形式就是基本的單片機應(yīng)起,可見實時嵌入式系統(tǒng)的極限形式就是基本的單片機應(yīng)用系統(tǒng)。用系統(tǒng)。27 (3)內(nèi)核實現(xiàn))內(nèi)核實現(xiàn)操作系統(tǒng)的結(jié)構(gòu)操作系統(tǒng)的結(jié)構(gòu) 采用微內(nèi)核結(jié)構(gòu),
29、內(nèi)核僅包含操作系統(tǒng)最重要的核心功能,采用微內(nèi)核結(jié)構(gòu),內(nèi)核僅包含操作系統(tǒng)最重要的核心功能,是構(gòu)成一個操作系統(tǒng)其它部分的最小集。是構(gòu)成一個操作系統(tǒng)其它部分的最小集。要求要求 多任務(wù)管理:多任務(wù)對應(yīng)多個外部事件的響應(yīng),系統(tǒng)內(nèi)核多任務(wù)管理:多任務(wù)對應(yīng)多個外部事件的響應(yīng),系統(tǒng)內(nèi)核向各任務(wù)分配向各任務(wù)分配CPU以保證并發(fā)性。以保證并發(fā)性。 任務(wù)搶占調(diào)度:多任務(wù)間高級搶占低級的任務(wù)搶占調(diào)度:多任務(wù)間高級搶占低級的CPU控制權(quán)。控制權(quán)。 快速靈活的通信和同步:任務(wù)間、任務(wù)與中斷間的數(shù)據(jù)交快速靈活的通信和同步:任務(wù)間、任務(wù)與中斷間的數(shù)據(jù)交換快速靈活。換快速靈活。 性能邊界:實時內(nèi)核須考慮系統(tǒng)最壞情況的性能優(yōu)化,
30、以性能邊界:實時內(nèi)核須考慮系統(tǒng)最壞情況的性能優(yōu)化,以及對不斷增加的復(fù)雜性的支持能力。及對不斷增加的復(fù)雜性的支持能力。 其它特殊考慮:內(nèi)存管理、時鐘管理、其它特殊考慮:內(nèi)存管理、時鐘管理、I/O系統(tǒng)管理等方系統(tǒng)管理等方面。面。28 (4)實時性能指標(biāo))實時性能指標(biāo) 任務(wù)切換時間任務(wù)切換時間 進行任務(wù)切換時保存恢復(fù)進行任務(wù)切換時保存恢復(fù)CPU現(xiàn)場的時間開銷和現(xiàn)場的時間開銷和CPU寄存器開銷。寄存器開銷。 中斷延遲時間中斷延遲時間普通中斷的延遲時間包括:普通中斷的延遲時間包括: 最大中斷屏蔽時間、得到指向最大中斷屏蔽時間、得到指向ISP(中斷服務(wù)程序)向量的時間、(中斷服務(wù)程序)向量的時間、所有寄存
31、器壓棧的時間、執(zhí)行中斷處理的時間。所有寄存器壓棧的時間、執(zhí)行中斷處理的時間。不可屏蔽不可屏蔽NMI中斷的延遲時間包括:中斷的延遲時間包括: NMI的中斷屏蔽時間即單條指令的最大執(zhí)行時間、開始執(zhí)行的中斷屏蔽時間即單條指令的最大執(zhí)行時間、開始執(zhí)行NMI-ISR的時間、的時間、CPU寄存器內(nèi)容壓棧的時間、最長指令執(zhí)行時間。寄存器內(nèi)容壓棧的時間、最長指令執(zhí)行時間。減小的措施:減少中斷屏蔽,使用不可屏蔽減小的措施:減少中斷屏蔽,使用不可屏蔽NMI中斷等。中斷等。 系統(tǒng)響應(yīng)時間系統(tǒng)響應(yīng)時間 系統(tǒng)在發(fā)出處理請求到給出應(yīng)答信號的時間。系統(tǒng)在發(fā)出處理請求到給出應(yīng)答信號的時間。29 程序代碼占用空間程序代碼占用空
32、間 內(nèi)核代碼的規(guī)模內(nèi)核代碼的規(guī)模 數(shù)據(jù)占用空間數(shù)據(jù)占用空間 在執(zhí)行程序時開辟的內(nèi)存大小,與程序中能建立的最大任務(wù)數(shù)、在執(zhí)行程序時開辟的內(nèi)存大小,與程序中能建立的最大任務(wù)數(shù)、最大事件數(shù)以及所開辟的堆棧大小有關(guān)。最大事件數(shù)以及所開辟的堆棧大小有關(guān)。302.實時嵌入式操作系統(tǒng)案例實時嵌入式操作系統(tǒng)案例各種實時操作系統(tǒng)是如何解決實時性問題的?各種實時操作系統(tǒng)是如何解決實時性問題的?(1)uC/OS-II內(nèi)核結(jié)構(gòu)內(nèi)核結(jié)構(gòu) 可配置的實時操作系統(tǒng),只包含任務(wù)調(diào)度、任務(wù)管理、時可配置的實時操作系統(tǒng),只包含任務(wù)調(diào)度、任務(wù)管理、時間管理、內(nèi)存管理和任務(wù)間通信與同步等功能。全部核心間管理、內(nèi)存管理和任務(wù)間通信與同步
33、等功能。全部核心代碼代碼8.3KB,具有良好的可裁剪性,實際代碼最少只需,具有良好的可裁剪性,實際代碼最少只需2.7KB。 層次結(jié)構(gòu)如圖。層次結(jié)構(gòu)如圖。 硬件抽象層:針對所使用的硬件抽象層:針對所使用的CPU平臺,包括中斷級任務(wù)切換、任平臺,包括中斷級任務(wù)切換、任務(wù)級任務(wù)切換的底層實現(xiàn)、時鐘節(jié)拍產(chǎn)生和處理、中斷相關(guān)處理務(wù)級任務(wù)切換的底層實現(xiàn)、時鐘節(jié)拍產(chǎn)生和處理、中斷相關(guān)處理等。移植時須改寫。等。移植時須改寫。 系統(tǒng)向用戶提供系統(tǒng)系統(tǒng)向用戶提供系統(tǒng)API,所有其它功能和,所有其它功能和庫全部需要重新編寫。庫全部需要重新編寫。31 OS_CORE.c:核心部分,包括操作系統(tǒng)初始化、操作:核心部分,
34、包括操作系統(tǒng)初始化、操作系統(tǒng)運行、中斷進出的前導(dǎo)、時鐘節(jié)拍、任務(wù)調(diào)度、系統(tǒng)運行、中斷進出的前導(dǎo)、時鐘節(jié)拍、任務(wù)調(diào)度、事件處理。事件處理。 OS_TASK.c:任務(wù)管理模塊,與任務(wù)操作緊密相關(guān)的:任務(wù)管理模塊,與任務(wù)操作緊密相關(guān)的內(nèi)容,如:任務(wù)的建立、刪除、掛起、恢復(fù)等。內(nèi)容,如:任務(wù)的建立、刪除、掛起、恢復(fù)等。 OS_TIME.c:時間管理模塊,以時間節(jié)拍為最小單位:時間管理模塊,以時間節(jié)拍為最小單位實現(xiàn)任務(wù)延時等操作。實現(xiàn)任務(wù)延時等操作。 OS_Q.c、OS_MBOX.c、OS_SEM.c:任務(wù)間通信和同:任務(wù)間通信和同步模塊,實現(xiàn)任務(wù)間相互聯(lián)系和對臨界資源的訪問。步模塊,實現(xiàn)任務(wù)間相互聯(lián)系
35、和對臨界資源的訪問。OS_MEM.c:內(nèi)存管理模:內(nèi)存管理模塊,為面向用戶任務(wù)中的塊,為面向用戶任務(wù)中的動態(tài)內(nèi)存分配提供滿足實動態(tài)內(nèi)存分配提供滿足實時性要求的有效支持。時性要求的有效支持。還包括:還包括:O S _ C F G . h 、INCLIUDE.h:系統(tǒng)配置:系統(tǒng)配置頭文件頭文件32 任務(wù)調(diào)度方式任務(wù)調(diào)度方式 每個任務(wù)具有每個任務(wù)具有5種狀態(tài):休眠、就緒、運行、掛起、被中斷。種狀態(tài):休眠、就緒、運行、掛起、被中斷。狀態(tài)間轉(zhuǎn)換見圖。狀態(tài)間轉(zhuǎn)換見圖。 系統(tǒng)采用固定優(yōu)先級的搶占式調(diào)系統(tǒng)采用固定優(yōu)先級的搶占式調(diào)度方式。度方式。 系統(tǒng)最多支持系統(tǒng)最多支持64個任務(wù),其中個任務(wù),其中8個個系統(tǒng)任
36、務(wù),其余為用戶任務(wù)。各系統(tǒng)任務(wù),其余為用戶任務(wù)。各任務(wù)采用任務(wù)標(biāo)識符表示優(yōu)先級。任務(wù)采用任務(wù)標(biāo)識符表示優(yōu)先級。 系統(tǒng)不支持時間片輪轉(zhuǎn)調(diào)度和優(yōu)系統(tǒng)不支持時間片輪轉(zhuǎn)調(diào)度和優(yōu)先級繼承、置頂。先級繼承、置頂。33 時間性能時間性能 中斷一旦被識別立即保護現(xiàn)場,執(zhí)行中斷服務(wù)子程序,結(jié)中斷一旦被識別立即保護現(xiàn)場,執(zhí)行中斷服務(wù)子程序,結(jié)束后返回。束后返回。 中斷處理所用時間包括:中斷延遲、中斷響應(yīng)、中斷恢復(fù)。中斷處理所用時間包括:中斷延遲、中斷響應(yīng)、中斷恢復(fù)。34 空間性能空間性能 數(shù)據(jù)存儲區(qū)的要求:數(shù)據(jù)存儲區(qū)的要求: 應(yīng)用程序的應(yīng)用程序的RAM需求需求 內(nèi)核數(shù)據(jù)區(qū)的內(nèi)核數(shù)據(jù)區(qū)的RAM需求,小于需求,小于4
37、K 各任務(wù)棧需求的總和各任務(wù)棧需求的總和 最多中斷嵌套的棧需求最多中斷嵌套的棧需求 程序存儲區(qū)的要求程序存儲區(qū)的要求 uc/OS-II對硬件要求很低,最小可減至對硬件要求很低,最小可減至2KB35 (2)RTLinux設(shè)計思想設(shè)計思想 絕大多數(shù)實時應(yīng)用的任務(wù)是可分成實時和非實時兩部分的。絕大多數(shù)實時應(yīng)用的任務(wù)是可分成實時和非實時兩部分的。實時任務(wù)通常對操作系統(tǒng)支持的需求很弱,而需要較多操實時任務(wù)通常對操作系統(tǒng)支持的需求很弱,而需要較多操作系統(tǒng)支持的多為非實時任務(wù)。作系統(tǒng)支持的多為非實時任務(wù)。 構(gòu)造一個簡單的強實時內(nèi)核,應(yīng)用的實時部分作為實時進構(gòu)造一個簡單的強實時內(nèi)核,應(yīng)用的實時部分作為實時進程
38、直接運行在這個強實時核上,原來的程直接運行在這個強實時核上,原來的Linux核心作為一核心作為一個優(yōu)先級最低的任務(wù)被實時內(nèi)核調(diào)度,應(yīng)用的非實時部分個優(yōu)先級最低的任務(wù)被實時內(nèi)核調(diào)度,應(yīng)用的非實時部分作為非實時進程運行于作為非實時進程運行于Linux核心上,獲得核心上,獲得Linux提供的提供的所有服務(wù)。所有服務(wù)。36 主要特點主要特點 引進了一個小的實時核心,將引進了一個小的實時核心,將Linux改造成完全搶占式調(diào)改造成完全搶占式調(diào)度。度。 保留了保留了Linux的本質(zhì)功能,可利用的本質(zhì)功能,可利用Linux及其工具的快速及其工具的快速發(fā)展能力提供現(xiàn)代操作系統(tǒng)和環(huán)境的方便和強大功能。發(fā)展能力提供
39、現(xiàn)代操作系統(tǒng)和環(huán)境的方便和強大功能。 實時任務(wù)不能調(diào)用系統(tǒng)功能,必須通過讀寫內(nèi)存和實時實時任務(wù)不能調(diào)用系統(tǒng)功能,必須通過讀寫內(nèi)存和實時FIFO的方式與的方式與Linux任務(wù)通信,而后由它們調(diào)用任務(wù)通信,而后由它們調(diào)用Linux功功能。能。 實時任務(wù)可直接控制實時任務(wù)可直接控制CPU,可擁有對,可擁有對Linux的控制權(quán)。的控制權(quán)。 實時任務(wù)實際上是實時任務(wù)實際上是Linux的核心任務(wù)。的核心任務(wù)。37 系統(tǒng)原理系統(tǒng)原理 RTLinux在在Linux的基礎(chǔ)上作如圖改進,底層信息在送達的基礎(chǔ)上作如圖改進,底層信息在送達Linux內(nèi)核之前被實時核截獲,優(yōu)先供實時任務(wù)使用,因內(nèi)核之前被實時核截獲,優(yōu)先
40、供實時任務(wù)使用,因此此Linux內(nèi)核及其進程都只能在實時任務(wù)釋放內(nèi)核及其進程都只能在實時任務(wù)釋放CPU硬件控硬件控制權(quán)的條件下啟動。制權(quán)的條件下啟動。38 實現(xiàn)機制實現(xiàn)機制中斷機制:中斷控制硬件與中斷機制:中斷控制硬件與Linux核之間增加了一個軟件仿核之間增加了一個軟件仿真層。依靠一個特定的寄存器決定中斷是否對真層。依靠一個特定的寄存器決定中斷是否對Linux開放,開放,如果關(guān)閉如果關(guān)閉Linux中斷,則所有中斷不會觸發(fā)中斷,則所有中斷不會觸發(fā)Linux的中斷的中斷服務(wù)程序,直到中斷開放。服務(wù)程序,直到中斷開放。實時任務(wù):實時任務(wù):RTLinux采用模塊加載技術(shù),利用由核心控制的采用模塊加載
41、技術(shù),利用由核心控制的調(diào)度程序調(diào)度實時任務(wù)的加載、運行,作為調(diào)度程序調(diào)度實時任務(wù)的加載、運行,作為Linux內(nèi)核模內(nèi)核模塊的實時任務(wù)執(zhí)行在內(nèi)核空間,可提高執(zhí)行效率。塊的實時任務(wù)執(zhí)行在內(nèi)核空間,可提高執(zhí)行效率。任務(wù)調(diào)度:按優(yōu)先級的搶占式調(diào)度對實時任務(wù)進行調(diào)度,任務(wù)調(diào)度:按優(yōu)先級的搶占式調(diào)度對實時任務(wù)進行調(diào)度,Linux任務(wù)可采用其它方式進行調(diào)度。任務(wù)可采用其它方式進行調(diào)度。時鐘機制:為避免實時任務(wù)調(diào)度中任務(wù)啟動時間與預(yù)定時刻時鐘機制:為避免實時任務(wù)調(diào)度中任務(wù)啟動時間與預(yù)定時刻間的偏差(任務(wù)發(fā)生抖動),需要精確的時鐘控制。間的偏差(任務(wù)發(fā)生抖動),需要精確的時鐘控制。RTLinux將定時器設(shè)計成終
42、端計時中斷方式,根據(jù)最近進將定時器設(shè)計成終端計時中斷方式,根據(jù)最近進程的需要不斷調(diào)整定時器的定時間隔??色@得較高的時鐘程的需要不斷調(diào)整定時器的定時間隔??色@得較高的時鐘精度,降低中斷服務(wù)處理的開銷。精度,降低中斷服務(wù)處理的開銷。IPC(進程間通信):(進程間通信):RTLinux的信息交換采用的信息交換采用FIFO方式,方式,其其FIFO是一個無結(jié)構(gòu)的數(shù)據(jù)流。是一個無結(jié)構(gòu)的數(shù)據(jù)流。395.1.3 操作系統(tǒng)裁剪操作系統(tǒng)裁剪 嵌入式操作系統(tǒng)的裁剪指嵌入式系統(tǒng)的開發(fā)者根據(jù)嵌入式嵌入式操作系統(tǒng)的裁剪指嵌入式系統(tǒng)的開發(fā)者根據(jù)嵌入式環(huán)境的應(yīng)用特性,改造和簡化已有操作系統(tǒng)的功能、結(jié)構(gòu),環(huán)境的應(yīng)用特性,改造和
43、簡化已有操作系統(tǒng)的功能、結(jié)構(gòu),使之滿足新的嵌入式系統(tǒng)應(yīng)用的需求。使之滿足新的嵌入式系統(tǒng)應(yīng)用的需求。 重要環(huán)節(jié):重要環(huán)節(jié): 定制操作系統(tǒng);定制操作系統(tǒng); 裁剪配置內(nèi)核;裁剪配置內(nèi)核; 編譯安裝內(nèi)核;編譯安裝內(nèi)核;401.定制操作系統(tǒng)定制操作系統(tǒng) 選擇合適的標(biāo)準(zhǔn)嵌入式操作系統(tǒng)產(chǎn)品的合適版本,考慮選擇合適的標(biāo)準(zhǔn)嵌入式操作系統(tǒng)產(chǎn)品的合適版本,考慮其基本體系結(jié)構(gòu)、性能指標(biāo)是否滿足實際應(yīng)用的要求。其基本體系結(jié)構(gòu)、性能指標(biāo)是否滿足實際應(yīng)用的要求。 常見的可選系統(tǒng):常見的可選系統(tǒng):Linux系列、系列、uC/OS、VxWorks、WinCE、QNX等等 關(guān)鍵的選擇指標(biāo):系統(tǒng)規(guī)模、支持進程數(shù)量、進程間通關(guān)鍵的選
44、擇指標(biāo):系統(tǒng)規(guī)模、支持進程數(shù)量、進程間通信的數(shù)據(jù)吞吐量和速度、進程響應(yīng)時間、代碼改寫和重信的數(shù)據(jù)吞吐量和速度、進程響應(yīng)時間、代碼改寫和重新配置方便等。新配置方便等。412.裁剪配置內(nèi)核裁剪配置內(nèi)核(1)原則)原則可裁剪性可裁剪性小型化:程序規(guī)模須滿足硬件要求;小型化:程序規(guī)模須滿足硬件要求;適當(dāng)功能:去除多余功能,只保留具體應(yīng)用所須的功能;適當(dāng)功能:去除多余功能,只保留具體應(yīng)用所須的功能;完備性:剪裁過程中須注意系統(tǒng)各模塊間的聯(lián)系,避免由于某一部完備性:剪裁過程中須注意系統(tǒng)各模塊間的聯(lián)系,避免由于某一部分的修改造成其它環(huán)節(jié)出現(xiàn)不安全的隱患;分的修改造成其它環(huán)節(jié)出現(xiàn)不安全的隱患;(2)對象)對象
45、系統(tǒng)改造需要裁剪的功能對象包括:系統(tǒng)改造需要裁剪的功能對象包括:啟動程序:系統(tǒng)的復(fù)位向量,引導(dǎo)方式;啟動程序:系統(tǒng)的復(fù)位向量,引導(dǎo)方式;內(nèi)核:進程、線程的調(diào)度、通信,中斷管理與響應(yīng),存儲管理;內(nèi)核:進程、線程的調(diào)度、通信,中斷管理與響應(yīng),存儲管理;可配置軟件包:高級數(shù)學(xué)、圖形等計算分析軟件;可配置軟件包:高級數(shù)學(xué)、圖形等計算分析軟件;各種設(shè)備驅(qū)動程序:各硬件系統(tǒng)的驅(qū)動操作。各種設(shè)備驅(qū)動程序:各硬件系統(tǒng)的驅(qū)動操作。42 (3)方法)方法對于操作系統(tǒng)首先考慮:對于操作系統(tǒng)首先考慮: 系統(tǒng)類型:整體式、層次式、微內(nèi)核式;系統(tǒng)類型:整體式、層次式、微內(nèi)核式; 源碼開放程度;源碼開放程度; 實時性指標(biāo);
46、實時性指標(biāo);系統(tǒng)改造的大致步驟:系統(tǒng)改造的大致步驟: 針對提供裁剪配置平臺的操作系統(tǒng),增添開發(fā)工具中針對提供裁剪配置平臺的操作系統(tǒng),增添開發(fā)工具中的配置信息。的配置信息。 修改啟動代碼,包括啟動、系統(tǒng)初始化,如是否需要修改啟動代碼,包括啟動、系統(tǒng)初始化,如是否需要引導(dǎo)、初始化哪些寄存器等。引導(dǎo)、初始化哪些寄存器等。 重新配置內(nèi)核,如中斷控制器的結(jié)構(gòu)、處理方式等須重新配置內(nèi)核,如中斷控制器的結(jié)構(gòu)、處理方式等須根據(jù)實際硬件平臺進行修改。根據(jù)實際硬件平臺進行修改。 由于內(nèi)核修改的實際應(yīng)用需求的差異,涉及應(yīng)用程序由于內(nèi)核修改的實際應(yīng)用需求的差異,涉及應(yīng)用程序的接口也需要改變,上層用戶程序也須作相應(yīng)修改
47、。的接口也需要改變,上層用戶程序也須作相應(yīng)修改。433.編譯安裝內(nèi)核編譯安裝內(nèi)核 操作系統(tǒng)的修改、配置是在代碼層上進行的,可以在任何操作系統(tǒng)的修改、配置是在代碼層上進行的,可以在任何環(huán)境下完成。改造完成后則需要編譯連接生成特定處理器環(huán)境下完成。改造完成后則需要編譯連接生成特定處理器所要求的機器碼文件,在利用一定方式寫到目標(biāo)硬件特定所要求的機器碼文件,在利用一定方式寫到目標(biāo)硬件特定的存儲器位置上。的存儲器位置上。 交叉編譯:在一個平臺上生成另一平臺上執(zhí)行的代碼。交叉編譯:在一個平臺上生成另一平臺上執(zhí)行的代碼。 主機平臺(主機平臺(Host):開發(fā)用計算機(宿主機),通常使):開發(fā)用計算機(宿主機
48、),通常使用用Windows或或Linux系統(tǒng)系統(tǒng) 目的平臺(目的平臺(Target):待開發(fā)的嵌入式系統(tǒng)軟硬件平臺。):待開發(fā)的嵌入式系統(tǒng)軟硬件平臺。 交叉編譯鏈:能在主機平臺上編譯目的平臺軟件的一系列交叉編譯鏈:能在主機平臺上編譯目的平臺軟件的一系列編譯軟件及其設(shè)置信息。編譯軟件及其設(shè)置信息。 匯編器,連接器、匯編器,連接器、C編譯器、用于處理可執(zhí)行程序和庫的一些基編譯器、用于處理可執(zhí)行程序和庫的一些基本工具,如本工具,如Linux宿主的宿主的glibc軟件。軟件。44 生成交叉編譯鏈的步驟:生成交叉編譯鏈的步驟: 用主機平臺上原編譯環(huán)境生成目標(biāo)平臺的匯編器、連用主機平臺上原編譯環(huán)境生成目
49、標(biāo)平臺的匯編器、連接器;接器; 用主機平臺上原編譯環(huán)境生成目標(biāo)平臺的用主機平臺上原編譯環(huán)境生成目標(biāo)平臺的C編譯器;編譯器; 用新生成的連接器、編譯器生成目標(biāo)平臺的基本程序;用新生成的連接器、編譯器生成目標(biāo)平臺的基本程序; 用新的匯編器、連接器、程序庫編譯目標(biāo)平臺的所有用新的匯編器、連接器、程序庫編譯目標(biāo)平臺的所有軟件。軟件。 編譯后軟件安裝的渠道:編譯后軟件安裝的渠道: JTAG、RS-232、TFTP 通常通常BootLoader依靠依靠JTAG安裝;安裝; 有了有了BootLoader支持后就可以依靠支持后就可以依靠RS-232和和TFTP安安裝其它軟件了。裝其它軟件了。454.實例分析實
50、例分析(1)uC/OS-II軟件包括:實時操作系統(tǒng)內(nèi)核、與處理器相關(guān)部分代碼、與應(yīng)用相關(guān)軟件包括:實時操作系統(tǒng)內(nèi)核、與處理器相關(guān)部分代碼、與應(yīng)用相關(guān)部分代碼和用戶應(yīng)用程序。部分代碼和用戶應(yīng)用程序。內(nèi)核不開放,開發(fā)者不能修改內(nèi)核部分,只能在內(nèi)核確定的范圍內(nèi)對內(nèi)核不開放,開發(fā)者不能修改內(nèi)核部分,只能在內(nèi)核確定的范圍內(nèi)對系統(tǒng)作一些改變。系統(tǒng)作一些改變。改寫處理器相關(guān)代碼: OS_CPU.H OS_CPU_A.ASM OS_CPU_C.C)改寫應(yīng)用相關(guān)代碼: OS_CFG.H INCLUDES.H46 (2)標(biāo)準(zhǔn))標(biāo)準(zhǔn)Linux系統(tǒng)裁剪系統(tǒng)裁剪 基本思想基本思想 由功能齊全、運行良好、公開的代碼基派生
51、出適用于軟硬件平臺、由功能齊全、運行良好、公開的代碼基派生出適用于軟硬件平臺、功能減少(針對某些應(yīng)用)、體系結(jié)構(gòu)更緊湊、規(guī)模更精簡的代功能減少(針對某些應(yīng)用)、體系結(jié)構(gòu)更緊湊、規(guī)模更精簡的代碼。碼。 裁剪的主要問題:裁剪的主要問題: 系統(tǒng)運行開銷(靜態(tài)映象體積、動態(tài)運行的內(nèi)存和系統(tǒng)運行開銷(靜態(tài)映象體積、動態(tài)運行的內(nèi)存和CPU開銷)、開銷)、 實時性能、實時性能、 虛擬內(nèi)存對硬件虛擬內(nèi)存對硬件MMU的依賴、的依賴、 圖形界面等圖形界面等 根據(jù)實際資源和功能要求適當(dāng)刪除和降低一些功能。根據(jù)實際資源和功能要求適當(dāng)刪除和降低一些功能。 典型的派生版本:典型的派生版本: 以滿足系統(tǒng)運行開銷要求的基本目
52、的:以滿足系統(tǒng)運行開銷要求的基本目的:ucLinux,小型化,小型化 以滿足實時性能要求為基本目的:以滿足實時性能要求為基本目的:RTLinux,實時化,實時化47 關(guān)鍵步驟關(guān)鍵步驟 精簡、重編譯內(nèi)核,去除多余模塊;精簡、重編譯內(nèi)核,去除多余模塊; 重新編寫重新編寫B(tài)ootLoader,制作,制作Boot ROM用于加載嵌入式用于加載嵌入式Linux內(nèi)內(nèi)核。核。 系統(tǒng)庫的改造:選擇必要的系統(tǒng)庫,去除無用庫,修改系統(tǒng)庫代系統(tǒng)庫的改造:選擇必要的系統(tǒng)庫,去除無用庫,修改系統(tǒng)庫代碼。碼。 對設(shè)備驅(qū)動程序進行處理,削弱原系統(tǒng)中不需要的冗余驅(qū)動軟件,對設(shè)備驅(qū)動程序進行處理,削弱原系統(tǒng)中不需要的冗余驅(qū)動軟
53、件,根據(jù)應(yīng)用的具體硬件設(shè)計新的驅(qū)動程序。根據(jù)應(yīng)用的具體硬件設(shè)計新的驅(qū)動程序。48 內(nèi)核的裁剪、編譯、安裝內(nèi)核的裁剪、編譯、安裝 在宿主平臺(在宿主平臺(PC+Linux)上利用宿主機工具對)上利用宿主機工具對Linux原代碼進行原代碼進行重新編輯,包括:重新編輯,包括: 修改某些代碼內(nèi)容;修改某些代碼內(nèi)容; 選擇準(zhǔn)備編譯的文件(選擇準(zhǔn)備編譯的文件(.c、.h)和文件夾;和文件夾; 在宿主平臺上生成合適的交叉編譯工具鏈:在宿主平臺上生成合適的交叉編譯工具鏈: 設(shè)置宿主設(shè)置宿主Linux系統(tǒng)的相關(guān)環(huán)境變量;系統(tǒng)的相關(guān)環(huán)境變量; 編譯生成編譯生成Linux環(huán)境下的匯編器、連接器、環(huán)境下的匯編器、連接
54、器、c編譯器(生成前為原代編譯器(生成前為原代碼文件);碼文件); 配置用于目標(biāo)平臺(配置用于目標(biāo)平臺( ARM)的)的c庫文件;庫文件; 配置路徑環(huán)境變量;配置路徑環(huán)境變量; 改變某些代碼文件的編譯參數(shù),主要是內(nèi)核文件。改變某些代碼文件的編譯參數(shù),主要是內(nèi)核文件。 利用編譯工具對代碼進行編譯;利用編譯工具對代碼進行編譯; 將編譯連接完成的機器碼文件安裝到目標(biāo)平臺。將編譯連接完成的機器碼文件安裝到目標(biāo)平臺。495.2 用戶接口(用戶接口(UI)5.2.1 UI的定義的定義 UI指人與計算機之間的信息交互通道,即人機界面。指人與計算機之間的信息交互通道,即人機界面。 UI包含了信息交換所設(shè)計的硬
55、件、軟件,如顯示器、鍵包含了信息交換所設(shè)計的硬件、軟件,如顯示器、鍵盤、鼠標(biāo)等。盤、鼠標(biāo)等。505.2.2 UI的發(fā)展歷程的發(fā)展歷程 早期簡單原始的形式:指示燈,開關(guān)早期簡單原始的形式:指示燈,開關(guān) 文本用戶界面:專業(yè)人員使用,多行字符顯示器,鍵盤文本用戶界面:專業(yè)人員使用,多行字符顯示器,鍵盤行命令輸入行命令輸入 圖形用戶界面:更貼近人類自然信息交互方式,更清晰圖形用戶界面:更貼近人類自然信息交互方式,更清晰的文字圖形顯示器,鍵盤、鼠標(biāo)直觀操作。的文字圖形顯示器,鍵盤、鼠標(biāo)直觀操作。 多媒體和多通道界面:充分調(diào)動人類各種自然感官和表多媒體和多通道界面:充分調(diào)動人類各種自然感官和表情動作,實現(xiàn)盡可能的人性化信息交換,信息輸出設(shè)備情動作,實現(xiàn)盡可能的人性化信息交換,信息輸出設(shè)備包括各類字符、圖形包括各類字符、圖形/圖像、視頻影像、聲音等,信息輸圖像、視頻影像、聲音等,信息輸入設(shè)備包括原有的鍵盤、鼠標(biāo)以及聲音,圖像等等。入設(shè)備包括原有的鍵盤、鼠標(biāo)以及聲音,圖像等等。515.2.3 嵌入式嵌入式UI的結(jié)構(gòu)特點的結(jié)構(gòu)特點完整的完整的UI系統(tǒng)由硬件和軟件組成:系統(tǒng)由硬件和軟件組成:硬件包括顯示單元、音頻輸出、鍵盤鼠標(biāo)、硬件包括顯示單元、音頻輸出、鍵
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 英語-福建省莆田市2025屆高中畢業(yè)班第二次教學(xué)質(zhì)量檢測試卷(莆田二檢)試題和答案
- 不銹鋼雨篷施工方案
- 碎石填坑施工方案
- 第二單元課題3 制取氧氣-教學(xué)設(shè)計-2024-2025學(xué)年九年級化學(xué)人教版上冊
- 2025年茫茫沙漠大班科學(xué)標(biāo)準(zhǔn)教案
- 與駕校有合同范例
- 交通標(biāo)志線合同范例
- 公司工資合同范例
- 強化員工培訓(xùn)的年度實施計劃
- 生物課本與現(xiàn)實生活的聯(lián)系計劃
- 混床計算書(新)
- 4、10KV電力架空線路施工技術(shù)交底
- 王陽明與心學(xué)
- 標(biāo)準(zhǔn)檢驗指導(dǎo)書(SIP)-(格式模板)
- 2023年黑龍江放射醫(yī)學(xué)技術(shù)中級考試試卷
- 水工建筑物水閘的講義
- Unit1-英語專業(yè)-綜合教程4-何兆熊主編-學(xué)習(xí)課件
- 住院精神疾病患者攻擊行為預(yù)防-2023中華護理學(xué)會團體標(biāo)準(zhǔn)
- 小學(xué)美術(shù)-湘美版四年級下冊第10課中國龍教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- 一年級下冊勞技教案
- 部編版四年級語文下冊第4單元大單元整體教學(xué)作業(yè)設(shè)計(教案配套)
評論
0/150
提交評論