实时滚动新闻

35美元电脑Raspberry Pi的OS是如何诞生的?

35美元电脑Raspberry Pi的OS是如何诞生的?

腾讯科技讯(张和)北京时间3月18日消息,美国科技新闻网站ArsTechnica近日撰文,探究了廉价迷你Linux电脑Raspberry Pi的专属操作系统Raspbian背后的故事。Raspbian基于著名的Linux发行版Debian开发,在问世之后就立即取代了大名鼎鼎的红帽Fedora,成为Raspberry Pi基金会官方推荐的操作系统。让许多人意想不到的是,Raspbian所有的开发工作均由两名狂热的Pi爱好者利用业余时间完成。

以下为文章概要:

在你花费35美元购买Raspberry Pi之后,这台迷你Linux电脑并未预装任何操作系统。你可以将你喜欢的操作系统载入到SD卡并启动Pi,整个过程并不困难。但与Pi兼容的操作系统是从哪里来的?

在Raspberry Pi刚刚度过一周岁生日之际,我们决定探究Raspbian--官方推荐的Pi操作系统--的前世今生。Raspbian项目凝聚了开发者每周花费60个小时、连续数周工作的心血。开发者需要自制一台ARM电脑,并重新编译1.9万个Linux软件包。所有这一切,都是由两个志愿者完成的。

意外的成功

尽管市面上有许多与Pi兼容的操作系统,但Raspberry Pi基金会通常对普通用户仅推荐其中的一款。在Pi诞生于一年之前时,官方推荐的系统是一款针对ARM处理器优化过的红帽Fedora操作系统。但仅仅几个月之后,Fedora失去了Pi社区的支持,被Raspbian取而代之。后者是一款专门为Raspberry Pi重新修改过的Debian系统,其作者是名为麦克·汤普森(Mike Thompson)和皮特·格林(Peter Green)的两个志愿者。

这一切的开始,要从汤普森对机器人的爱好说起。汤普森是曾是托管搜索服务商Atomz的首席技术官和联合创始人,该公司于2005年被WebSideStory收购。汤普森获得了Atomz出售价4500万美元中的一笔不菲金额,因此他决定暂停几年的工作,花更多的时间与妻子和孩子在一起。

一年前,他终于准备重返科技领域。机器人是汤普森的主要兴趣之一,而Pi看起来是很棒的承载平台。Pi价格低廉且体积小巧,很容易被嵌入到各种系统之中。但在当时,没有任何一款操作系统是完全为Pi的浮点计算单元优化的,而浮点计算在机器人项目和其他运算密集型应用中非常重要。

“在我最初接触到Raspberry Pi时,令我失望的是,没有一款Linux发行版能够利用Pi的高速浮点运算硬件,”汤普森说。“作为一名长期的Debian用户,我当时想,‘我宁愿试试Debian(而不是Fedora)’,让它充分利用Pi的浮点运算能力,因为我长久以来一直希望能够在这些廉价的盒子上开发机器人。”

Debian当时已经为ARMv7处理器增加了浮点运算支持,但该功能并不支持Pi所使用的ARMv6处理器。”Debian最初并未预见到会出现类似于Raspberry Pi的产品。尽管Pi的ARMv6处理器拥有相当强大的浮点运算单元,但Debian并不支持,“汤普森说。因此,”他们开发的成千上万款软件包都不会支持Raspberry Pi。”

就像图形处理器处理图形任务很快一样,“浮点运算单元处理数学计算的速度非常快,”汤普森说。“浮点运算单元是一种外围配件,并非所有的计算机都有,但只要一台电脑有,那么你就一定希望充分录用它。”Pi的浮点运算单元来自于该机搭载的博通BCM2835 SoC。

如果操作系统不能利用硬件中的浮点计算单元,许多数学上的运算都必须使用软件处理,这拖慢了Pi处理任务的速度。这对于机器人来说非常重要,因为在处理来自摄像头和传感器的数据,以及精确控制马达时,需要进行非常复杂的数学运算,汤普森说。浮点运算对于多媒体处理、解码音乐、物理模拟等几乎所有数学运算密集型的任务都非常重要。

35美元电脑Raspberry Pi的OS是如何诞生的?

Raspbian项目创始人麦克·汤普森(腾讯科技配图)

富有成效的合作

摆在汤普森面前的道路很清晰:重建Debian操作系统并将使运行于Raspberry Pi。这需要将1.9万个软件包从Debian移植到Raspbian--这是一项浩大的工程。

不过,汤普森并非单打独斗。他在Raspberry Pi论坛发起了一个帖子,与其他有兴趣将Debian移植到Raspberry Pi的开发者进行讨论。这个帖子引起了Debian开发者、英国博士生皮特·格林的注意。

格林是这项工作独一无二的人选。他不仅拥有与汤普森共同带领该项目的专长,而且足够疯狂到真正去做这件事。

”我感觉,我可能是这个帖子里参与Raspbian项目讨论的人中,唯一一个掌握足够Debian知识的开发者,而这是移植成功的基础,“格林说。”不过我也相信,如果Debian项目内部有人对Raspbian项目感兴趣并足够疯狂来做这件事,那么他们也能完成这一任务。在Raspbian开发的过程中,Debian项目的许多人都为我们提供了帮助。“

在汤普森和格林启动Raspbian项目时,Pi尚未正式发售。即便当时Pi已经发售,这款设备也无法在合理的时间内重建Debian。因此,汤普森串联了八块飞思卡尔iMX53 Quick Start开发板,每一块主板都拥有1G内存、一颗1GHz ARMv7处理器,以及最重要的SATA硬盘。Pi不适合这种类型工作的主要原因之一,是USB存储带来的瓶颈,汤普森说。使用飞思卡尔主板开发Raspbian系统的效率比Raspberry Pi要高4到12倍。

汤普森在这些开发板上花费了近3000美元,但后来该项目获得的捐款足以补贴这些支出。除了单片式ARM系统,汤普森还购买了一台Linux PC作为Raspbian开发的存储库(repository)。这台存储库服务器从Debian存储库中获取源软件包,安排飞思卡尔系统的任务,一旦一个版本开发完成就收集二进制软件包。”所有开发包都会被上传到存储库中,然后与www.raspbian.org网站的外部存储库同步,用户则从www.raspbian.org 中获取软件包,“汤普森解释称。

最初,汤普森使用一台基于ARM的惠普Media Vault MV5150作为存储库的服务器,但后来由于需求的增加而升级至英特尔系统。尽管每一块飞思卡尔开发板都拥有独立的硬盘,但主要的存储任务是由存储库服务器的500G硬盘完成的,这块硬盘现在已经有三分之二满了。下面就是这套系统最初的样子:

35美元电脑Raspberry Pi的OS是如何诞生的?

飞思卡尔开发板和ARM架构的惠普服务器(腾讯科技配图)

汤普森和格林的工作并未从零开始。Debian已经是开源社区最为著名的Linux操作系统之一,其ARMv7移植为Raspbian的诞生打下了坚固的基础。

”我们极大地利用了Debian项目此前在支持ARMv7设备的浮点运算硬件时所作的工作,“汤普森说。”我们并非真的开发出了1.9万个软件包,95%的移植工作事实上已经由Debian完成了。“

然而,这并不是说,汤普森和格林将Debian移植到ARMv6及其浮点运算单元的工作轻而易举。

格伦解释道,“在Debian系统中,编译器内置了一定的默认设置。这些默认设置决定了CPU系列、最低CPU要求,以及应用二进制接口(ABI)。绝大多数软件包都未修改这些设置。我们修改了这些编译器包,从而将默认设置降低至ARMv6。

对于绝大多数的源软件包,使用内置新默认设置的编译器进行重建,就足够使其运行于ARMv6代码。”

最初,许多代码工作都是手工完成的,但格林后来开发出了一款自动编码软件,将大部分过程自动化。这些自动编码软件至今仍在运行,从Debian存储库中获取更新后的软件包,然后将其重新自动编译,以适用于Raspbian。

Raspbian于2012年4月20日以有限的形式放出下载,最初只包括了约5%的Debian软件包。“这足够运行root文件系统,并将Raspberry Pi启动至命令行界面,”汤普森说。

重建1.9万个软件包

Debian ARM拥有约3.6万个需要移植的软件包。幸运的是,其中1.7万个并不包含任何可执行代码,因而可以很快移植到Raspbian上。这包括“帮助文件、人工页面、软件包文档、字体等等不需要执行的内容,”汤普森说。

其他包含可执行代码的1.9万个软件包就是汤普森和格林的主要工作,直到6月初,两人才将所有这些软件包重新编译完成。

对于汤普森来说,这几乎就是三个月的全职工作。“有几周时间里,我每周花费60到80个小时在这项工作上,”他说。

在解释最初遇到的挑战时,汤普森说,“我们最初遇到的问题是,直到Raspbian项目启动的几个月之后,Raspberry Pi硬件仍然没有上市。不过,还好有一些Raspberry Pi基金会的工作人员帮了我们的忙。他们帮忙测试了我们的测试版系统,确保了我们正在开发的软件能够真正运行在Raspberry Pi上。

第二个大问题是,在我学习如何开发Linux发行版时,遇到了陡峭的早期学习曲线。幸运的是,Linux社区尤其是Debian社区非常友好和乐于助人,在我遇到困难的时候,总是能够得到别人的建议。在皮特加入项目之后,我们的进度快了很多,再加上8台ARM服务器,我们每天都能修改1000个软件包。”

一些软件包尤其麻烦。格林称,Raspbian系统中Midori浏览器所使用的Webkit内核折腾了他们好几天时间,但最终还是顺利完成。

不过绝大多数软件包都能够顺利通过这个流程。类似于bash一样的命令行壳大多能够轻松移植成功,汤普森说,”我们只需下载这个软件包,重建,然后将其发到存储库。“

汤普森估计,大约有5%的Debian软件包未能成功通过自动编译流程。这意味着,他和格林不得不手动修改其中专门为ARMv7编写的代码,然后重新编译,以使其运行在ARMv6上。

”编译器、Java解释器等任何对架构敏感的东西,都可能会带来麻烦,“他说。”在大多数情况下,我们能够对软件包进行修改,重新打包,然后公布给广大用户使用,但还是有部分软件包由于某些原因无法移植到Raspberry Pi。”

大约只有50个到100个软件包完全无法移植。“这些软件包主要是调试器和一些专门为ARMv7处理器开发的应用,其中一些甚至根本就没有必要移植到Raspberry Pi,”汤普森说。

Raspbian的运行既可以使用图形用户界面,也可以不使用图形界面。由于Pi的主要目标用途是编程教学,其默认界面还包含了Python开发环境。

35美元电脑Raspberry Pi的OS是如何诞生的?

Raspbian默认的图形用户界面(腾讯科技配图)

Raspbian取代Fedora

这一切的结果,就是一款对初学者足够友好同时又让有经验的Debian用户感到熟悉的运行于Raspberry Pi的Debian操作系统。Raspbian和Raspberry Pi的结合激发了全球各地开发者的热情,催生了大量的创意。“这就是Raspbian的意义所在,完全重建Debian的基础架构,从而使熟悉Debian的用户能够轻而易举地在Raspberry Pi上下载完整的优化后的代码,”汤普森说。

如前所述,Raspberry Pi官方最初推荐的操作系统是基于ARM的Fedora系统。然而,Fedora的表现受到了Pi有限的内存的严重限制,尤其是最初Pi发布时仅有256M内存(新版现在拥有512M内存)。

Raspberry Pi项目创始人、基金会主席厄本·艾普顿(Eben Upton)表示,该组织从2012年5月开始向用户推荐Debian操作系统,而在Raspbian于8月份面世之后,该组织转而开始推荐Raspbian。“

更小的内存占用、简单易用,以及支持浮点运算硬件,是Raspbian获得Pi基金会支持的主要原因。Fedora for the Pi如今仍在开发之中,但目前基金会的下载页面推荐的操作系统只有Raspbian、Arch Linux ARM和RISC OS。

”我很高兴能够看到Raspbian成为Pi官方推荐的操作系统,不过这并非是我发起该项目的初衷,“汤普森说。”Raspbian项目只是我的个人爱好而已。“

这份工作并未结束,至少对于格林来说。服务器集群如今仍然在汤普森的家中运行着,格林则时不时远程登录,以更新Raspbian系统。汤普森如今在一家名为OLogic的小型机器人咨询公司工作,并将Raspbian项目的绝大部分运营工作交给了格林。”过去几个月基本上都是我在运营Raspbian项目,“格林说。

35美元电脑Raspberry Pi的OS是如何诞生的?

Raspbian项目联合创始人皮特·格林(腾讯科技配图)

如今,每隔几天就会有一些软件包无法自动从Debian移植到Raspbian中,因而需要人工操作。不过,这项工作很快就会继续,因为格林计划继续维护并升级Raspbian。

Raspbian基于Debian的测试版本”Wheezy“而开发。之所以选择Wheezy而非稳定版的Debian,是因为它内建了硬件浮点运算支持。Wheezy最终将成为Debian的稳定版,而新的测试版将被命名为Jessie(这个名字取自《玩具总动员》中的人物名称。)

Raspberry Pi短期内不会出现任何重大的硬件升级。艾普顿说,基金会和志愿者们正在努力进一步优化Linux在Pi的ARMv6处理器上的表现。”我们认为,当前Pi所拥有的硬件足够完成非常多的工作,“艾普顿说。

因此,如果有可能,格林希望未来将代号Jessie的Debian移植到Pi上。”目前的Pi型号不会在短期内被抛弃,因此人们仍然会需要下一个版本的Debian系统,“格林说。”我会认真研究一下如何在我力所能及的范围内把更多的工作自动化。“

格林还希望将Raspbian项目所依赖的服务器集群从汤普森的房间里搬出来。

”眼下Raspbian依赖的服务器集群位于麦克的地下室,我们的自动编译软件也比较简陋,因为项目启动之初我们缺少Debian在自动编译基础架构方面的文档,“格林说。”我们希望对Raspbian Jessie所做的改进之一,就是采用更加强大的自动编译硬件组成集群,并将集群搬到新的地方。我们还希望采用最新版的Debian自动编译软件,并在正规的托管场所而非麦克的地下室托管服务器。“

格林正在寻找新的硬件。ARM机构的Openbrix Zero是眼下最为领先的候选硬件。尽管该产品已经可以预定,但格林说,”软件情况尚不明确,我还不确定要不要购买一台来试试。“

”眼下的首要问题,是寻找比较好的、价格能够接受的自动编译硬件,“格林说。”Debian最初设计并不适合交叉编译。因此我们不得不在ARM硬件上进行本地编译。“

Raspberry Pi激发的创意

你或许会纳闷--汤普森和格林使用他们自己的Raspberry Pi完成了怎样的创意呢?事实上,他们太过忙于开发Raspbian和众多其他项目,还没有时间利用Pi发挥自己的创意。

格林是主修电力和电子工程的博士在读学生,目前正在撰写一篇关于运营无线传感器网络的论文。

“我一直都想利用Pi捣鼓一点什么东西出来,但我一直都没时间去做,”格林说。“Raspberry Pi之所以让我感兴趣,是因为它是一个完全成熟的Linux系统,能够运行完整的TCP/IP堆栈和Web服务器,但同时价格低廉,你可以将它嵌入到各种项目中,而无需考虑太多成本问题。”

汤普森如今的日常工作是参与客户的机器人项目,但目前为止并不涉及以Pi为平台的工作。他希望这一点会很快改变。

“我自己还没来得及利用Raspberry Pi和机器人做出点什么,但我可能很快就会开始一个项目,”汤普森说。他拥有3台Raspberry Pi。

汤普森还在帮助机器人公司Willow Garage将机器人操作系统(Robot Operating System)移植到Pi上(其实ROS更像是一系列开发机器人的工具,而非完整的操作系统)。

“我正在与硅谷的家酿机器人俱乐部(Homebrew Robotics Club)保持联络,他们希望在Raspberry Pi上使用ROS控制机器人,而浮点运算硬件的支持非常关键,”汤普森说。“我还在与Willow Garage公司的开发者保持联系,他们也在努力把ROS移植到Raspberry Pi,我将尽我所能帮助他们--比如确保他们所依赖的某些软件包能够运行于Raspbian之上。”

由于Raspbian项目目前处于维护模式,汤普森得以将部分处理器转移到ROS和其他项目之中。

“这些服务器集群最初的作用是短时间内编译成千上万个软件包,而如今每周只需要编译100个软件包,”汤普森说。“这有点大材小用了。因此,眼下我拥有一些空余的处理能力去做其他项目。”

 

相关新闻:

 
赞助商链接
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 密码: 验证码:

新 闻

推荐排行热点
  1. 1苹果股价无视央视315报道 周五逆市收涨2.58%
  2. 2高德地图郄建军澄清:明文传输协议已在新版本
  3. 3盘点3·15中招科技企业:分众最惨 网秦上市未
  4. 4糯米网再亏560万美元拖累人人 考验陈一舟耐心
  5. 5谷歌街景探秘:从佩奇座驾到大峡谷谷底
  6. 6商务部长网购遇囧:快递公司称“政府部门不送
  7. 7中消协指二维码暗藏陷阱:“扫一扫”当心扣费
  8. 8苹果能用现金做什么?买下所有知名Web2.0公司
  9. 9富士康冻结招聘真实原因:返岗率高达97%出乎
  10. 10亚马逊定价政策涉嫌打压竞争对手 德发起反垄
  1. 1CES 2013辣评:智能手机齐斗艳 拼屏拼核拼人气
  2. 2数字化如何影响全球消费者行为
  3. 3中移动收回尾号888的手机号称其属于“国家优
  4. 4苹果股价无视央视315报道 周五逆市收涨2.58%
  5. 5汽车导航打假:飞歌、图音、科骏达涉嫌侵权
  6. 6众神的黄昏!手机行业的十年浩劫即将降临?
  7. 7网易声明:强烈谴责新浪轻博客抄袭
  8. 8三星设备惊现漏洞 或使手机变砖块
  9. 9网传电话声控吸费 专家称技术难行 未发现吸费
  10. 10北京拟推手机实名制管理规定
  1. 1京东投诉泛滥 位居2012年电商投诉之首
  2. 2万科业主“叫板”王石“赌”诚信
  3. 3小米投诉居高不下 期待官方正面回应
  4. 4东风标致308制冷差 开空调就像“蒸桑拿”
  5. 5红星美凯龙卖场瓷砖从天而降 卖场安全不容忽
  6. 6福克斯09款漏油未解决 2012款新车再曝漏油
  7. 7国美库巴以各种理由不退节能补贴
  8. 8“巧虎”早教产品被诉“三不该”
  9. 9美素奶粉吃出不明黑色颗粒 厂家称正常
  10. 10国美承诺变空谈 联系客服多次退款不成
中国质量万里行 | 联系我们 | 网站地图 | 广告服务 | 服务声明 | 招聘信息
Copyright © 2002 - 2012 京ICP备12004551号