當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]Raspbian:世界上“最小的”操作系統(tǒng)是怎樣煉成的?

當(dāng)你花35美元買到一部樹莓派(Raspberry Pi)計(jì)算機(jī)的時(shí)候,機(jī)器里面是沒(méi)有預(yù)裝操作系統(tǒng)(OS)的。這個(gè)時(shí)候你要自己下載一個(gè)OS到SD卡,插到樹莓派上重啟完成OS的安裝。這一切看起來(lái)很簡(jiǎn)便,但你考慮過(guò)這個(gè)跟樹莓派兼容的OS是哪里來(lái)的嗎?

其實(shí),樹莓派的操作系統(tǒng)Raspbian的來(lái)歷可不簡(jiǎn)單。它誕生的前提是,每周60個(gè)小時(shí)的工作量,處理一大堆自建的ARM計(jì)算機(jī)以及重建19000組Linux軟件包。而這一切,都是由兩名志愿者完成的。他們是:麥克·湯姆森(Mike Thompson)和彼得·格林(Peter Green)。

正像樹莓派機(jī)器本身一樣,它的操作系統(tǒng)也是一次意外的成功

適合于樹莓派的OS有很多,盡管如此樹莓派基金會(huì)還是要為你指定一個(gè)最兼容的來(lái)用。當(dāng)一年前樹莓派誕生的時(shí)候,首選的OS是紅帽為ARM處理器特別訂制的Fedora;而幾個(gè)月后Fedora就失寵被Raspbian取代。

Raspbian的基礎(chǔ)是Debian操作系統(tǒng)。兩位志愿者針對(duì)樹莓派硬件對(duì)Debian進(jìn)行了專門的優(yōu)化和移植。而Raspbian不僅僅是一個(gè)OS,它附帶著35000個(gè)軟件包以及預(yù)編譯的軟件。

Raspbian項(xiàng)目的開(kāi)展得益于麥克·湯姆森。他曾是Atomz公司的聯(lián)合創(chuàng)始人和CTO,在2005年該公司被WebSideStory收購(gòu),湯姆森獲得了450萬(wàn)美元的分紅。之后他便帶著家人四處旅游。直到一年前,湯姆森決定回歸科技領(lǐng)域再創(chuàng)一番事業(yè),并把目光投向了機(jī)器人科學(xué)。而樹莓派看起來(lái)像是一個(gè)不錯(cuò)的發(fā)展平臺(tái);它價(jià)格足夠低廉,體積足夠輕便,特別適合嵌入到其他大的系統(tǒng)中。可惜樹莓派沒(méi)有一個(gè)針對(duì)其浮點(diǎn)單元(Floating-point Unit,又稱浮點(diǎn)運(yùn)算器)全面優(yōu)化的OS;而浮點(diǎn)單元在機(jī)器人技術(shù)以及其他需要大量數(shù)學(xué)計(jì)算的應(yīng)用中都是至關(guān)重要的。

“當(dāng)我第一次聽(tīng)說(shuō)樹莓派的時(shí)候,我感到很失望。因?yàn)樗羞m用于該機(jī)器的Linux發(fā)行版中,沒(méi)有現(xiàn)在樹莓派上具備的浮點(diǎn)單元。”湯姆森說(shuō)道,“做為一個(gè)長(zhǎng)期的Debian用戶,我更希望看到Debian(而不是Fedora)運(yùn)行在樹莓派上。而我也希望看到一個(gè)能支持浮點(diǎn)單元的OS”。

Debian系統(tǒng)為ARMv7處理器添加了浮點(diǎn)單元支持,但對(duì)于樹莓派使用的ARMv6處理器則沒(méi)有。“Debian這時(shí)看起來(lái)不像是能在樹莓派上運(yùn)行的系統(tǒng);即便ARMv6處理器具備運(yùn)行浮點(diǎn)單元的能力,但Debian就是不支持。”湯姆森回憶道,“這樣一來(lái),Debian上成千上萬(wàn)的軟件包(Software Package)在樹莓派上就沒(méi)有了用武之地”。

就好比一個(gè)GPU能快速處理圖像編譯工作一樣,“一個(gè)浮點(diǎn)單元同樣能進(jìn)行高速的數(shù)學(xué)計(jì)算,”湯姆森稱,“它不是一臺(tái)計(jì)算機(jī)必備的附件,但當(dāng)它運(yùn)作的時(shí)候你就想把它的功能發(fā)揮到最大”?,F(xiàn)在浮點(diǎn)單元是樹莓派片上系統(tǒng)(SoC)Broadcom BCM2835的一部分。

“如果你不讓硬件上的浮點(diǎn)單元發(fā)揮最大計(jì)算水平,那么很多的數(shù)學(xué)運(yùn)算都要交給軟件處理。這就延長(zhǎng)了樹莓派執(zhí)行任務(wù)的時(shí)間。這在機(jī)器人技術(shù)很重要,因?yàn)橐幚韥?lái)自像是攝像頭、傳感以及馬達(dá)等設(shè)備的數(shù)據(jù),并進(jìn)行復(fù)雜的數(shù)學(xué)運(yùn)算,以控制精度和速度。”湯姆森說(shuō)道。同時(shí)浮點(diǎn)單元的計(jì)算能力對(duì)于多媒體數(shù)據(jù)處理也很重要,比如解碼音樂(lè)文件和進(jìn)行物理模擬,或者是“任何需要大量計(jì)算的操作”。

一次富有成效的合作

擺在湯姆森面前的路十分清晰:重建Debian系統(tǒng),以讓其能在樹莓派上運(yùn)行。但這需要從Debian上移植19000組軟件包至Raspbian上,工作量十分龐大。

為此,湯姆森在樹莓派論壇開(kāi)設(shè)了一個(gè)帖子,召集對(duì)于將Debian移植到樹莓派感興趣的人。而這個(gè)帖子引起了彼得·格林的注意。彼得·格林是一個(gè)Debian系統(tǒng)開(kāi)發(fā)者,英國(guó)的PhD,同時(shí)也是論壇中的“plugwash”(他的ID)。

“我覺(jué)得我是在論壇中討論將Debian變成Raspbian的人中,唯一一具備足夠的Debian知識(shí)、能讓項(xiàng)目成功的人。”格林說(shuō)道,“我想其他Debian開(kāi)發(fā)者如果足夠執(zhí)著和瘋狂,他們也能完成Raspbian這項(xiàng)工作”。

當(dāng)湯姆森和格林開(kāi)始Raspbian項(xiàng)目的時(shí)候,樹莓派的機(jī)器其實(shí)還沒(méi)有成型。即便成型、量產(chǎn)了,也未必有足夠的時(shí)間去重建Debian系統(tǒng)。為此,湯姆森用8個(gè)飛思卡爾iMX53快速啟動(dòng)主板,每個(gè)配備1G內(nèi)存和1GHz ARMv7處理器,以及SATA硬盤組建了一臺(tái)試驗(yàn)機(jī)。這臺(tái)機(jī)器花費(fèi)了湯姆森近3000美元,不過(guò)好來(lái)通過(guò)募捐填補(bǔ)了這部分花銷。除了這套單片機(jī)ARM系統(tǒng)外,還有一臺(tái)Linux PC用來(lái)當(dāng)服務(wù)器,作為Raspbian的存儲(chǔ)庫(kù)(Repository )。這臺(tái)服務(wù)器從Debian的存儲(chǔ)庫(kù)中檢索資源包,為飛思卡爾系統(tǒng)分配任務(wù),并收集二進(jìn)制軟件包。“重建好的軟件包都被放在存儲(chǔ)庫(kù)中,然后同步到www.raspbian.org服務(wù)器上的外部存儲(chǔ)庫(kù)中,供用戶抽取軟件包”。湯姆森解釋道。

起初,湯姆森采用了基于ARM的惠普Media Vault MV5150 來(lái)當(dāng)軟件存儲(chǔ)庫(kù),但后來(lái)當(dāng)存儲(chǔ)需求上升時(shí)便升級(jí)到了基于英特爾的系統(tǒng)。盡管每塊飛思卡爾主板都有自己的硬盤用來(lái)存儲(chǔ)構(gòu)建中的軟件包,但是主要的存儲(chǔ)任務(wù)還是交給了服務(wù)器上的500G硬盤來(lái)處理(目前已用完2/3的空間了)。下圖是湯姆森組建的這臺(tái)試驗(yàn)機(jī)。

當(dāng)然,湯姆森和格林并非是從零開(kāi)始。Debian已經(jīng)成為了應(yīng)用范圍很廣的Linux OS,它對(duì)ARMv7的支持為研發(fā)工作提供了一個(gè)堅(jiān)實(shí)的基礎(chǔ)。“我們充分利用了Debian項(xiàng)目組之前在ARMv7上運(yùn)行浮點(diǎn)單元所得到的成果。”湯姆森說(shuō)道,“除了要重建19000組軟件包以外,其實(shí)對(duì)于在樹莓派上運(yùn)行Debian的工程,Debian項(xiàng)目組已經(jīng)完成了95%”。當(dāng)然這并不是說(shuō)湯姆森和格林把ARMv6及浮點(diǎn)單元帶到Debian上是徒勞無(wú)功的。對(duì)此,湯姆森解釋道:[!--empirenews.page--]

Debian系統(tǒng)中的編譯器有內(nèi)置的默認(rèn)設(shè)置。這些默認(rèn)設(shè)置設(shè)定了CPU單元、CPU最低需求以及應(yīng)用二進(jìn)制界面(ABI)等。而大部分軟件包并不受這些設(shè)定控制。我們?cè)贏RMv6上對(duì)編譯包進(jìn)行了改良,減少了默認(rèn)設(shè)置的數(shù)量。

大部分的原始工作都是人工的,不過(guò)格林最終創(chuàng)建了一個(gè)自動(dòng)構(gòu)建器軟件來(lái)完成所有的軟件包構(gòu)建工作。這個(gè)基于Chroot環(huán)境的構(gòu)建器至今仍在運(yùn)行,它能及時(shí)地把Debian存儲(chǔ)庫(kù)中的新軟件包自動(dòng)轉(zhuǎn)譯到Raspbian中。同時(shí),這些自動(dòng)構(gòu)建器還能監(jiān)測(cè)到各種阻礙自動(dòng)轉(zhuǎn)譯程序的問(wèn)題。2012年4月20日,Raspbian的限制版開(kāi)放下載,只包含了5%的Debian軟件包。

重建19000個(gè)軟件包

Debian ARM版中有36000個(gè)軟件包需要進(jìn)行移植。幸運(yùn)的是,有17000個(gè)不包含任何可執(zhí)行代碼,因此直接轉(zhuǎn)移到Raspbian上即可。這些軟件包包括諸如幫助文件、說(shuō)明書、軟件包文檔、字體等不可執(zhí)行的東西。而其余19000個(gè)軟件包則包含可執(zhí)行代碼,龐大的工作量直到去年6月初才全部完成。對(duì)于湯姆森來(lái)說(shuō),這簡(jiǎn)直就是3個(gè)月的全職工作,“有幾周我的工作時(shí)間達(dá)到了60至80個(gè)小時(shí)”。

湯姆森估計(jì)約有5%的Debian軟件包無(wú)法成功地通過(guò)自動(dòng)構(gòu)建器進(jìn)行編譯。這意味著他和格林要手動(dòng)改寫任何專門為ARMv7設(shè)計(jì)的代碼,并將其重建以適應(yīng)ARMv6處理器。此外,大約有50至100個(gè)軟件包是壓根不能轉(zhuǎn)譯的。“這些軟件包是諸如調(diào)試器等專門給ARMv7處理器設(shè)計(jì)的東西。有一些甚至在樹莓派上根本沒(méi)有存在的意義。”湯姆森解釋道。

Raspbian的用戶界面其實(shí)是可有可無(wú)的。由于樹莓派主要用于編程教學(xué),它的默認(rèn)用戶界面包含了一個(gè)Python開(kāi)發(fā)環(huán)境。下圖是Raspbian的默認(rèn)界面。


Raspbian取代了Fedora——而且還會(huì)繼續(xù)改進(jìn)

上文提到過(guò),樹莓派起初采用的是一款基于ARM的Fedora OS。然而Fedora對(duì)內(nèi)存的需求成了絆腳石——樹莓派的初版只有256M內(nèi)容(現(xiàn)在新版的有512M內(nèi)存)。樹莓派的創(chuàng)始人Eben Upton表示,他們?cè)?012年5月份放棄了Fedora,然后又向用戶推薦Debian系統(tǒng),“當(dāng)Raspbian在8月份誕生時(shí)又轉(zhuǎn)而推薦這款OS”。

較小的內(nèi)存占用、易用性以及對(duì)浮點(diǎn)單元的支持成為了Raspbian制勝的關(guān)鍵因素。目前針對(duì)樹莓派的Fedora系統(tǒng)仍然在研發(fā)中,不過(guò)樹莓派官方的下載頁(yè)面只推薦了Raspbian、Arch Linux ARM和RISC OS。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉