溫馨提示×

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

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

物聯(lián)網(wǎng)的Linux發(fā)行版有哪些

發(fā)布時(shí)間:2022-01-19 15:02:04 來(lái)源:億速云 閱讀:179 作者:iii 欄目:互聯(lián)網(wǎng)科技

今天小編給大家分享一下物聯(lián)網(wǎng)的Linux發(fā)行版有哪些的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

什么是Linux發(fā)行版(Linux Distribution)?

Linux是一個(gè)操作系統(tǒng):該程序是控制計(jì)算機(jī)的核心。它決定如何在爭(zhēng)奪它的所有其他程序之間劃分可用資源(CPU,內(nèi)存,磁盤,網(wǎng)絡(luò))。操作系統(tǒng)雖然非常重要,但它本身并沒(méi)有用。其目的是管理其他程序的計(jì)算資源。沒(méi)有這些其他程序,操作系統(tǒng)就無(wú)法實(shí)現(xiàn)很多目的。

這就是發(fā)行版的來(lái)源。發(fā)行版提供了許多其他程序,這些程序與Linux一起可以組裝到工作集中用于多種用途。這些程序的范圍從基本的程序編寫工具(例如編譯器和鏈接器,到通信庫(kù),再到電子表格和編輯器),到介于兩者之間的幾乎所有內(nèi)容。發(fā)行版往往具有每個(gè)計(jì)算機(jī)或解決方案實(shí)際使用的超集。它還為用戶或公司可以組合成他們認(rèn)為是工作集的每種軟件組件類別提供了許多選擇??梢源致缘乇扔鳛橐患页校诔兄胸浖苌嫌泻芏辔锲房晒┻x擇,每個(gè)用戶都可以從購(gòu)物車中選擇對(duì)他們有意義的物品。

基于二進(jìn)制的分發(fā)還是基于源的分發(fā)?

分發(fā)可以大致分為兩類:基于二進(jìn)制的和基于源的。

基于二進(jìn)制的發(fā)行版提供了所有已經(jīng)預(yù)編譯并準(zhǔn)備安裝的軟件組件。這些組件使用“足夠好”的構(gòu)建選項(xiàng)進(jìn)行編譯,這些選項(xiàng)對(duì)于大多數(shù)用戶來(lái)說(shuō)都可以正常工作。它們也確實(shí)為少數(shù)需要或想要編譯自己的組件的用戶提供了這些組件的資源。Debian,F(xiàn)edora  Core,OpenSUSE,Ubuntu和其他許多版本都體現(xiàn)了這種發(fā)行方式。盡管它們提供相同類型的系統(tǒng),但它們都使用不同的方法(不幸的是,不兼容)來(lái)這樣做。它們是服務(wù)器,臺(tái)式機(jī)和筆記本電腦等通用計(jì)算機(jī)中使用的主要分發(fā)方式。

另一方面,基于源代碼的發(fā)行版?zhèn)戎赜谔峁┮粋€(gè)框架,在這個(gè)框架中,最終用戶可以從源代碼構(gòu)建所有組件。這些發(fā)行版還提供了一些工具,可以方便地選擇組件的合理起始集合,并根據(jù)需要調(diào)整每個(gè)組件的構(gòu)建。這些調(diào)整可以簡(jiǎn)單到添加編譯標(biāo)志以使用不同版本的源或以某種方式修改源。用戶將組裝一個(gè)他們想要構(gòu)建的菜單,然后開始構(gòu)建。幾分鐘或幾小時(shí)后,視情況而定,他們將得到一個(gè)系統(tǒng)軟件,可以用于他們的計(jì)算機(jī)。這種發(fā)行版的例子有Gentoo、Android和Yocto。

通常,這些基于源的發(fā)行版通常對(duì)于嵌入式基于Linux的設(shè)備尤其是IoT設(shè)備是首選。  盡管它們難以設(shè)置和維護(hù),但基于源的發(fā)行版具有獨(dú)特的優(yōu)勢(shì),即能夠根據(jù)實(shí)際的目標(biāo)硬件定制已安裝的映像,以最大程度地利用資源或最大程度地減少資源浪費(fèi)。  對(duì)于嵌入式設(shè)備而言,這往往是一個(gè)強(qiáng)大的約束。  此外,基于源代碼的發(fā)行版更適合交叉構(gòu)建(在該平臺(tái)上,構(gòu)建平臺(tái)的計(jì)算機(jī)與在其上運(yùn)行的計(jì)算機(jī)不同),而基于二進(jìn)制的發(fā)行版則更適合于自托管構(gòu)建。  您在同一臺(tái)機(jī)器(或同一體系結(jié)構(gòu))上構(gòu)建并運(yùn)行。

鑒于當(dāng)今普遍存在使用英特爾架構(gòu)機(jī)器作為構(gòu)建機(jī)器以及將ARM體系結(jié)構(gòu)用于IoT產(chǎn)品的情況,跨構(gòu)建支持對(duì)于IoT設(shè)備至關(guān)重要。

以容器為中心的發(fā)行版

傳統(tǒng)的Linux方法只提供內(nèi)核外部所有平臺(tái)的單個(gè)統(tǒng)一用戶空間。新模型是關(guān)于將用戶空間組成一個(gè)“容器(containers)”的集合。容器化模型將用戶空間的一部分轉(zhuǎn)換為組件的聯(lián)合集合,每個(gè)組件之間具有高度獨(dú)立性。

容器化的linux發(fā)行版帶來(lái)了許多好處,從允許團(tuán)隊(duì)更加獨(dú)立地工作到使進(jìn)行細(xì)粒度平臺(tái)升級(jí)成為可能。缺點(diǎn)是它們比非容器化解決方案占用的空間更大。然而,如果說(shuō)技術(shù)的發(fā)展給我們帶來(lái)了什么啟示的話,那就是當(dāng)一項(xiàng)新技術(shù)的唯一缺點(diǎn)是它的占用空間時(shí),其可用資源往往會(huì)擴(kuò)大,從而使每一代新問(wèn)題都變得越來(lái)越小。

下面將介紹一些早期的選項(xiàng),以便與現(xiàn)有的發(fā)行版進(jìn)行比較。

物聯(lián)網(wǎng)的Linux發(fā)行版

現(xiàn)在,我們必須深入探討有爭(zhēng)議的領(lǐng)域。許多人擁有自己喜歡的Linux發(fā)行版,即使他們的需求發(fā)生了巨大變化(例如,從服務(wù)器設(shè)置更改為嵌入式IoT設(shè)備),他們?nèi)匀粓?jiān)持使用該發(fā)行版。

我將在下面的列表中開始介紹:這是一些成熟的Linux發(fā)行版和一些后起之秀的示例。還有許多其他的存在,可能更適合一些用例。

1. Yocto

Yocto(https://www.yoctoproject.org/)是基于源的發(fā)行版,已在許多嵌入式和IoT設(shè)備中使用。它試圖將基于二進(jìn)制的發(fā)行版的好處(例如,將程序包及其依賴項(xiàng)明確分離)與基于源的發(fā)行版的好處結(jié)合在一起,后者使您可以在進(jìn)行較小的更改時(shí)以顯著的方式更改目標(biāo)二進(jìn)制文件。

Yocto由一系列配方(recipes)組成,每個(gè)配方都描述了如何構(gòu)建系統(tǒng)的一個(gè)模塊(例如,庫(kù),守護(hù)程序,應(yīng)用程序等)。然后將這些配方收集到各層中,這些層收集一系列配方并配置應(yīng)如何一起使用的各個(gè)方面,從編譯標(biāo)志到配方功能,再到有關(guān)它們?nèi)绾物@示在目標(biāo)上的詳細(xì)信息。每個(gè)目標(biāo)構(gòu)建都將由這些層中的一些層組成,每個(gè)層都在較低層中添加或刪除軟件包,或修改其默認(rèn)行為。這允許多方調(diào)整他們自己的二進(jìn)制映像以影響最終軟件。  因此,如果基礎(chǔ)層使用保守的一組編譯器標(biāo)志(通常這樣做),則芯片供應(yīng)商可以添加對(duì)其特定芯片模型有利的編譯器標(biāo)志,而主板供應(yīng)商可以刪除其主板可能不支持的芯片功能。

對(duì)于您的物聯(lián)網(wǎng)產(chǎn)品,這實(shí)際上意味著您使用已經(jīng)支持Yocto的主板來(lái)構(gòu)建解決方案的努力將是添加或修改配方,以提供基本功能的增值。您還需要具有一個(gè)構(gòu)建和配置管理基礎(chǔ)結(jié)構(gòu)設(shè)置,該設(shè)置允許您為目標(biāo)創(chuàng)建映像,盡管在當(dāng)今的容器世界中,這并不難做。

2. Debian

Debian(https://www.debian.org/)是一種古老的開源二進(jìn)制發(fā)行版。它既是自身的發(fā)行版,也是其他知名衍生版本的基準(zhǔn),其中最著名的是Ubuntu(https://www.ubuntu.com/)。

Debian擁有大量為ARM(IoT的首選體系結(jié)構(gòu))預(yù)先構(gòu)建的軟件包,但考慮到Debian在英特爾生態(tài)系統(tǒng)中的優(yōu)勢(shì),這些軟件包對(duì)ARM二進(jìn)制文件的支持和維護(hù)水平往往遠(yuǎn)低于英特爾的同類產(chǎn)品。因此,諸如“10000多個(gè)構(gòu)建的包”這樣的指標(biāo)并沒(méi)有那么有意義。您需要了解對(duì)您很重要的包以及它們的支持程度。

在自托管設(shè)置(例如Debian)中使用的許多發(fā)行版的一個(gè)缺點(diǎn)是,開發(fā)人員不理解或不記得包的安裝可能不會(huì)在最終運(yùn)行包的計(jì)算機(jī)上完成,因此他們不能依賴目標(biāo)可用的任何功能。考慮到這種麻煩對(duì)于docker環(huán)境來(lái)說(shuō)也是一個(gè)頭疼的問(wèn)題,發(fā)行版在清理這些依賴關(guān)系方面花費(fèi)了大量精力,所以這是一個(gè)比以前更小的問(wèn)題。

為少量軟件包設(shè)置構(gòu)建環(huán)境的工作相當(dāng)瑣碎,但是為系統(tǒng)構(gòu)建所有軟件包的基礎(chǔ)架構(gòu)可能會(huì)變得很重要。

由于這些原因,IoT的Debian是一個(gè)不錯(cuò)的選擇,在這種情況下,您只需添加或創(chuàng)建一些軟件包即可完成您的平臺(tái)。

3. EdgeX Foundry

從嚴(yán)格意義上講,EdgeX  Foundry并不完全是一個(gè)發(fā)行版,因?yàn)樗鼘?duì)發(fā)行版的BSP組件沒(méi)有任何意見。BSP是包含Linux內(nèi)核本身,設(shè)備驅(qū)動(dòng)程序和用于啟用硬件平臺(tái)的庫(kù)的部分。它從一個(gè)更高的級(jí)別開始,需要一個(gè)以docker支持為基礎(chǔ)的可運(yùn)行Linux系統(tǒng)。從那里開始,它提供了各種各樣的容器,這些容器為IoT設(shè)備(尤其是邊緣設(shè)備)提供了豐富的中間件和垂直集(在docker看來(lái),容器是一個(gè)獨(dú)立的模塊,通常提供垂直功能,例如數(shù)據(jù)庫(kù)或幾乎不依賴主機(jī)操作系統(tǒng)、庫(kù)等的網(wǎng)絡(luò)服務(wù))。

EdgeX  Foundry背后的概念為大型IoT設(shè)備(尤其是邊緣設(shè)備)指明了前進(jìn)的方向,但是要定義更受約束的版本以提供一組良好的基準(zhǔn)服務(wù)仍有待完成。在這方面已經(jīng)取得了一些進(jìn)展,一些服務(wù)已從JVM遷移到基于golang的實(shí)現(xiàn),但是在不久的將來(lái),對(duì)于基于低端和中端Linux的IoT來(lái)說(shuō),其覆蓋范圍仍然遙不可及。

3. Foundries.io Microplatform

Foundries.io使用基于Yocto的方法創(chuàng)建了一個(gè)Linux平臺(tái),以創(chuàng)建板支撐層,然后在其之上分層一組容器化的微服務(wù)。與EdgeX  Foundry方法相比,它們的容器集更小,更適中,而且占用可見更小。

雖然可以通過(guò)訂閱完全訪問(wèn)Foundries.io產(chǎn)品并進(jìn)行自動(dòng)更新和管理,但底層平臺(tái)是開源的,并且是可用的。

以上就是“物聯(lián)網(wǎng)的Linux發(fā)行版有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

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

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

AI