Ubuntu Linux发行版已经被移植到最便宜、最便携的平台中:一个Atmel的ATmega微控制器。 拥有一个20MHz的8位AVR处理器,128KB的闪存和整块16KB的SRAM,ATmega1284P并不是建立微型计算机最合乎逻辑的选择。它是在Arduino原型平台中找到的同样基础的设计:一个微控制器,设计使用它的32引脚接口与如传感器、电机和LED等外部硬件相连接。
德米特里·格林伯格的设计,可以在一个Atmel微控制器上运行完整的GNU/Linux操作系统,尽管速度缓慢
但是,这并没有阻止出生在俄罗斯现居住于加利福尼亚州的程序员德米特里·格林伯格进行向该器件中移植Linux内核和完整的桌面操作系统的挑战。 “经常可以看到初学者在微控制器论坛上询问能否在他们微不足道的8位小微处理器中运行Linux”,格林伯格在博客中对于他的灵感解释说。“这些问题的结果通常是笑声。这种问题在Linux论坛中也是经常见到的,询问Linux运行的最低要求是什么。通常答案是Linux要求一个32位架构和一个MMU并至少有1MB的RAM来满足内核的需要。” 格林伯格决定不用软件而是用硬件仿真ATmega芯片,这样的限制可能被打破。设计他自己的ARM仿真器——“移植别人的代码没有乐趣,再加上没有仿真器;我发现以一种方式写这些代码可以使它们易于移植到8位的设备中”,他解释说——格林伯格可以使ATmega1284P芯片假装成PXA255 ARMMv5TE处理器。 将芯片从原有的20MHz超频到24MHz,并增加一个16MB的SIMM模块用于RAM,以及1GB的SD卡用于操作系统本身,格林伯格能够成功的加载一个Ubuntu Linux的老副本到设备上,连同图形用户界面。 虽然它可以工作,但结果并不是完全的快速守护进程:格林伯格计算的启动过程大约需要两个小时才能运行到BASH Shell(同样的事情上网本可以在平均2秒钟左右完成),进一步需要四个小时来加载操作系统的其他部分。“启动X(图形用户界面)需要花费更多的时间”,格林伯格补充道。 一个命令并在1分钟内获得一个回应。也就是说,实际上你可以使用它。比如今天我用它格式化了一个SD卡”。这绝对不是最快的,但我觉得它可能是最便宜、最慢、最简单的手工组装、最低的部件数量以及最低端的Linux PC。电路板是使用导线手工焊接的,甚至没有使用印刷电路板(PCB)的必要。 格林伯格的设计,是在非商业化得开源许可证下发布的,它可以移植到其他的微控制器,如更便宜的ATmega644。当你在讨论关于仅仅值8英镑的芯片时,然而,可能值得选择更强大的ATmega1284P。 这相当于一块ARMv5TE处理器运行在大约6.5KHz(没错,我就是要输入KHz而不是MHz),构建的全部细节可以在格林伯格的个人网站上找到。
|