您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Linux On ARM開發與X86的區別是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
ARM的開發與X86還是有不少區別的,這里做了一些簡單的介紹,以方便X86下的開發者能更快地切換到Linux on ARM的體系下面來。
ARM近年來的發展可謂如日中天,蘋果和Android的使用是最為快速的推動力,而今Windows也支持ARM了,而更小型的樹莓派和一些超低功耗模塊也都有使用ARM的內核了。
盡管微軟已經耐不住寂寞,大部分使用ARM的設備還是Linux或是類Linux的系統內核,因為Linux的可裁剪性非常好,而且可用的資源非常非常多了。在“軟件定義世界”的思路引領下,Linux on ARM必將是未來的大潮流。
Linux on ARM與X86體系下的不同點是采用“設備”的概念,“X86下的BIOS”是可以自己燒進去的(就是那個啟示時按個燒寫鍵,就把引導區少到Flash的指定區域了,這個地址在給定板子上是不能變的),這個叫boot-loader,一般用的u-boot。當然,因為u-boot是開源的,因此出現了很多變體,但基本上都是大同小異。
boot-loader啟動后,就會跳轉到下一個地址,開始載入Linux內核,這里頭最重要的是文件系統。有了文件系統,就不用再去讀寫Flash的裸扇區了,而是通過文件系統進行數據文件的操作。然后將會進入命令行界面,有一個叫Busy-box的小程序把常用的一些命令都打包到了一起,使用起來更方便、體積更小、運行更快。這時候,幾乎能干shell下能干的所有事情了。通過ssh就可以實現遠程管理了。
如果要進入圖形界面,就需要運行一個X11的Server程序,還可以安裝xrdp服務,然后通過“遠程桌面”進行登錄、管理,就跟運行一個普通的Linux桌面設備一模一樣了。因為ARM的功耗和發熱量都比較小,甚至大部分都不需要風扇散熱、完全靜音,非常適合各種設備的開發。以后的各種智能設備可能都會成為這個樣子,其實就是一臺運行Linux的電腦。
既然是一臺Linux電腦,那么開發軟件也就很簡單了。但是,且慢! 因為ARM的設備性能還是低一些,一般不適合拿來運行IDE,進行代碼編輯、編譯、打包等工作,所以一般就在PC機上建一個“交叉編譯環境”,編譯完程序,打成二進制包,再燒寫進去。比如Android的ADK就是一套這樣的工具集,可以完成編輯、調試、編譯、打包等等工作。而OpenWRT是采用的另外一套思路,直接可以在X86上面編譯生成多個版本的ipk文件,然后通過包管理程序下載安裝即可(Android現在也有X86的版本了)。
當然,這個步驟還是有點麻煩的。很多牛人直接運行Python或者LUA、JavaScript的腳本,可以直接在所有的平臺上運行,現在基于ARM Cortex M0的腳本引擎都已經出來了(完全開源的,但還在發展中,有的功能還無法完全調用),比如NodeMCU、MicroPython等等。
但要在嵌入式設備上得到完全相同的結果,命令行沒有什么問題,圖形界面就要費點勁了。可以通過支持HTML5的引擎來完成(這個已經蔚然成風了,如nodejs/PhoneGap/Kendo/React等等)。
Ubuntu Touch通過QML完成類似的功能,使用的是QT來封裝的,可以混合HTML和本地API調用,無論顯示效果和一致性都是非常好的。
如果以本地顯示為主,還可以直接使用QT或者Pyqt進行開發,可以使用同一套代碼,支持從時鐘到工作站、集群級別的應用開發和運行(不同CPU和Linux內核版本需要重新編譯,如果CPU和內核相同可以二進制兼容)。
關于Linux On ARM開發與X86的區別是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。