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-),碩士研究生,助教,工作單位:長春工業大學軟件職業技術學院,主要研究方向:數據庫.

主站蜘蛛池模板: 亚洲天堂网在线视频| 国产精品开放后亚洲| 亚洲午夜福利精品无码| www.91在线播放| 亚洲一级毛片在线观播放| 日韩激情成人| 国产一区二区三区免费| 91香蕉国产亚洲一二三区 | 欧美性猛交一区二区三区 | 2021最新国产精品网站| 99热在线只有精品| 日韩福利视频导航| 国产精品视频公开费视频| 欧美国产中文| 亚洲成av人无码综合在线观看| 亚洲va视频| 最新精品国偷自产在线| 亚洲第一页在线观看| 97se亚洲综合在线韩国专区福利| 国产福利在线免费观看| 亚洲中文无码h在线观看| 亚洲精品无码高潮喷水A| 五月激激激综合网色播免费| 在线精品视频成人网| 亚洲欧美日本国产综合在线| 99久久性生片| 欧美午夜在线视频| 国产无遮挡猛进猛出免费软件| 国产色偷丝袜婷婷无码麻豆制服| 67194亚洲无码| 青青草一区| 中国精品久久| 多人乱p欧美在线观看| 人妻丝袜无码视频| 午夜日韩久久影院| 久久久久九九精品影院 | 中文字幕亚洲另类天堂| 欧美成人精品一级在线观看| 亚洲V日韩V无码一区二区| 欧美成人精品在线| 欧美日韩第三页| 国产免费黄| 91免费观看视频| 亚洲天堂精品视频| 人与鲁专区| 日本一本正道综合久久dvd | 久久黄色一级视频| 中文天堂在线视频| 日韩欧美国产精品| 91精品伊人久久大香线蕉| 亚洲av无码牛牛影视在线二区| 久久久精品国产SM调教网站| 国产精品网址你懂的| 五月婷婷伊人网| 91美女在线| 制服无码网站| 国产精品综合色区在线观看| 欧美色伊人| 亚洲黄色视频在线观看一区| 在线国产毛片| 欧美激情首页| 日韩人妻精品一区| 91热爆在线| 亚洲欧美另类视频| 三上悠亚在线精品二区| 久久毛片基地| 精品国产香蕉在线播出| 热久久综合这里只有精品电影| 免费 国产 无码久久久| 99久久国产综合精品2020| 又粗又大又爽又紧免费视频| 伊人成人在线视频| 欧美一区二区三区欧美日韩亚洲 | 亚洲中文字幕97久久精品少妇| 在线播放国产一区| 99精品伊人久久久大香线蕉| 亚欧美国产综合| 尤物成AV人片在线观看| 色成人综合| 最新日本中文字幕| 欧美日在线观看| 国产免费好大好硬视频|