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

主站蜘蛛池模板: 亚洲人成网站色7777| 亚洲性一区| 91成人在线观看| 2021国产在线视频| 国产精品午夜电影| 国产精品免费入口视频| 动漫精品中文字幕无码| 亚洲国产天堂在线观看| 无码国产伊人| 日韩高清欧美| 精品亚洲欧美中文字幕在线看 | 国产91熟女高潮一区二区| 久久6免费视频| 亚洲h视频在线| 国产伦精品一区二区三区视频优播 | 国产成人一区在线播放| 99热这里只有精品免费| 国产高清不卡| 国产免费高清无需播放器| 亚洲欧美成人影院| 凹凸精品免费精品视频| 欧美在线黄| 97se亚洲综合在线天天 | 乱人伦中文视频在线观看免费| 国产美女视频黄a视频全免费网站| 亚洲高清在线天堂精品| 国产福利影院在线观看| 日韩精品欧美国产在线| av在线人妻熟妇| 亚洲综合一区国产精品| 99re在线观看视频| 国产乱人伦精品一区二区| 亚洲精品无码久久久久苍井空| 曰AV在线无码| 一级爱做片免费观看久久| 国产精品九九视频| 亚洲综合第一页| 中文字幕伦视频| 国产成人免费手机在线观看视频| 国产呦精品一区二区三区下载| 国产精品浪潮Av| 尤物亚洲最大AV无码网站| 韩日免费小视频| 久久综合亚洲色一区二区三区| 亚洲综合色婷婷| 色综合中文| 一区二区欧美日韩高清免费 | 亚洲成人www| 欧美三级不卡在线观看视频| 国产精彩视频在线观看| 91精品国产自产在线观看| 天堂av综合网| 啪啪免费视频一区二区| 亚洲成AV人手机在线观看网站| 日韩中文无码av超清| 国产无码在线调教| 日韩av无码精品专区| 91福利国产成人精品导航| 亚洲欧美综合精品久久成人网| 无码AV日韩一二三区| 无码久看视频| 九色在线观看视频| 熟女日韩精品2区| 久久96热在精品国产高清| 亚洲精品欧美日韩在线| 亚洲有无码中文网| 免费AV在线播放观看18禁强制| 欧美日本一区二区三区免费| 日韩AV无码免费一二三区| 丁香婷婷综合激情| 人人91人人澡人人妻人人爽| 免费人成网站在线观看欧美| 婷婷六月激情综合一区| 国产青青草视频| 极品尤物av美乳在线观看| 91精品人妻一区二区| 乱系列中文字幕在线视频 | 欧美亚洲一区二区三区导航| 欧美福利在线观看| 九九这里只有精品视频| 亚洲欧洲日韩综合色天使| 尤物国产在线|