<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式Linux系統(tǒng)中的快速啟動技術(shù)研究

          嵌入式Linux系統(tǒng)中的快速啟動技術(shù)研究

          作者: 時間:2008-06-13 來源:單片機與嵌入式系統(tǒng)應用 收藏

            預鏈接(Prelink)利用這一點,修改ELF共享庫和二進制文件,將鏈接信息加入到可執(zhí)行文件中以簡化動態(tài)鏈接重定位,從而使程序啟動加快。預鏈接首先搜集要預鏈接的ELF二進制文件及其所依賴的共享庫,為每個庫分配唯一的虛擬空間位置,并將共享庫重新鏈接到這個基準位置(動態(tài)鏈接器要加載這個庫時,只要虛擬空間地址未被占用,它就會將庫映射到指定位置);然后預鏈接解析二進制或者庫中的所有重定位,并將重定位信息存放到ELF對象,還要將所有依賴庫的列表及校驗和添加到二進制文件或庫中。對于二進制文件,還需列出所有的沖突(在共享庫的自然搜索范圍內(nèi)對符號的解析不相同)。在運行時,動態(tài)鏈接器先檢查是否所有依賴的庫都已經(jīng)映射到指定的位置,而且?guī)煳募]有變化,只考慮沖突而不用處理每個庫的重定位,這樣大大提高了程序啟動的速度。使用時要注意的是,若共享庫發(fā)生了改變,則使用它的所有程序都要重新鏈接,否則程序仍要進行耗時的正常重定位。

          本文引用地址:http://www.ex-cimer.com/article/84199.htm

            3 和文件系統(tǒng)優(yōu)化

            3.1 代碼執(zhí)行方式

            系統(tǒng)中代碼的執(zhí)行方式主要有3種:

           ?、?完全映射(fully shadowed)。系統(tǒng)程序運行時,將所有的代碼從非易失存儲器(Flash、ROM等)復制到RAM中運行。

            ② 按需分頁(demand paging)。只復制部分代碼到RAM中。這種方法對RAM中的頁進行導入/導出管理,如果訪問位于虛存中但不在物理RAM中會產(chǎn)生頁錯誤,這時才將代碼和數(shù)據(jù)映射到RAM中。

           ?、?eXecute In Place ()。在系統(tǒng)啟動時,不將代碼復制到RAM,而是直接在非易失性存儲位置執(zhí)行。RAM中只存放需要不斷變化的數(shù)據(jù)部分,如圖1所示。如果非易失性存儲器的讀取速度與RAM相近,則可以節(jié)省復制和解壓的時間。NOR Flash和ROM的讀取速度比較快(約100 ns),適合XIP;而NAND Flash的讀操作是基于扇區(qū)的,速度相對很慢(μs級),因此不宜實現(xiàn)XIP。

            圖1 完全映射和XIP的比較

            XIP可以分為以下2種:

            ① 內(nèi)核XIP。直接在Flash/ROM中運行內(nèi)核,可以節(jié)省復制和映像解壓的時間。 2.6.10內(nèi)核已經(jīng)包含了XIP支持。

           ?、?應用程序XIP。直接從應用程序代碼的存儲位置執(zhí)行,而不用將它加載到RAM中,這樣應用程序的第一次執(zhí)行速度會比較快。要使用應用程序XIP,應該基于支持它的文件系統(tǒng)。

            3.2 XIP文件系統(tǒng)

            目前XIP文件系統(tǒng)的實現(xiàn)主要有2種: Linear XIP CRAMFS和Advanced XIP File System(AXFS)。

            CRAMFS是一個壓縮的只讀文件系統(tǒng),本來用于桌面系統(tǒng)的啟動,但CRAMFS經(jīng)過修改后可以支持系統(tǒng)并支持XIP。Linear XIP CRAMFS用一個sticky bit對它管理的文件進行區(qū)分,標記為壓縮(按需分頁)或者未壓縮(XIP)。如果文件標記為XIP,則所有頁都不壓縮,而且要在Flash中連續(xù)存儲。在加載XIP文件時,直接對所有頁地址進行映射;而按需分頁的文件則在發(fā)生頁錯誤時,將相應頁解壓到RAM中。

            要創(chuàng)建Linear XIP CRAMFS文件系統(tǒng)映像,必須確定可執(zhí)行文件和庫文件的使用頻率,頻繁使用的文件適合于XIP,而其他文件應該進行壓縮?,F(xiàn)在有一些工具(如RAMUST和CFSST)可以幫助判斷哪些文件需要XIP,而哪些不需要。下面就可以給XIP文件加上標記并制作根文件系統(tǒng),以使用mkfs.cramfs工具為例:

            chmod +t filenames

            mkfs.cramfs-x rootfs rootfs.bin

            另外,還要修改內(nèi)核配置參數(shù)以支持XIP:在啟動選項中向默認內(nèi)核命令字符串中加入
          rootfstype=cramfs,選擇內(nèi)核XIP并設置XIP內(nèi)核物理地址;在驅(qū)動程序中加入MTD對XIP的支持;在文件系統(tǒng)中加入對Linear XIP CRAMFS的支持。接下來就可以生成XIP映像了。

            Linear XIP CRAMFS的一個缺陷在于它是基于文件的,即一個文件中的所有頁要么全部采用XIP,要么全部采用壓縮/按需分頁,但事實上同一文件中不同頁的使用頻率區(qū)別也很大。AXFS是Intel公司開發(fā)的一個新的只讀文件系統(tǒng),它從Linear XIP CRAMFS中繼承了許多方法,同時也進行了一些改進。AXFS的XIP粒度是基于頁的,并且自帶工具來判斷哪些頁需要XIP,哪些頁需要壓縮,從而更好地在速度和RAM/Flash的使用上取得平衡。

            3.3 非XIP文件系統(tǒng)

            XIP一般基于NOR Flash,成本相對較高。對于用戶數(shù)據(jù)量大的應用,往往還要使用基于NAND Flash的,非XIP的文件系統(tǒng)常用的有JFFS2/YAFFS。

            JFFS2是一種基于壓縮的文件系統(tǒng)。在多媒體應用中,如果圖片、音視頻已經(jīng)經(jīng)過壓縮,則使用JFFS2無疑會給CPU帶來雙重的壓縮/解壓負擔,訪問速度也會受到影響。因此,在這類應用比較密集的應用中,采用不壓縮的文件系統(tǒng)(如YAFFS/YAFFS2)可以加快系統(tǒng)速度。

            YAFFS/YAFFS2是專為嵌入式系統(tǒng)使用NAND Flash設計的日志文件系統(tǒng)。與JFFS2相比,減少了一些功能(例如不支持數(shù)據(jù)壓縮),所以速度更快,掛載時間很短,對內(nèi)存的占用較小。YAFFS/YAFFS2自帶NAND芯片的驅(qū)動,用戶可以不使用MTD和VFS,直接對文件系統(tǒng)操作。YAFFS與YAFFS2的主要區(qū)別在于:前者僅支持小頁(512字節(jié)) NAND Flash;后者則可支持大頁(2 KB) NAND Flash,同時在內(nèi)存使用、垃圾回收、訪問速度等方面有所改進。

            結(jié)語

            對于嵌入式系統(tǒng)是比較迫切的要求之一。本文通過分析嵌入式系統(tǒng)的引導過程和關(guān)鍵時延因素,提出了相應的解決辦法,并對XIP文件系統(tǒng)進行了介紹。由于啟動速度非常依賴于硬件平臺,而且有的方法互相排斥,因此在具體應用時需要綜合考慮和選擇。

            參考文獻

            [1] Tim Bird R. Methods to Improve Bootup Time in Linux [R]. Proceedings of the Linux Symposium, Ottawa,2004.

            [2] Karim Yaghmour. 構(gòu)建嵌入式Linux系統(tǒng)[M]. 北京:中電力出版社, 2004: 49-66.

            [3] 陳莉君. 深入分析Linux內(nèi)核源代碼[M]. 北京:民郵電出版社, 2001: 477-499.

            [4] 左大全,吳剛. 嵌入式Linux與XIP應用[J]. 計算機工程與科學,2006(12).

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          關(guān)鍵詞: 嵌入式 Linux 快速啟動 XIP

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();