浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 其它綜合

嵌入式Linux系統(tǒng)小型化技術(shù)

發(fā)布時(shí)間:2007/8/30 0:00:00 訪問(wèn)次數(shù):527

作者Email: zhh@httc.cn
介紹了Linux在嵌入式領(lǐng)域中的應(yīng)用和宿主機(jī)、目標(biāo)機(jī)開(kāi)發(fā)模式,詳細(xì)地給出了精簡(jiǎn)內(nèi)核的實(shí)現(xiàn)過(guò)程。分析了glibc系統(tǒng)庫(kù)和ELF文件格式的結(jié)構(gòu)和其中的共享庫(kù)裁剪技術(shù)的原理,提出并實(shí)現(xiàn)了一種庫(kù)裁剪方案。


關(guān)鍵詞 嵌入式;Linux;小型化


一、 概述
嵌入式Linux一般是指對(duì)標(biāo)準(zhǔn)Linux發(fā)行版本進(jìn)行小型化裁剪處理之后,適合于特定嵌入式應(yīng)用場(chǎng)合的專用Linux操作系統(tǒng)。嵌入式系統(tǒng)通常是資源受限的系統(tǒng),無(wú)論是處理器計(jì)算能力還是RAM或其他存儲(chǔ)器容量都比較“小”。因此,如何創(chuàng)建一個(gè)小型化的Linux作為操作系統(tǒng)開(kāi)發(fā)成為首先需要考慮的問(wèn)題。嵌入式Linux系統(tǒng)中普遍采用三層結(jié)構(gòu):核心層主要是Linux內(nèi)核和模塊;調(diào)用接口層是以glibc庫(kù)為主的系統(tǒng)庫(kù);應(yīng)用層是根據(jù)用戶需求設(shè)計(jì)的應(yīng)用程序。為了實(shí)現(xiàn)資源的高利用率,后兩層都以ELF文件形式存在,在運(yùn)行過(guò)程中對(duì)外部功能代碼動(dòng)態(tài)加載。


一般來(lái)說(shuō),建立交叉平臺(tái)開(kāi)發(fā)環(huán)境是進(jìn)行嵌入式軟件開(kāi)發(fā)的第一步。宿主機(jī)與目標(biāo)機(jī)硬件平臺(tái)的異構(gòu)(處理器體系結(jié)構(gòu)不同)是采用交叉開(kāi)發(fā)的根本原因。另外,由于資源有限,直接在嵌入式系統(tǒng)的硬件平臺(tái)上開(kāi)發(fā)軟件不方便、甚至不可能。因此,通常采用Host/Target開(kāi)發(fā)模式,如表l。



宿主機(jī)(Host)目標(biāo)機(jī)(Target)
硬件PC 或者工作站,其中x86CPU占優(yōu)勢(shì)嵌入式系統(tǒng)硬件,處理器多樣化(x86,ARM,PowerPC,MIPS,68K等)
軟件Windows、Linux等桌面操作系統(tǒng),豐富的集成開(kāi)發(fā)環(huán)境(如WindRiver 的Tornado)軟件資源有限,開(kāi)發(fā)階段通常從宿主機(jī)下載



表1 交叉平臺(tái)發(fā)環(huán)境的特點(diǎn)
交叉平臺(tái)開(kāi)發(fā)環(huán)境包括交叉編譯器、交叉調(diào)試器和系統(tǒng)仿真器,比如嵌入式Linux開(kāi)發(fā)經(jīng)常用的GNU工具鏈。開(kāi)發(fā)者需要根據(jù)目標(biāo)平臺(tái)來(lái)選擇合適的GNU交叉編譯器,然后在宿主機(jī)上面重新編譯內(nèi)核和其他軟件,這樣得到的目標(biāo)代碼才能拿到目標(biāo)機(jī)上面運(yùn)行。這個(gè)過(guò)程相當(dāng)繁瑣且容易出錯(cuò)。宿主機(jī)和目標(biāo)機(jī)一般通過(guò)以太網(wǎng)或者串口連接。目前,世界上出現(xiàn)了數(shù)以百計(jì)的嵌入式Linux開(kāi)發(fā)計(jì)劃和發(fā)行版本,比如:ETLinux,LPR,μC-Linux,ThinLinux等開(kāi)發(fā)源代碼的項(xiàng)目,如表2所示。
名稱特點(diǎn)
ETLinux設(shè)計(jì)用于在小型工業(yè)計(jì)算機(jī),尤其足PC/104模塊上運(yùn)行
Linux
Router
ProjectLPR 的目標(biāo)是用于路由器、接入服務(wù)器、瘦服務(wù)器等網(wǎng)絡(luò)沒(méi)備和嵌入式系統(tǒng),可以安裝在一張軟盤(pán)上。類(lèi)似的項(xiàng)目還有Linux On A Floppy(LOAF)
μC-Linux在沒(méi)有MMU 的系統(tǒng)L運(yùn)行的Linux。同前支持Motorola DragonBall (M68EZ328), M68328,M68EN322, ColdFire, QUICC, ARM7TDMI,MC68EN302,Axis ETRAX,Inte]i960,PRISMA,Atari 68k等微處理器
ThinLinux一個(gè)為嵌入式和特定應(yīng)用制作的Linux發(fā)行版,運(yùn)行在Intel和PC兼容硬件上


表2 幾種開(kāi)放源代碼的嵌入式Linux發(fā)行版


另外,還有:Coventive XLinux,LineoEmbedix,LynuxWorks BlueCat,MontaVista Linux等商業(yè)公司的發(fā)行版。同時(shí),針對(duì)實(shí)時(shí)環(huán)境,有RT-Linux、RTAI等實(shí)時(shí)擴(kuò)展。近年來(lái),越來(lái)越多的目標(biāo)系統(tǒng)選擇了性價(jià)比不斷提高的x86處理器和成熟的PC架構(gòu)作為硬件平臺(tái)。LinuxDevices.com網(wǎng)站進(jìn)行的調(diào)查顯示,嵌入式系統(tǒng)開(kāi)發(fā)者在過(guò)去2年和未來(lái)2年選擇x86處理器作為目標(biāo)平臺(tái)的比例分別為3l%和35%,高居首位。


對(duì)于宿主機(jī)和目標(biāo)機(jī)都是PC兼容平臺(tái)的開(kāi)發(fā)者來(lái)說(shuō),除了沿用上述模式之外,有更簡(jiǎn)單的創(chuàng)建小型化Linux系統(tǒng)的方法:以一個(gè)常規(guī)的Linux發(fā)行版為基礎(chǔ),編譯內(nèi)核、復(fù)制所需的文件,并利用初始化RAM盤(pán)(initrd:INITial Ram Disk)機(jī)制創(chuàng)建根文件系統(tǒng),就可以快速實(shí)現(xiàn)一個(gè)小型化Linux系統(tǒng)。


二、 小型化技術(shù)


Linux已經(jīng)越來(lái)越廣泛地應(yīng)用于各種嵌入式設(shè)備中。但是一般的Linux發(fā)行版都非常龐大,很難用于只有有限存儲(chǔ)空間的嵌入式設(shè)備。所以我們必須對(duì)Linux系統(tǒng)進(jìn)行裁剪。Linux系統(tǒng)大致有以下4種主要的裁剪技術(shù),使用這些技術(shù)可以有效地減小系統(tǒng)的尺寸且不會(huì)影響系統(tǒng)的性能。① 刪除冗余文件。一般的Linux發(fā)行版中都包含很多幫助文檔、輔助程序、配置文件和數(shù)據(jù)模板,在嵌入式系統(tǒng)中這些文件都是不必要的,完全可以刪除。甚至連配置文件中的大量注釋也都可以被去掉。② 共享庫(kù)裁剪。嵌入式系統(tǒng)的應(yīng)用程序是有限的,共享庫(kù)中就可能有很多永遠(yuǎn)不會(huì)被用到的冗余代碼,這些代碼就可以被刪除。③ 采用具有同樣功能的替代軟件包。Linux上有許多具有相似功能的軟件包,可以選擇其中占存儲(chǔ)空間較小的軟件包并其移植到嵌入式設(shè)備上,用來(lái)代替原來(lái)占空間較大那些的軟件包。④ 修改源碼。包括重新配置、編譯軟件包,去掉不需要的功能;增加軟件的模塊性,從而有利于提高裁剪效率;重新配置內(nèi)核,去掉不需要的驅(qū)動(dòng)和模塊。


1、精

作者Email: zhh@httc.cn
介紹了Linux在嵌入式領(lǐng)域中的應(yīng)用和宿主機(jī)、目標(biāo)機(jī)開(kāi)發(fā)模式,詳細(xì)地給出了精簡(jiǎn)內(nèi)核的實(shí)現(xiàn)過(guò)程。分析了glibc系統(tǒng)庫(kù)和ELF文件格式的結(jié)構(gòu)和其中的共享庫(kù)裁剪技術(shù)的原理,提出并實(shí)現(xiàn)了一種庫(kù)裁剪方案。


關(guān)鍵詞 嵌入式;Linux;小型化


一、 概述
嵌入式Linux一般是指對(duì)標(biāo)準(zhǔn)Linux發(fā)行版本進(jìn)行小型化裁剪處理之后,適合于特定嵌入式應(yīng)用場(chǎng)合的專用Linux操作系統(tǒng)。嵌入式系統(tǒng)通常是資源受限的系統(tǒng),無(wú)論是處理器計(jì)算能力還是RAM或其他存儲(chǔ)器容量都比較“小”。因此,如何創(chuàng)建一個(gè)小型化的Linux作為操作系統(tǒng)開(kāi)發(fā)成為首先需要考慮的問(wèn)題。嵌入式Linux系統(tǒng)中普遍采用三層結(jié)構(gòu):核心層主要是Linux內(nèi)核和模塊;調(diào)用接口層是以glibc庫(kù)為主的系統(tǒng)庫(kù);應(yīng)用層是根據(jù)用戶需求設(shè)計(jì)的應(yīng)用程序。為了實(shí)現(xiàn)資源的高利用率,后兩層都以ELF文件形式存在,在運(yùn)行過(guò)程中對(duì)外部功能代碼動(dòng)態(tài)加載。


一般來(lái)說(shuō),建立交叉平臺(tái)開(kāi)發(fā)環(huán)境是進(jìn)行嵌入式軟件開(kāi)發(fā)的第一步。宿主機(jī)與目標(biāo)機(jī)硬件平臺(tái)的異構(gòu)(處理器體系結(jié)構(gòu)不同)是采用交叉開(kāi)發(fā)的根本原因。另外,由于資源有限,直接在嵌入式系統(tǒng)的硬件平臺(tái)上開(kāi)發(fā)軟件不方便、甚至不可能。因此,通常采用Host/Target開(kāi)發(fā)模式,如表l。



宿主機(jī)(Host)目標(biāo)機(jī)(Target)
硬件PC 或者工作站,其中x86CPU占優(yōu)勢(shì)嵌入式系統(tǒng)硬件,處理器多樣化(x86,ARM,PowerPC,MIPS,68K等)
軟件Windows、Linux等桌面操作系統(tǒng),豐富的集成開(kāi)發(fā)環(huán)境(如WindRiver 的Tornado)軟件資源有限,開(kāi)發(fā)階段通常從宿主機(jī)下載



表1 交叉平臺(tái)發(fā)環(huán)境的特點(diǎn)
交叉平臺(tái)開(kāi)發(fā)環(huán)境包括交叉編譯器、交叉調(diào)試器和系統(tǒng)仿真器,比如嵌入式Linux開(kāi)發(fā)經(jīng)常用的GNU工具鏈。開(kāi)發(fā)者需要根據(jù)目標(biāo)平臺(tái)來(lái)選擇合適的GNU交叉編譯器,然后在宿主機(jī)上面重新編譯內(nèi)核和其他軟件,這樣得到的目標(biāo)代碼才能拿到目標(biāo)機(jī)上面運(yùn)行。這個(gè)過(guò)程相當(dāng)繁瑣且容易出錯(cuò)。宿主機(jī)和目標(biāo)機(jī)一般通過(guò)以太網(wǎng)或者串口連接。目前,世界上出現(xiàn)了數(shù)以百計(jì)的嵌入式Linux開(kāi)發(fā)計(jì)劃和發(fā)行版本,比如:ETLinux,LPR,μC-Linux,ThinLinux等開(kāi)發(fā)源代碼的項(xiàng)目,如表2所示。
名稱特點(diǎn)
ETLinux設(shè)計(jì)用于在小型工業(yè)計(jì)算機(jī),尤其足PC/104模塊上運(yùn)行
Linux
Router
ProjectLPR 的目標(biāo)是用于路由器、接入服務(wù)器、瘦服務(wù)器等網(wǎng)絡(luò)沒(méi)備和嵌入式系統(tǒng),可以安裝在一張軟盤(pán)上。類(lèi)似的項(xiàng)目還有Linux On A Floppy(LOAF)
μC-Linux在沒(méi)有MMU 的系統(tǒng)L運(yùn)行的Linux。同前支持Motorola DragonBall (M68EZ328), M68328,M68EN322, ColdFire, QUICC, ARM7TDMI,MC68EN302,Axis ETRAX,Inte]i960,PRISMA,Atari 68k等微處理器
ThinLinux一個(gè)為嵌入式和特定應(yīng)用制作的Linux發(fā)行版,運(yùn)行在Intel和PC兼容硬件上


表2 幾種開(kāi)放源代碼的嵌入式Linux發(fā)行版


另外,還有:Coventive XLinux,LineoEmbedix,LynuxWorks BlueCat,MontaVista Linux等商業(yè)公司的發(fā)行版。同時(shí),針對(duì)實(shí)時(shí)環(huán)境,有RT-Linux、RTAI等實(shí)時(shí)擴(kuò)展。近年來(lái),越來(lái)越多的目標(biāo)系統(tǒng)選擇了性價(jià)比不斷提高的x86處理器和成熟的PC架構(gòu)作為硬件平臺(tái)。LinuxDevices.com網(wǎng)站進(jìn)行的調(diào)查顯示,嵌入式系統(tǒng)開(kāi)發(fā)者在過(guò)去2年和未來(lái)2年選擇x86處理器作為目標(biāo)平臺(tái)的比例分別為3l%和35%,高居首位。


對(duì)于宿主機(jī)和目標(biāo)機(jī)都是PC兼容平臺(tái)的開(kāi)發(fā)者來(lái)說(shuō),除了沿用上述模式之外,有更簡(jiǎn)單的創(chuàng)建小型化Linux系統(tǒng)的方法:以一個(gè)常規(guī)的Linux發(fā)行版為基礎(chǔ),編譯內(nèi)核、復(fù)制所需的文件,并利用初始化RAM盤(pán)(initrd:INITial Ram Disk)機(jī)制創(chuàng)建根文件系統(tǒng),就可以快速實(shí)現(xiàn)一個(gè)小型化Linux系統(tǒng)。


二、 小型化技術(shù)


Linux已經(jīng)越來(lái)越廣泛地應(yīng)用于各種嵌入式設(shè)備中。但是一般的Linux發(fā)行版都非常龐大,很難用于只有有限存儲(chǔ)空間的嵌入式設(shè)備。所以我們必須對(duì)Linux系統(tǒng)進(jìn)行裁剪。Linux系統(tǒng)大致有以下4種主要的裁剪技術(shù),使用這些技術(shù)可以有效地減小系統(tǒng)的尺寸且不會(huì)影響系統(tǒng)的性能。① 刪除冗余文件。一般的Linux發(fā)行版中都包含很多幫助文檔、輔助程序、配置文件和數(shù)據(jù)模板,在嵌入式系統(tǒng)中這些文件都是不必要的,完全可以刪除。甚至連配置文件中的大量注釋也都可以被去掉。② 共享庫(kù)裁剪。嵌入式系統(tǒng)的應(yīng)用程序是有限的,共享庫(kù)中就可能有很多永遠(yuǎn)不會(huì)被用到的冗余代碼,這些代碼就可以被刪除。③ 采用具有同樣功能的替代軟件包。Linux上有許多具有相似功能的軟件包,可以選擇其中占存儲(chǔ)空間較小的軟件包并其移植到嵌入式設(shè)備上,用來(lái)代替原來(lái)占空間較大那些的軟件包。④ 修改源碼。包括重新配置、編譯軟件包,去掉不需要的功能;增加軟件的模塊性,從而有利于提高裁剪效率;重新配置內(nèi)核,去掉不需要的驅(qū)動(dòng)和模塊。


1、精

相關(guān)IC型號(hào)

熱門(mén)點(diǎn)擊

 

推薦技術(shù)資料

羅盤(pán)誤差及補(bǔ)償
    造成羅盤(pán)誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!