㈠ 編譯grub2-mips啟動器,製作 MIPS 架構的 grubmips64el.efi
一. 實驗環境
二. grub 介紹
三. 在x86架構下,對grub1 與 grub2 引導階段剖析(再去結合龍芯PMON、昆侖固件、UEFI固件分析啟動過程,因為龍芯固件已包含 bootloader 功能,對比分析)
四. 分區類型選擇(X86情況下)
五. 製作 grubmips64el.efi
九. 參考資料
㈡ 龍芯為什麼採用了mips指令集,而沒有使用arm指令集
不僅僅是MIPS的架構完整性 與授權較寬松問題 還有一個重要因素—程序鏈
雖然如今Arm吵得火,Arm V8(64bit)更火。但是ARM V8還是一個新生的指令集組合(2011年發布,數據來自維基網路)。相對應的系統內核,編譯器,支持庫方面還不太完整(當然,跟進速度很快)還需要一段時間才能完善。
而MIPS不同,正如@破布 所說 。MIPS來自上世紀90年代的微架構大混戰時期。 MIPS是世界上最早商業化的64位架構之一(雖然現在MIPS已經沒落,被收購)。但是作為歷史積累。MIPS64不僅僅有完善的微架構設計,而且還有較為完整的軟體鏈支持。
我記得沒錯的話,龍芯2B開始支持64位(2003年,數據來自維基網路)。而那時,ARM還僅有ARM 11架構,更不用說現在的ARM V8指令集組了。
我的看法:MIPS雖然已經衰弱,但,MIPS現在同樣還可以作為高通用性微架構使用。我感覺,龍芯選擇MIPS,依然是正確的。
(以上僅代表我的個人意見)
㈢ C語言編譯器icc與gcc編譯出來的執行文件有什麼區別
ICC 是intel 針對intel 體系架構開發的編譯器,顯然,你的代碼,如果運行在intel機器上,intel的人開發的編譯器,編譯出來的可執行代碼效率更高。畢竟人家對intel體系結構這么熟悉,裡面的優化說明的,肯定做得不錯。但是只能運行在intel體系結構上。比如你的PPC的板子就不能運行了。
GCC是一般性的通用的編譯器,可以編譯運行在各種體系結構上的代碼,比如intel, PPC, ARM, MIPS。它很通用。裡面的開發者,當然也熟悉intel 體系架構。但是也要考慮到通用。所以,是一般化的選擇。在intel體系結構上運行的話,可能某些地方不如ICC的效率高。
他們實現的原理基本是一致的,但是在細節上,肯定差別很大。比如針對同一種語句,有的會告警,有的不會。有些支持擴展特性。有些不支持。