嵌入式linux系統移植(linux核心初步分析)
核心概述:
linux是類似unix的作業系統,而linux系統的核心稱為linux kernel,這個作業系統的核心部分提供了對硬體的統一介面。核心是在引導時裝入的程式。核心識別硬體,初始化啟動指令碼,並且執行網路和終端守護程式; 當啟動完畢之後,核心又成為訪問硬體的通路,它用來提供使用者層程式和硬體之間的介面;
其功能包括:執行發生在多工系統中的實際任務轉換、處理讀寫磁碟的需求、處理網路介面、管理記憶體。
核心的分類:
常見的核心分為微核心、微控制器核心、還有超核心。
微核心技術應用非常廣泛,常見的unix、windows作業系統都是微核心的。微核心架構把底層的系統服務置於核心中執行,而高階別的服務則置於使用者空間執行。
微控制器核心除了與硬體相關的服務在核心中執行外,與硬體無關的一些關鍵的服務也在核心空間執行,包括檔案系統、網路、cpu多路服務等。這樣執行效率比較高。
超核心是乙個比較新的概念,它的基本思想是為執行在使用者層的程序安全的分配和協調各種硬體資源。目前還沒有作業系統的核心是超核心的,扔處於理論研究階段。
linux的核心是乙個微控制器技術和微核心技術的混合體。monolithic方法為了提高效率將大多數的基本服務放到核心空間中,但是它們和本地硬體**在一起,不利於移植。而microkerner技術使得移植性比較好。
核心版本指的是在linuxs領導下的開發小組開發出的系統的版本號。一般來說,以序號的第二位為偶數的版本表明這是乙個可以使用的穩定版本,如2.6.16,而序號的第二位奇數的版本一般有一些最新的實驗性的東西加入,是不一定很穩定的測試版本,如2.5.75。
模組概述核心的邏輯結構
linux核心主要由五個子系統組成:
程序排程,記憶體管理,虛擬檔案系統,網路介面,程序間通訊。
程序排程(sched):控制程序對cpu的訪問
記憶體管理(mm):允許多個程序安全的共享主記憶體區域
程序間通訊(ipc):支援程序間各種通訊機制
虛擬檔案系統(vfs):隱藏了各種硬體的具體細節,為所有的裝置提供了統一的介面。虛擬檔案系統可以分為邏輯檔案系統和裝置驅動程式。
網路介面(net):提供了對各種網路標準的訪問和各種網路硬體的支援。網路介面可分為網路協議和網路驅動程式。
核心資料結構:
核心原始碼的目錄結構:
zedboard 嵌入式Linux系統移植
1.在構建好嵌入式開發環境的基礎上進行下一步開發移植工作。修改完成後,使用交叉編譯工具編譯u boot檔案,編譯完成後,在生成的u boot檔案後加.elf字尾以便xilinx sdk工具對其進行識別,該檔案和 bit檔案,fsbl.elf檔案被用來生成linux啟動檔案boot.bin。git c...
嵌入式Linux系統的移植(上)
一 核心原始碼的準備和交叉編譯環境的建立 開發環境搭建 vmware workstation軟體來做虛擬機器,vmware workstation 軟 件 可 以 在 wmeare 官 網 下 載 下 載 地 址 當前最新版 本是 vmware workstation pro 15。nfs linu...
嵌入式移植
深度學習嵌入式移植 1 移植原因 演算法必須在優化後的硬體上執行,因為學習成千上萬的資料可能需要長達幾周的時間。移動端其實不需要做tranning,只需要進行propagating,所以問題集中在移動端能不能存放並執行更大的network。2 常見的移動端開發裝置 nvidiajetsontx1 t...