999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式linux系統的裁剪優化和測試技術

2012-10-17 16:58:26
科技傳播 2012年3期
關鍵詞:嵌入式優化系統

胡 晉

同濟大學電信學院,上海 201804

1 裁剪需求分析

Linux操作系統并不是專為嵌入式系統設計的,應用于嵌入式設備時必須進行裁剪優化,其目的之一是為了簡化已有的操作系統內核的功能和結構,以滿足嵌入式系統對資源的限制需求。

嵌入式操作系統需要裁剪的對象主要有:引導及初始化程序,操作系統內核,系統動態加載模塊,動態鏈接庫以及根文件系統等。定制裁剪的一般操作過程如下:獲取linux內核、GNU utility等源代碼,根據項目需求和具體平臺對內核源代碼進行補丁操作,手工配置,去掉多余的功能模塊,保留部分開發調試用模塊和目標功能模塊,生成配置文件。然后根據配置文件進行自動交叉編譯和鏈接,生成壓縮過的適合具體硬件平臺的內核映像文件。再以同樣方式生成引導初始化程序映像和根文件系統映像,最后把三者通過適當的方式安裝到目標開發板中,生成我們的目標操作系統,并且進行功能和性能測試分析。

2 內核的裁剪和移植

內核裁剪方式有多種,有基于原內核提供的kbuild體系的裁剪方法,有基于代碼分析的linux裁剪方法,有基于調用圖的linux裁剪方法。基于短開發周期的需求考慮,選擇采用kbuild體系的裁剪方法。Kbuild體系通過預定義一些變量(obj-m,obj-y)和目標(bzImage),使內核的編譯和擴展變得十分方便,具有很強的可定制性。

2.1 選擇交叉編譯環境

可以有多種方式來建立交叉編譯環境,包括自行通過源碼編譯,通過外部工具進行批處理編譯,本文采用開發板自帶的交叉編譯器。

2.2 支持開發板的arm架構

原始內核源碼包缺乏支持目標開發板的模塊,需要打上由廠商所提供的補丁。

2.3 修改內核Makefile文件

在內核源碼目錄下的Makefile中修改指定內核架構和交叉編譯器,這樣就不需要在編譯時再指定了。

2.4 選擇默認配置文件,在此基礎上進行內核配置的修改

配置內核有四種基本方式,有基于字符終端的也有在圖形界面下配置的。

make config 基于文本的最為傳統的配置界面,不推薦使用;

make menuconfig 基于文本選單的配置界面,字符終端下推薦使用;

make xconfig 基于圖形窗口模式的配置界面,Xwindow下推薦使用;

make oldconfig 如果只想在原來內核配置的基礎上修改一些小地方,會省去不少麻煩。

以make menuconfig為例,選擇相應的配置時,有三種選擇,它們分別代表的含義如下:

Y-將該功能編譯進內核;

N-不將該功能編譯進內核;

M-將該功能編譯成可以在需要時動態插入到內核中的模塊;

配置過程需要使用空格鍵進行選取。在每一個選項前都有個括號, 但有的是中括號有的是尖括號,還有一種圓括號。

用空格鍵選擇時可以發現,中括號里要么是空,要么是"*",而尖括號里可以是空,"*"和"M"。這表示前者對應的項要么不要,要么編譯到內核里;后者則多一樣選擇,可以編譯成模塊。而圓括號的內容是要你在所提供的幾個選項中選擇一項。

快速配置方法:make localmodconfig。Linux 2.6.32 開始引入了一個make localmodconfig用于簡化kernel的配置。make localmodconfig會執行lsmod命令查看當前系統中加載了哪些模塊(Modules),將原來的配置文件中不需要的模塊去掉,僅保留前面lsmod出來的這些模塊,從而簡化了內核的配置過程。

這個方法的缺點是:僅能使編譯出的內核支持已經加載的模塊。因為該方法使用的是lsmod的結果,如果有的模塊當前沒有加載,那么就不會編到新的內核中。

配置完成后,保存退出,配置程序會自動生成一個隱藏的配置文件.config,需要把這份文件另存到其他地方以便管理和使用。編譯內核時,源代碼目錄頂層Makefile文件讀取該目錄下的.config文件,得到內核配置過程中所產生的編譯宏。Makefile根據這些使用編譯宏,決定所編譯的文件列表,并通過Rules.make使用公共規則產生相應的目標。

在GCC中,最常用的優化選項是-Os,有-O0 -O1 -O2 -O3-Os。-O0關閉編譯器優化,-O1是第一級優化,編譯器將在不顯著增加編譯時間的基礎上,嘗試減少代碼尺寸,縮短執行時間。使用-O2和-O3將增加優化級別,同時仍然保留-O1所采取的優化方法。-Os是介于-O2和-O3之間的優化級別,使用-O3優化可能造成不好的后果。

2.5 編譯內核

在內核源碼目錄執行下列命令,生成內核鏡像文件。

生成的內核鏡像位于源碼目錄的arch/arm/boot/,第一步命令生成的是zImage,是一般情況下默認的壓縮內核映像文件,通過壓縮vmlinux,再加上一段自解壓代碼生成。第二步命令是生成uImage,uImage是使用工具mkimage對普通zImage之前加上一段長度為64字節的字段生成,說明了該內核的版本,加載位置,生成時間,內核大小等信息,是ARM架構專用的映像文件。

3 根文件系統的實現

典型的嵌入式linux根文件系統具有幾個特征,其一是根文件系統中文件、庫和目錄,通常是經過必要的選取和簡化的,其二是根文件系統是經過壓縮的,系統啟動時解壓到內存中。

嵌入式linux根文件系統制作工具BusyBox 是標準 Linux 工具的一個單個可執行實現。BusyBox 通過傳遞特定參數的方式來實現特定的linux工具和命令,提供超過200個Linux工具和命令的簡化模式。

圖1 不同系統創建進程比較

圖2 不同系統本地管道通信延遲比較

圖3 不同系統創建刪除10k文件系統時間比較

3.1 配置和編譯

由于BusyBox也采用了ncurses工具,因此可以通過類似編譯內核的配置方式:make menuconfig來進行BusyBox的具體配置過程。配置過程中,可以在Makefile中具體指定ARCH和CROSS_COMPILE,安裝目錄,是否采用動態編譯和需要哪些linux命令工具。

3.2 制作jffs2鏡像

通過mkfs工具生成經過壓縮的根文件系統鏡像jffs2.img。

4 系統測試

將內核鏡像文件uImage和根文件系統鏡像文件jffs2.img通過開發板工具載入開發板flash進行功能測試,也可以在boot階段通過tftp來完成載入內存工作。測量內核靜態體積大小,縮小到約原來的30%。

4.1 初步啟動測試結果

嵌入式linux操作系統成功啟動。

4.2 可用性測試

通過對U盤,網卡等板上設備使用、C應用程序運行,操作系統命令運行等進行測試,結果正常。

4.3 性能基準測試

lmbench具體通過內存拷貝,內存讀寫,管道,上下文切換,網絡連接的建立,文件系統,進程創建,信號處理,系統調用等參數來建立性能指標體系。

4.4 測試結果及其分析

在原來的嵌入式操作系統和目標操作系統上運行lmbench100次,獲取有效數據進行處理分析, 性能指標選取有如下幾類:processes-time,pipe communication latencies,File create&delete latencies。比較各性能指標平均數發現,裁剪后的linux操作系統性能提升約5%~10%,穩定性有一定提高。

5 結論

隨著linux的發展,linux內核的體積越來越大,通過優化內核體積和系統內存占用,可以在一定程度上提升linux的性能表現。目前linux的裁剪定制主要依賴于靈活的kbuild體系,通過條件編譯來實現。其他更細粒度的技術比如代碼分析技術,調用圖技術還有待發展和成熟。

[1]Anand K Santhanam,Vishal Kulkarn.嵌入式設備上的linux系統開發[DB/OL].http://www.ibm.com/developerworks/cn/linux/embdev/samsung.com,2004,3.

[2]李紹勛,陳朔鷹,羅國良.linux2.6內核測試及其到ARM嵌入式平臺的移植[J].理論和研究測試卷,2005(5).

[3]劉文峰,李程遠,李善平.嵌入式Linux操作系統的研究[J].浙江大學學報:工學版,2004,38(4):447-452.

[4]馬永光,席亞賓,林永君.基于linux的嵌入式操作系統的研究[J].計算機世界網,2003.

[5]鄭家玲,張云峰,嵌入式系統的內核載入過程淺析[J].微型機與應用,2002(11):59-60.

[6]TINYNew project home page of tiny:http://tinylab.org/index.php/projects/tinylinux.

[7]Karim Yaghmour.構建嵌入式linux系統.臺灣:O'Reilly,2005:579-613.

[8]Greg Kroab-Hartman.Linux Kernel in a Nutsbell:O'Reilly,2010.

[9]G Gogniat,M auguin,L Bianco.A Codesign Back-End Approach for Embedded System Design.ACMTrans On Design Automation of Electronic System,2000,5:492-509.

猜你喜歡
嵌入式優化系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 亚洲一区二区日韩欧美gif| 国产在线观看91精品亚瑟| 91青青视频| 亚洲视屏在线观看| 色亚洲激情综合精品无码视频| 999精品视频在线| 欧美精品xx| 精品无码国产自产野外拍在线| 欧美国产成人在线| 99精品国产自在现线观看| av一区二区人妻无码| 亚洲欧美在线综合图区| 亚洲国产欧美目韩成人综合| 国产毛片不卡| 91精选国产大片| 这里只有精品国产| 久久久久久尹人网香蕉| 丰满的少妇人妻无码区| 国模在线视频一区二区三区| 无码一区二区三区视频在线播放| 99999久久久久久亚洲| 四虎永久在线精品影院| 日本精品视频一区二区| 国产粉嫩粉嫩的18在线播放91| 精品国产毛片| 国产麻豆精品手机在线观看| 天堂中文在线资源| 亚洲性影院| 欧美精品亚洲精品日韩专区| 香港一级毛片免费看| 她的性爱视频| 精品久久久久成人码免费动漫| 一级毛片免费观看不卡视频| 国产精品午夜福利麻豆| 狠狠亚洲婷婷综合色香| 国产欧美日韩18| 欧美综合一区二区三区| 97在线国产视频| 波多野结衣一区二区三视频| 国产精品13页| 456亚洲人成高清在线| 99久久精品视香蕉蕉| 久久精品aⅴ无码中文字幕 | 四虎成人免费毛片| 四虎永久免费网站| 亚洲欧洲自拍拍偷午夜色| 欧美另类视频一区二区三区| 欧美精品二区| 美女亚洲一区| 四虎精品国产AV二区| 香蕉在线视频网站| 国产成人免费高清AⅤ| 中文字幕欧美日韩高清| 欧美精品亚洲精品日韩专区| 18禁黄无遮挡免费动漫网站| 伊在人亚洲香蕉精品播放 | 国产又粗又猛又爽视频| 国产精品 欧美激情 在线播放| 久久久无码人妻精品无码| 香蕉eeww99国产在线观看| 中文字幕av一区二区三区欲色| 欧美日本在线观看| 欧美福利在线| 久久黄色免费电影| 呦视频在线一区二区三区| 91精品综合| 午夜视频在线观看区二区| 无码精品国产VA在线观看DVD| 欧美一区二区福利视频| 欧美日韩精品一区二区在线线| 九色在线视频导航91| 久久成人免费| 国产99在线| 一级毛片高清| 久久精品亚洲中文字幕乱码| 国产99免费视频| 国产精品熟女亚洲AV麻豆| 欧洲av毛片| 久久亚洲国产最新网站| 亚洲欧洲美色一区二区三区| 欧美中文字幕在线播放| 国产成人AV大片大片在线播放 |