tokellELF+ARM動(dòng)態(tài)鏈接器
封閉式系統(tǒng)智能化中間件
非智能系統(tǒng)智能化中間件
ARM+ELF動(dòng)態(tài)鏈接器+動(dòng)態(tài)加載器
在 封閉式操作系統(tǒng)中代碼被燒錄到設(shè)備后內(nèi)存地址空間就被固定了下來,并且系統(tǒng)無法從外部(如文件)加載應(yīng)用程序,例如車載計(jì)算機(jī)系統(tǒng)一般是封閉的,系統(tǒng)無法 從外部設(shè)備加載應(yīng)用程序,再例如大家熟悉的非智能手機(jī)跟智能手機(jī)的區(qū)別就在于后者可以任意安裝應(yīng)用程序,這是開放式式系統(tǒng)的一個(gè)優(yōu)點(diǎn),封閉式系統(tǒng)不具備這 個(gè)優(yōu)點(diǎn)從而使其局限性非常大。這個(gè)項(xiàng)目的發(fā)起目的是為了讓封閉式操作系統(tǒng)可以自由地加載應(yīng)用程序,我們將該過程稱為“智能化過程”。
加載應(yīng)用程序并執(zhí)行的這個(gè)過程,從編程語言角度來說的話就是讓“A”程序可以調(diào)用“B”的函數(shù)讓其可以產(chǎn)生交互,或反之亦然。它的架構(gòu)共有兩層:
ROM層。
ELL層。
封閉式系統(tǒng)屬于ROM層,而應(yīng)用程序?qū)儆贓LL層。這兩層通過一個(gè)動(dòng)態(tài)鏈接器相連,為此我們實(shí)現(xiàn)了一個(gè)ELF動(dòng)態(tài)鏈接器,讓封閉式系統(tǒng)可以與應(yīng)用程序交互,不僅如此,通過動(dòng)態(tài)鏈接器可以讓應(yīng)用層與系統(tǒng)之間任意調(diào)用,這個(gè)解決方案有以下特點(diǎn):
方便APP內(nèi)存調(diào)度等管理問題,由于加載的可重定位的elf目標(biāo)文件,通過動(dòng)態(tài)鏈接器,可以將APP轉(zhuǎn)移到任意區(qū)域中運(yùn)行。
以“應(yīng)用程序”為單位加載,一個(gè)APP被劃分為多個(gè)動(dòng)態(tài)鏈接庫,庫可以由其他模塊互相調(diào)用,運(yùn)行時(shí)由動(dòng)態(tài)鏈接器將其連接。
由于加載的是可重定位的elf目標(biāo)文件,可以做到單函數(shù)級(jí)別的調(diào)度,基于該方案可以實(shí)現(xiàn)更為強(qiáng)勁的線程。
全面支持C99標(biāo)準(zhǔn)。
適用于封閉式操作系統(tǒng)。
