『壹』 移植linux內核後怎麼做出界面移植linux內核
cpu內核移植什麼意思?
內核移植就是指將RT-Thread內核在不同的晶元架構、不同的板卡上運行起來,能夠具備線程管理和調度,內存管理,線程間同步和通信、定時器管理等功能。移植可分為CPU架構移植和BSP(Boardsupportpackage,板級支持包)移植兩部分。
CPU架構移植
??為了使RT-Thread能夠在不同CPU架構的晶元上運行,RT-Thread提供了一個libcpu抽象層來適配不同的CPU架構。libcpu層向上對內核提供統一的介面,包括全局中斷的開關,線程棧的初始化,上下文切換等。
??RT-Thread的libcpu抽象層向下提供了一套統一的CPU架構移植介面,這部分介麵包含了全局中斷開關函數、線程上下文切換函數、時鍾節拍的配置和中斷函數、Cache等等內容。
BSP移植
??相同的CPU架構在實際項目中,不同的板卡上可能使用相同的CPU架構,搭載不同的外設資源,完成不同的產品,所以我們也需要針對板卡做適配工作。RT-Thread提供了BSP抽象層來適配常見的板卡。
??如果希望在一個板卡上使用RT-Thread內核,除了需要有相應的晶元架構的移植,還需要有針對板卡的移植,也就是實現一個基本的BSP。主要任務是建立讓操作系統運行的基本環境,需要完成的主要工作是:
??1)初始化CPU內部寄存器,設定RAM工作時序。
??2)實現時鍾驅動及中斷控制器驅動,完善中斷管理。
??3)實現串口和GPIO驅動。
??4)初始化動態內存堆,實現動態堆內存管理。
cortexm3上可以移植嵌入式linux嗎?
內核是CM3的CPU有很多種。只要RAM的容量夠大,支持FLASH,就可以運行Linux.例如NXPLPC1788運行uCLinux完全沒有問題。
linux內核由哪些部分組成?
一個完整的Linux內核一般由5部分組成,它們分別是內存管理、進程管理、進程間通信、虛擬文件系統和網路介面。
1、內存管理內存管理主要完成的是如何合理有效地管理整個系統的物理內存,同時快速響應內核各個子系統對內存分配的請求。
Linux內存管理支持虛擬內存,而多餘出的這部分內存就是通過磁碟申請得到的,平時系統只把當前運行的程序塊保留在內存中,其他程序塊則保留在磁碟中。在內存緊缺時,內存管理負責在磁碟和內存間交換程序塊。
2、進程管理進程管理主要控制系統進程對CPU的訪問。當需要某個進程運行時,由進程調度器根據基於優先順序的調度演算法啟動新的進程。:Linux支持多任務運行,那麼如何在一個單CPU上支持多任務呢?這個工作就是由進程調度管理來實現的。
在系統運行時,每個進程都會分得一定的時間片,然後進程調度器根據時間片的不同,選擇每個進程依次運行,例如當某個進程的時間片用完後,調度器會選擇一個新的進程繼續運行。
由於切換的時間和頻率都非常的快,由此用戶感覺是多個程序在同時運行,而實際上,CPU在同一時間內只有一個進程在運行,這一切都是進程調度管理的結果。
3、進程間通信進程間通信主要用於控制不同進程之間在用戶空間的同步、數據共享和交換。由於不用的用戶進程擁有不同的進程空間,因此進程間的通信要藉助於內核的中轉來實現。
一般情況下,當一個進程等待硬體操作完成時,會被掛起。當硬體操作完成,進程被恢復執行,而協調這個過程的就是進程間的通信機制。
4、虛擬文件系統Linux內核中的虛擬文件系統用一個通用的文件模型表示了各種不同的文件系統,這個文件模型屏蔽了很多具體文件系統的差異,使Linux內核支持很多不同的文件系統。
這個文件系統可以分為邏輯文件系統和設備驅動程序:邏輯文件系統指Linux所支持的文件系統,例如ext2、ext3和fat等;設備驅動程序指為每一種硬體控制器所編寫的設備驅動程序模塊。
5、網路介面網路介面提供了對各種網路標準的實現和各種網路硬體的支持。網路介面一般分為網路協議和網路驅動程序。網路協議部分負責實現每一種可能的網路傳輸協議。
網路設備驅動程序則主要負責與硬體設備進行通信,每一種可能的網路硬體設備都有相應的設備驅動程序。
(1)linux內核移植實驗擴展閱讀:
Linux操作系統的誕生、發展和成長過程始終依賴著五個重要支柱:UNIX操作系統、MINIX操作系統、GNU計劃、POSIX標准和Internet網路。
1981年IBM公司推出微型計算機IBMPC。
1991年,GNU計劃已經開發出了許多工具軟體,最受期盼的GNUC編譯器已經出現,GNU的操作系統核心HURD一直處於實驗階段,沒有任何可用性,實質上也沒能開發出完整的GNU操作系統,但是GNU奠定了Linux用戶基礎和開發環境。
1991年初,林納斯·托瓦茲開始在一台386sx兼容微機上學習minix操作系統。1991年4月,林納斯·托瓦茲開始醞釀並著手編制自己的操作系統。
1991年4月13日在comp.os.minix上發布說自己已經成功地將bash移植到了minix上,而且已經愛不釋手、不能離開這個shell軟體了。
1993年,大約有100餘名程序員參與了Linux內核代碼編寫/修改工作,其中核心組由5人組成,此時Linux0.99的代碼大約有十萬行,用戶大約有10萬左右。
1994年3月,Linux1.0發布,代碼量17萬行,當時是按照完全自由免費的協議發布,隨後正式採用GPL協議。
1995年1月,BobYoung創辦了RedHat(小紅帽),以GNU/Linux為核心,集成了400多個源代碼開放的程序模塊,搞出了一種冠以品牌的Linux,即RedHatLinux,稱為Linux"發行版",在市場上出售。這在經營模式上是一種創舉。
2001年1月,Linux2.4發布,它進一步地提升了SMP系統的擴展性,同時它也集成了很多用於支持桌面系統的特性:USB,PC卡(PCMCIA)的支持,內置的即插即用,等等功能。
2003年12月,Linux2.6版內核發布,相對於2.4版內核2.6在對系統的支持都有很大的變化。
2004年的第1月,SuSE嫁到了Novell,SCO繼續頂著罵名四處強行「化緣」,Asianux,MandrakeSoft也在五年中首次宣布季度贏利。3月,SGI宣布成功實現了Linux操作系統支持256個Itanium2處理器。
『貳』 請問有沒遇到這樣的情況,linux內核移植到板子上時,內核啟動不了,如圖:
內核啟動不了, 有很多原因, 想確認原因,肯定需要一步步的來調試, 你先確認下你的Uboot有沒有問題,再看看內核本身有沒有問題, 可以在UBOOT/kernel中增加列印信息,這樣就通過debug信息來看到運行到那一步,以及哪一步出了問題.這樣的調式肯定是比較麻煩的,需要耐心和細心.祝你成功!
『叄』 有關linux內核移植時的裁剪涉及哪些內容
嵌入式Linux系統的移植主要有U-Boot、Linux內核、文件系統這三部分。
Uboot是在系統上電時開始執行,初始化硬體設備,准備好軟體環境,然後才調用Linux操作系統內核。文件系統是Linux操作系統中用來管理用戶文件的內核軟體層。文件系統包括根文件系統和建立於Flash內存設備之上文件系統。根文件系統包括系統使用的軟體和庫,以及所有用來為用戶提供支持架構和用戶使用的應用軟體,並作為存儲數據讀寫結果的區域。
可將Linux系統移植過程大致需要分成6個步驟:
1) 准備工作,包括下載源碼、建立交叉編譯環境等。交叉開發是指在開發主機上安裝開發工具,編輯、編譯目標板的漏鎮升引導程序、內核和文件系統,使返老其能在目標板上運行。
2) 配置和編bootloader(引導裝載程序)。通過這段小程序,可以初始化硬體設備、建立內存空間的映射表,從而建立適當的系統硬體環境,為最終調用操作系統內核做好准備。
3) 配置和編譯Linux內核,對其進行相應的裁旅乎剪,修改內核以支持相關的硬體設備。
4) 為大容量NAND Flash移植YAFFS文件系統,並將該文件系統加入Linux內核中;
5) 製作RAMdisk來掛載根文件系統。Linux系統中的文件和設備是通過文件系統來組織的。文件系統的存在使得數據和設備可以被有效而透明地存取訪問。一個linux的最簡根文件系統應該包括支持linux系統正常運行的基本內容,包括系統使用的軟體和庫,以及所有用來為用戶提供基本支持的架構和指令。
6) 燒寫、調試系統;如果調試出錯,則需要重新配置,返回上述步驟(2)。
『肆』 linux內核移植是什麼意思
內核總是針對某一種硬體(CPU)的,內核移植就是將為某種CPU所寫的linux經過少量修改運行到另外一種CPU上