uclinux 多任務(各家之言)

來源:互聯網
上載者:User

     uClinux是專為無儲存空間嵌入式管理單元(MMU)的微控制器打造的嵌入式Linux作業系統。uClinux首先被移植到摩托羅拉的MC68328 DragonBall整合微處理器上。從那以後, uClinux越來越受到業界的青睞, 被移植到更多的無MMU晶片上。目前,uClinux已成功移植到ARM7TDMI微處理器上。 由於uClinux主要是針對無MMU 微處理器開發的,大多數核心的二進位代碼和原始碼都被重寫,但保留了Linux 作業系統的主要優點:穩定性、優異的網路能力以及優秀的檔案系統支援。 uClinux的記憶體管理與傳統Linux區別最大的地方在標準Linux是針對有MMU的處理器設計的。在這種處理器上,虛擬位址被送到MMU,把虛擬 地址映射為物理地址。通過賦予每個任務不同的虛擬物理地址轉換映射,支援不同任務之間的保護。對於uCLinux來說,其設計是針對沒有MMU的處理 器,即uCLinux不能使用處理器的虛擬記憶體管理技術。uCLinux仍然採用儲存空間的分頁管理,系統在啟動時把實際儲存空間進行分頁,在載入應用程式時 程式分頁載入。但是由於沒有MMU管理,所以uCLinux實際上是採用實儲存空間管理原則的。這一點影響了系統工作的很多方面。uCLinux系統對於內 存的訪問是直接的,所有程式中訪問的地址都是實際的物理地址。作業系統對記憶體空間沒有保護,各個進程實際上共用一個Runspace。一個進程在執行前,系統必須 為進程分配足夠的連續地址空間,然後全部載入主儲存空間的連續空間中。

 

    多進程管理

  由於uClinux沒有MMU管理儲存空間,在實現多個進程時需要實現資料保護。uClinux的雖然支援fork函數,但其實質是和vfork:實際上uClinux所有的多進程管理都通過vfork來實現。

  vfork不拷貝父進程的頁面,只是初始化私人的資料結構與準備足夠的分頁表。調用完成後父子進程事實上共用同一Block Storage器,因此子進程可以更改父進程的資料及堆棧資訊,所有父進程進入睡眠,直到子進程執行exec。當子進程正確開始執行後,將喚醒父進程,使得父進程繼續往後執行。這意味著uClinux系統fork調用完程後,要麼子進程代替父進程執行(此時父進程已經休眠)直到子進程調用exit退出,要麼調用exec執行一個新的進程。

  vfork是uClinux與標準Linux應用程式的開發中最重要的不同之處,只有對vfork與fork兩個函數的差異和程式處理有詳細的瞭解才能順利地完成從Linux到uClinux的程式移植。

 

      標準Linux使用虛擬儲存空間技術,對於uClinux來說,其設計針對沒有MMU(memory management unit) 的處理器。但uClinux仍然採用儲存空間的分頁管理,系統在啟動時把實際儲存空間進行分頁。在載入應用程式時程式分頁載入。但是由於沒有MMU管理,所以實際上uClinux採用實儲存空間管理原則(real memory management)。uClinux系統對於記憶體的訪問是直接的,它對地址的訪問不需要經過MMU,而是直接送到地址線上輸出,所有程式中訪問的地址都是實際的物理地址。 uClinux對記憶體的管理從編譯核心開始,從而系統將在啟動的初始化階段對記憶體進行分頁,並且標記已使用的和未使用的記憶體。系統將在運行應用時使用這些分頁記憶體。另外由於採用實儲存空間管理原則,使用者程式同核心以及其他使用者程式在一個地址空間,程式開發時要保證不侵犯其他程式的地址空間,以使得程式不至於破壞系統的正常工作,或導致其他程式的運行異常。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.