社会团体和各国政府正在帮助缩小全球数字化的鸿沟,我们可以大胆的想象这是一款针对发展中国家的低收入人群开发的电话(可以认为是个瘦Ubuntu:一种时下流行开源的Linux),就好像是目前难以让人琢磨的$100 电脑一样,下一个也许是“免费的” Linux 电话了。
随着时间的流失,中端甚至低端电话的硬件都可以满足Linux 的要求,但是同时这些手机的利润也变得越来越薄。过去10余年电池技术不能以一个适度的速度提升,这就意味着应用不能和时钟的提速相匹配。所以如果Linux电话要跳出智能手机的桎梏,它必须采用新的功能并改进和合并许多现有的功能以应对面临的挑战。
技术挑战
开放软件开发试验室(OSDL.org)最近发起了新的行动计划-MLI(Mobile Linux Initiative),目的是培养和支持Linux 在移动电话手机的应用。MLI目前的首要任务是使Linux 成为更适合手机的OS 平台。下面列举的一些问题来自MLI的参与者和有兴趣的合作伙伴,特别是手机制造商和芯片供应商。
电源管理
今天,如果便携式设备制造商想要提供一个基于Linux和有电源管理的设备,他们将面对各种方案而不知所措。
OEM可以参考以笔记本为代表的桌面系统的电源管理,如ACPI和APM,在内核的邮件列表中关于桌面电源管理的讨论确实也是最多的,非x86/IA-32 结构的笔记本硬件,OEM可以使用针对苹果PowerPC 的PMU。 嵌入式的OEM如果是使用ARM授权的芯片可以借助ARM公司的LEM框架,或者使用10余家ARM授权芯片公司也有自己的电源管理方案(如FreeScale, Intel, NEC, Samsung, TI等)。MIPS和MIPS授权芯片公司,FreeXScale,IBM Power 框架 , Renesas 和 Hitachi产品线也有自己的更加独特的能源管理协议和方法。OEM当然可以选择像MontaVista 的 DPM和其他嵌入式Linux供应商的方案。选择当然是一件好的事情,但是太多的选择会导致方案支离破碎的状况和应用缺少可再用性。应对电源管理的问题,OSDL MLI的成员和工业界已经表达了一种愿望,即一个统一的,跨处理器平台的电源管理途径,或者一个主流的,更高层次的,可以覆盖嵌入式,桌面和刀片服务器能源管理的体系结构。
无线电接口
今天的Linux智能手机中,GPRS接口是被集成在一个调制解调器里面,它包含一个CPU核,DSP和支持无线通讯的RF硬件。很像一个调制解调器——许多智能手机和这些嵌入式处理器是通过一个串口上的AT命令进行通讯的。这种靠卸载无线电功能来简化智能手机设计的方法是可行的,但是这将会进一步增加整个手机的成本。今天,一些富有经验的设计已经去掉了调制解调器,把基带接口开放给了应用处理器(像目前中低端的手机使用Nucleus这种情况),但是这样会给即使是最新Linux的实时性技术(抢占和开源的实时补丁-下面还会提到)带来相当的压力。GSM或者CMDA无线协议信令帧大约是800-900微秒的时间,如果你们是X86/IA-32 或者是PowerPC处理器一般都是500 Mhz 到1.5 Ghz CPU 时钟, 一个毫秒以内的最坏情况的响应是很容易到达的,但是如果是处理器时钟在0-200 Mhz,的ARM CPU,基于Linux的硬实时的中端响应和抢占延迟仍然是具有挑战的。另外的一个挑战的领域是把已经非常成熟的电话协议栈移植到Linux上.,这种软件是基于传统的RTOS开发和优化的,像Nucleus 和 REX。这些多层协议是用每一层特有的线程切换技术实现的,如果移植到Linux可能会在层和层之间增加20-30微秒切换延迟,这样只是穿越一个单包的协议栈就消耗了计算时间的很大的部分,留给其他任务的CPU时间就很少了。所以,如果Linux要想进入中低端手机的设计领域,它必须要解决低延迟的任务切换和CDMA/GSM协议栈的移植这两个重要的问题。
实时性
在过去的5年中,Linux已经在向自身实时性改善的方向发展并取得了长足的进步。今天Linux已经具备了本身的实时性选择,包括抢占内核,0(1) 调度,FUTEXes 和最近的开源的实时Linux项目-现在已经合并到由Ingo Molnar维护的抢占补丁里面了。同时还有双内核和虚拟计算的技术,像RTLinux, RTAI,Adeos和未公开的Jaluna Osware。实现把一个嵌入式的RTOS虚拟到Linux里面,另外还有一些目前还属于研究阶段的实时项目和技术,如L4 Micokernel 和L4 Linux 等。OSDL MLI 的成员和社区更愿意接受和喜欢Linux本身的实时性改善的实时方案,为了支持Linux直接面对RF处理器,多媒体和语音处理,多数人认为Linux应该继续在本身像RTOS 一样在实时响应方面发展。在移动电话的设计中,为了减少电池消耗,系统时钟可能从200 Mhz降低到40 Mhz (甚至0 Mhz)后再回升回去以响应系统的策略和外设输入的要求,这些动作产生的切换要求Linux必须有足够的响应能力和时限保证。
|