首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

关键词:
Raspberry Pi , Raspbian





北京时间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处理任务的速度。这对于机器人来说非常重要,因为在处理来自 摄像头和传感器的数据,以及精确控制马达时,需要进行非常复杂的数学运算,汤普森说。浮点运算对于多媒体处理、解码音乐、物理模拟等几乎所有数学运算密集 型的任务都非常重要。


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硬盘完成的,这块硬盘现在已经有三分之二满了。下面就是这套系统最初的样子:


飞思卡尔开发板和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启动至命令行界面,”汤普森说。
返回列表