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

基于μCLinux嵌入式內存管理內核的分析

2009-08-19 09:01:44李欣穎曹曉燕
中國新技術新產品 2009年15期

周 巖 李欣穎 曹曉燕

摘要:隨著數字信息技術和網絡技術的高速發展,嵌入式產業迅速崛起,嵌入式系統蘊含著巨大的市場商機。本文對當前嵌入式uClinux操作系統的內存管理進行了分析和研究,為以后改進uClinux的內核做了鋪墊,使其能夠在實時領域有較好的應用。

關鍵詞:Clinux;嵌入式實時操作系統:內存管理

1嵌入式操作系統概述

隨著基于 Intel微處理器芯片的兼容PC機性價比的不斷提高,在實時應用領域,實時系統的應用需求發生了很大

的變化,現代的實時應用往往要求大容量的數據處理能力、復雜的圖形用戶接口、網絡支持等。這就對實時操作系統提出了更高的要求。

Linux操作系統是基于PC機的免費的類UNIX開放式操作系統,并采用了源代碼開放的發布策略。由于全世界各地的Linux用戶和開發者的不斷努力,Linux已成長為高穩定性的、性能優異的操作系統,基于Linux開發一個開放的、標準的、高效廉價的實時操作系統是完全可行的。

2 uClinux嵌入式實時操作系統概述

Linux是一種很受歡迎的操作系統,它與UNIX系統兼容,開放源代碼。它原本被設計為桌面系統,現在廣泛應用于服務器領域。而更大的影響在于它正逐漸的應用于嵌入式設備。uClinux正是在這種氛圍下產生的。在uClinux這個英文單詞中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是“針對微控制領域而設計的Linux系統”。

嵌入式操作系統是嵌入式系統的靈魂,而且在同一個硬件平臺上可以嵌入不同的嵌入式操作系統,嵌入式uClinux操作系統主要由三個基本部分組成:引導程序、uClinux內核(由內存管理、進程管理和中斷處理等構成)和文件系統。uClinux可以通過定制使內核小型化,還可以加上GUI(圖形用戶界面)和定制應用程序,并將其放在ROM、 RAM、 FLASH或Disk On Chip中啟動。由于嵌入式uClinux操作系統的內核定制高度靈活性,開發者可以按需進行配置,來滿足實際應用要求,又由于uClinux是源代碼公開,因此開發人員完全可以了解內核原理,并自己開發部分應用軟件。只有很好地掌握uClinux的原理,才能更好地、更合理地完成移植工作。

uClinux是專為沒有MMU的微處理器設計的嵌入式Linux操作系統,它的內核功能結構與Linux基本相同,不同的主要是對內存管理和進程管理進行了改寫,以滿足無MMU處理器的要求。另外,由于大多數內核源代碼都被重寫,uClinux的內核要比原Linux 2.0內核小的多,但保留了Linux操作系統的主要優點:穩定性、優異的網絡能力以及優秀的文件系統支持。

3 uClinux內存管理所采用的技術

對于uClinux來說,其設計針對沒有MMU的處理器,即uClinux不能使用處理器的虛擬內存管理技術。但是為了便于管理,uClinux仍然采用存儲器的分頁管理,系統在啟動時對實際存儲器進行分頁,在加載應用程序時分頁加載。但是由于沒有MMU管理,所以實際上uClinux采用實存儲器管理策略。

uClinux將整個物理內存劃分成大小4KB的頁面,由數據結構page管理,每個頁面有一個page結構,所有page結構組成一個數組mem_map[]。這些物理頁面可以為代碼、數據、堆棧、文件等提供空間,也可以當作緩沖區。

uClinux仍然使用標準Linux內核中的變形Buddy機制來管理空閑的物理頁面,bitmap表、free_area數組及其相關的函數或宏_get free_pages(),free_pages()也還在被使用。但由于沒有虛擬內存管理,虛擬內存段結構vm_area_struct以及由它構成的鏈表和AVL樹都不再使用,將頁面換出到外存中的機制因而也不能使用,所以標準Linux中的kswapd頁面換出守護進程和交換空間的頁面管理數據結構在uClinux中都被刪除。

uClinux中的內存分配,還是通過傳統的函數kmallocQ和kfreeQ實現的。這些內存塊來自于free_ area數組,由blocksize表、size表、pagewe descriptor結構和block header結構共同管理。而標準Linux中的vmalloc( )和vfree( ),由于是從虛擬空間3GB以上的虛擬空間分配內存,所以在uClinux下對它們的實現只是簡單地調用kmalloc()和kfree(),實際上分配的也是從空閑物理頁面鏈表中獲得的頁面。

4 uClinux內存管理的局限性

由于缺少了MMU的硬件支持,uClinux運行真正的多任務系統時,任務之間沒有內存保護機制,一些有關進程派生的系統調用就無法實現。正是因為沒有內存保護機制(或者說,沒有任何安全性可言),它們不適用于多用戶系統,uClinux的多任務管理功能受到一定限制:

uClinux中無法實現fork(),而只能使用vfork()。但這并不意味著uClinux不具有多任務功能,只是父進程在調用vfork()之后必須在子進程調用exec()或者exit()之前阻塞。

標準Linux中內存分段為應用程序提供了接近無限的堆空間和棧空間,而uClinux為可執行程序在緊隨它的數據段結束處分配堆棧空間,這樣如果堆棧增長太大,它將可能覆蓋其它的程序或數據。

uClinux中沒有自動擴展的棧,也沒有brk()調用,用戶必須通過使用mmap()來分配內存空間,可以在程序的編譯過程中指定它所使用的棧的大小。不具有內存保護,任何程序都有可能導致內核崩潰。

參考文獻

[1] Free Software Foundation,Inc.1999. GM! Lesser General Public License.http://www. gnu. org/copyleft/lesser. html.2002. 9.

[2] Gcc-2. 95. 3 arm-elf for uClinux.gcc-2. 95. 3. pdf. 2002. 11.

[3] 李善平,劉文峰,李程遠,等.Linux 內核2. 4 版源代碼分析大全[M].北京:機械工業出版社,2002.

[4] 趙炯.Linux內核完全注釋.機械工業出版社,2005.

[5] 吳一民.RT-Linux的實時機制分析.計算機應用,2002, 22 (12):110-112.

[6] 魏忠,蔡勇.嵌入式開發詳解.北京:電子工業出版社,2003.

作者簡介:周巖(1982-),碩士研究生,助教,工作單位:長春工業大學軟件職業技術學院,主要研究方向:軟件工程、嵌入式系統開發。

李欣穎(1981-),碩士研究生,助教,工作單位:長春工業大學軟件職業技術學院,主要研究方向:軟件工程、網絡編程.

曹曉燕(1977-),碩士研究生,助教,工作單位:長春工業大學軟件職業技術學院,主要研究方向:數據庫.

主站蜘蛛池模板: 毛片一区二区在线看| 99激情网| 日本手机在线视频| 久久综合丝袜日本网| 国产91av在线| 在线亚洲天堂| 亚洲精品免费网站| 欧美五月婷婷| 亚洲丝袜中文字幕| 亚洲成aⅴ人片在线影院八| 日本日韩欧美| 久久综合AV免费观看| 青青草国产精品久久久久| 国产第一页免费浮力影院| 亚洲视屏在线观看| 亚洲国产综合精品一区| 四虎影视8848永久精品| 国产视频大全| 久久这里只有精品免费| 亚国产欧美在线人成| 国产乱子伦无码精品小说 | 亚洲成网777777国产精品| 亚洲国模精品一区| 国产农村妇女精品一二区| 99在线观看精品视频| 三上悠亚在线精品二区| 久久久亚洲国产美女国产盗摄| 国产高清在线观看91精品| 国产欧美日韩精品第二区| 香蕉在线视频网站| 国产精品.com| 免费国产黄线在线观看| 色久综合在线| 91在线免费公开视频| 国产激情无码一区二区三区免费| 99久久精品久久久久久婷婷| 亚洲经典在线中文字幕| 一级福利视频| 久久亚洲精少妇毛片午夜无码| 欧洲日本亚洲中文字幕| 人妻精品全国免费视频| 国产h视频免费观看| 精品1区2区3区| 97视频在线精品国自产拍| 免费啪啪网址| 亚洲无码高清免费视频亚洲| 国产成人免费视频精品一区二区| 国产剧情无码视频在线观看| 亚洲欧美在线综合一区二区三区| 一级爆乳无码av| 色综合久久88| 久久国产av麻豆| 毛片免费观看视频| 色婷婷亚洲十月十月色天| 日本亚洲成高清一区二区三区| 欧美精品二区| 国产91麻豆免费观看| 欧美日韩综合网| 青青青亚洲精品国产| 国产精品.com| 美女无遮挡免费视频网站| 99偷拍视频精品一区二区| 国内熟女少妇一线天| 国产无码性爱一区二区三区| 欧洲成人在线观看| 免费A∨中文乱码专区| 精品無碼一區在線觀看 | 国产香蕉97碰碰视频VA碰碰看| 亚洲欧洲AV一区二区三区| 99re在线视频观看| 女人18一级毛片免费观看| 日本高清在线看免费观看| 国产日韩欧美一区二区三区在线| 免费黄色国产视频| 欧美日韩在线观看一区二区三区| 亚洲色欲色欲www网| 色婷婷电影网| 日本欧美成人免费| 日本在线欧美在线| 国产精品久久久免费视频| 亚洲毛片在线看| 91精品视频网站|