溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux On ARM開發(fā)與X86的區(qū)別是什么

發(fā)布時(shí)間:2021-10-22 10:13:37 來源:億速云 閱讀:812 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這篇文章將為大家詳細(xì)講解有關(guān)Linux On ARM開發(fā)與X86的區(qū)別是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。

    ARM的開發(fā)與X86還是有不少區(qū)別的,這里做了一些簡單的介紹,以方便X86下的開發(fā)者能更快地切換到Linux on ARM的體系下面來。   

    ARM近年來的發(fā)展可謂如日中天,蘋果和Android的使用是最為快速的推動(dòng)力,而今Windows也支持ARM了,而更小型的樹莓派和一些超低功耗模塊也都有使用ARM的內(nèi)核了。

    盡管微軟已經(jīng)耐不住寂寞,大部分使用ARM的設(shè)備還是Linux或是類Linux的系統(tǒng)內(nèi)核,因?yàn)長inux的可裁剪性非常好,而且可用的資源非常非常多了。在“軟件定義世界”的思路引領(lǐng)下,Linux on ARM必將是未來的大潮流。

    Linux on ARM與X86體系下的不同點(diǎn)是采用“設(shè)備”的概念,“X86下的BIOS”是可以自己燒進(jìn)去的(就是那個(gè)啟示時(shí)按個(gè)燒寫鍵,就把引導(dǎo)區(qū)少到Flash的指定區(qū)域了,這個(gè)地址在給定板子上是不能變的),這個(gè)叫boot-loader,一般用的u-boot。當(dāng)然,因?yàn)閡-boot是開源的,因此出現(xiàn)了很多變體,但基本上都是大同小異。

    boot-loader啟動(dòng)后,就會(huì)跳轉(zhuǎn)到下一個(gè)地址,開始載入Linux內(nèi)核,這里頭最重要的是文件系統(tǒng)。有了文件系統(tǒng),就不用再去讀寫Flash的裸扇區(qū)了,而是通過文件系統(tǒng)進(jìn)行數(shù)據(jù)文件的操作。然后將會(huì)進(jìn)入命令行界面,有一個(gè)叫Busy-box的小程序把常用的一些命令都打包到了一起,使用起來更方便、體積更小、運(yùn)行更快。這時(shí)候,幾乎能干shell下能干的所有事情了。通過ssh就可以實(shí)現(xiàn)遠(yuǎn)程管理了。

    如果要進(jìn)入圖形界面,就需要運(yùn)行一個(gè)X11的Server程序,還可以安裝xrdp服務(wù),然后通過“遠(yuǎn)程桌面”進(jìn)行登錄、管理,就跟運(yùn)行一個(gè)普通的Linux桌面設(shè)備一模一樣了。因?yàn)锳RM的功耗和發(fā)熱量都比較小,甚至大部分都不需要風(fēng)扇散熱、完全靜音,非常適合各種設(shè)備的開發(fā)。以后的各種智能設(shè)備可能都會(huì)成為這個(gè)樣子,其實(shí)就是一臺(tái)運(yùn)行Linux的電腦。

    既然是一臺(tái)Linux電腦,那么開發(fā)軟件也就很簡單了。但是,且慢! 因?yàn)锳RM的設(shè)備性能還是低一些,一般不適合拿來運(yùn)行IDE,進(jìn)行代碼編輯、編譯、打包等工作,所以一般就在PC機(jī)上建一個(gè)“交叉編譯環(huán)境”,編譯完程序,打成二進(jìn)制包,再燒寫進(jìn)去。比如Android的ADK就是一套這樣的工具集,可以完成編輯、調(diào)試、編譯、打包等等工作。而OpenWRT是采用的另外一套思路,直接可以在X86上面編譯生成多個(gè)版本的ipk文件,然后通過包管理程序下載安裝即可(Android現(xiàn)在也有X86的版本了)。

    當(dāng)然,這個(gè)步驟還是有點(diǎn)麻煩的。很多牛人直接運(yùn)行Python或者LUA、JavaScript的腳本,可以直接在所有的平臺(tái)上運(yùn)行,現(xiàn)在基于ARM Cortex M0的腳本引擎都已經(jīng)出來了(完全開源的,但還在發(fā)展中,有的功能還無法完全調(diào)用),比如NodeMCU、MicroPython等等。

    但要在嵌入式設(shè)備上得到完全相同的結(jié)果,命令行沒有什么問題,圖形界面就要費(fèi)點(diǎn)勁了。可以通過支持HTML5的引擎來完成(這個(gè)已經(jīng)蔚然成風(fēng)了,如nodejs/PhoneGap/Kendo/React等等)。

    Ubuntu Touch通過QML完成類似的功能,使用的是QT來封裝的,可以混合HTML和本地API調(diào)用,無論顯示效果和一致性都是非常好的。

    如果以本地顯示為主,還可以直接使用QT或者Pyqt進(jìn)行開發(fā),可以使用同一套代碼,支持從時(shí)鐘到工作站、集群級別的應(yīng)用開發(fā)和運(yùn)行(不同CPU和Linux內(nèi)核版本需要重新編譯,如果CPU和內(nèi)核相同可以二進(jìn)制兼容)。

關(guān)于Linux On ARM開發(fā)與X86的區(qū)別是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI