OK Labs公司的故事(1):从头开始

译至:http://microkerneldude.wordpress.com/2014/08/29/ok-labs-story-1-the-beginning/

译者注:seL4背景的补充材料

上周,我答应讲一下开放式内核实验室的历史。 这是第一部分。

这一切都始于十几年前,当有一天早上我接到凯文的电话,他说他是高通公司的一个知识产权律师。 当你知道他们的讼棍的本性的话,这通常会让你的脊椎发凉。 但是,谈话是非常友好的,他想知道我们的L4微内核的IP状态的详细信息,我们的L4微内核是嵌入式Pistachio,有基于开源BSD的许可证(June‘08的发布仍然存在)。 这是我们从卡尔斯鲁厄的Pistachio内核fork出来的,我们早先移植到多种架构上,包括ARM。 这个分支的特别之处是在于,它对资源受限的嵌入式系统应用进行了优化。

当我在接到电话后走进实验室并告诉我的学生,哈维立刻联想到一个使用雅虎地址的叫埃里克的家伙,已经在邮件列表上问了非常详细的技术问题。

这个电话是在2004年5月,高通明显对我们的内核很感兴趣。总之几个星期后我去了美国,在六月初,我在圣迭戈拜访了他们,带有一个保密协议(很久之前就过期了)。 我花了几个小时与副总裁和一个高级工程师(Eric)做了相当激烈的技术性讨论,其结果是,在8月上旬我又去了一次,加上我的学生本诺,提供一个为期三天的L4设计课程,原理和用法(按咨询价格支付,包括商务舱的航班)。 听众是来自高通的一打左右的工程师,再加上一些客户。

课程很顺利,9月我们得到了一个合同来提供咨询服务帮助高通的工程师做样机的研制。 最初,这项工作是由本诺和卡尔完成,但随着时间的推进扩大到约为6名全职员工。 仅仅半年后,也就是大约2005年2月,我们在相当长一段时间对此一无所知,高通决定把L4投入生产,作为它们的modem固件和BREW操作系统之下的内核。 第一台运行L4的手机(东芝W47T)在2006年的下半年开始在日本出货。

这一切背后的技术原因,我们只是随着时间的推移才知晓。 事实证明,高通在当时有两个问题。 之一是他们的modem堆栈的平面地址空间的设计和高度集成的BREW操作系统。 这已增长到数百万行的代码,调试这样一个没有内存保护的野兽是一场噩梦。随着在那个(前智能手机)时代应用程序的扩散显然??变得更加严重。 它显然不可能支持一个开放的环境(使用任意第三方应用程序)的这种方式。 还有一个要模块化modem堆栈的需求。

高通的A计划是改造保护成REX,他们自己的RTOS。 有些人预见到这一努力要失败,并正在寻找一个B计划(显然我们是计划B.2,我从来没有发现B.1是什么。)失败一定是非常引人注目的,这致使从评估到部署L4惊人的快速转变(虽然埃里克在他们找到我们之前显然做了一些原型的工作)。

还有第二个原因驱使他们做出这个选择:摩托罗拉已作出以Linux作为自己的手机操作系统的战略举措,基于Linux的摩托罗拉手机已经在中国出货。 他们想在在Linux的手机使用高通的芯片。高通又不想Linux(或者任何GPL软件)在它们的核心IP附近的任何地方。 为了出售芯片给摩托罗拉,他们需要一种方法来以IP方式来看能够使它们的IP与Linux相隔离。 总之,他们正在寻找一个虚拟化的解决方案,而我们能在我们的L4内核中运行较早的Linux版本。 他们在找满足他们的要求的各种各样的候选,需要满足:

  1. 支持虚拟化的Linux,
  2. 具有高效率地运行他们的modem堆栈的能力,并
  3. 运行于ARM处理器。

他们发现,我们已经最接近这个目标,尽管没有一个人(包括我们!)声称我们具备产品级的质量。 所以,他们基本上和我们签合同来达到这个目标,我的学生们确实做到了。

讽刺的是,虚拟化的Linux并没有太大的影响。 在摩托罗拉的一侧无休止的延期,部分原因是内部斗争,以及它能否提供所需的性能的质疑(来自L4以外的工作组)。这种怀疑,虽然不合理,在某种程度上是可以理解的。 那时(基于ARMv5的架构)使用的ARM9核具有虚拟索引,虚拟标记的高速缓存。 这意味着该硬件不能区别属于不同的地址空间的数据,因此Linux(以及其他的操作系统,如Windows CE)在每个上下文切换时都要清除高速缓存。 由于在虚拟化设置中,Linux运行在它自己的地址空间,调用Linux的系统调用需要上下文切换(从系统调用返回时还需要另一个)。即使在本地Linux,很多时候缓存也经常被清除,Linux的表现并不好,人们会合理地认为虚拟化将使这更糟糕。

事实上,它是倒过来:在ARM9处理器上,在L4上运行虚拟化的Linux速度比原生的更快! 这是由于一个相当漂亮对硬件的功能的利用,这使我们在L4下能够使上下文切换非常快(高达50倍!),我们实际上已经发表这个“快速地址空间切换”(FASS)的技巧 ,却没有一个人我们的竞争对手把它捡起来,它似乎已经超出了他们的能力(这并不奇怪,因为我们经过一段时间的竞争发现这个事实,但我会在下次说这个话题)。 我们已经在Linux中实现了原来的FASS,我们已经提供给主线,但维护人员拒绝了因为它过于复杂。
50倍算得了什么?

在L4上开发的专业的摩托罗拉工程师最终得到了一个基于ARM9,虚拟化的Linux手机投入市场(Motorola Evoke)。 我用过它,它很好用,无缝集成了基于Linux的和基于BREW的应用程序。 远远超过了痛苦的缓慢HTC TyTN-II,虽然它有一个更强大的ARM11处理器运行Windows Mobile。 但为时已晚。 到那时,智能手机需要比这样的低端处理器可能提供的性能更高的性能(即使没有虚拟化和与处理器共享modem),所以趋势就分开了,功能强大的应用处理器。 “统一”的手机的时代,同时运行应用程序与实时操作系统(支持modem堆栈)在同一处理器上时代,已经胎死腹中了。

时间: 2024-08-07 13:07:46

OK Labs公司的故事(1):从头开始的相关文章

程序员生存定律-六个程序员的故事(1)

程序员生存定律这系列的目录在这里:程序员生存定律--目录 喜欢从头瞄的,可以移步. ------------------------------------------------------------------------------- 此前的章节基本上是在分析并试图建立一种成长的模型,为免这种分析和模型离开现实,下面将考查一些具体的,程序员的故事,看的话最好把这六个故事都看完,否则容易片面. 很多人更喜欢看名人的故事,比如李开复老师的故事.这必然是有帮助的,但可参照意义往往并没有想象的那

商业分析师应如何构建一个商业故事

在之前的如何修炼成一个合格的商业分析师中我们提到一个好的分析师最重要的特点就是会讲故事.今天的文章里我们不讲技术,我们来谈谈如何讲故事.* 一个好的商业故事是可以很有力量的,可以很抓人心的,但往往很多故事都会忽略大的远景.一个好的引人入胜的故事关键在于故事中的主人公在经历了严重的灾难或者一些比较严重的问题后有所改变(屌丝变男/女神的逆袭),而这个改变的过程就是故事的主线.而许多不成功的商业故事的问题在于故事中任何人都没能超越自己,故事到结尾主人公什么也没有改变.所以我们要讲什么样的故事呢?要想讲

程序员生存定律--细论影响人生成绩的四个要素(1)

程序员生存定律这系列的目录在这里:程序员生存定律--目录 喜欢从头瞄的,可以移步. ------------------------------------------------------------------------------ 定律要素之一:自身价值 在金庸先生构建的武侠世界里,最犀利的杀伐武功应该是<独孤九剑>,但学会了独孤九剑却失了内功的令狐冲一样会被一堆无赖按到地上揍个鼻青脸肿.待到学会了吸星大法,内力大进,那就再没这回事了. 根据打铁还要自身硬的道理,修炼确实应该先从内功

程序猿生存定律--细论影响人生成绩的四个要素(1)

程序猿生存定律这系列的文件夹在这里:程序猿生存定律--文件夹 喜欢从头瞄的.能够移步. ---------------------------------------------------------------------------------------------- 定律要素之中的一个:自身价值 在金庸先生构建的武侠世界里,最犀利的杀伐武功应该是<独孤九剑>,但学会了独孤九剑却失了内功的令狐冲一样会被一堆无赖按到地上揍个鼻青脸肿.待到学会了吸星大法,内力大进,那就再没这回事了. 依据

Amzaon EC2虚拟化技术演进:从 Xen 到 Nitro

今年2月,由光环新网运营的 AWS 中国(北京)区域和由西云数据运营的 AWS 中国 (宁夏)区域发布新的实例类型,新的实例类型包括 C5.C5d.R5.R5d.除了这四种之外,在AWS国外部分区域还上线了最新的C5n. 这些新实例类型个个都具有鲜明的特征,我简单整理归纳如下: C5实例:性价比显著提升(与 C4 实例相比,C5 实例提供了更高的内存与 vCPU 比率,并且性价比提高了 25%,某些应用程序提高了 50% 以上),更大的实例大小(C5 实例新的更大的实例 c5.18xlarge提

勒索病毒,距离我们还有多远?

上周五,一个名为WNCRYPT"永恒之蓝"的勒索病毒悄然爆发,并在短短时间内迅速感染了超过150个国家和地区的计算机系统. 中国领域也并不例外--在微博等社交网络上,全国多地公共服务机构.机关单位等地方被病毒感染而临时中止对外办公业务的消息不断曝出. 该勒索病毒出现之时,360等国内安全厂商也在紧急行动,经过72小时的连续作战后遏止了勒索病毒的传播趋势,360安全卫士用户没有受到此次病毒攻击的危害. 放眼互联网安全领域,此次在全球范围内爆发的WNCRYPT"永恒之蓝"

周总结《四》

每到这个时刻,都不禁感叹:时间过的真快,转眼间到公司一个月了.来到这个公司后,一切从头开始,向刚进入这个行业的人一样,见到了许多之前都未曾经历过的.这大概就是经验的累计吧.先说说这周的工作总结吧,分配给我的任务相对简单一些,做起来还挺顺利的,在领导的帮助下,完成的还顺顺利,每天的工作都是完成了的.顺利的工作固然是对我来说非常不易,从一来公司就整天精神压力挺大,因为公司说的要实行淘汰制,达不到要求就会被淘汰.之前的心态发生了许多的变化,因为害怕被淘汰,淘汰对我而言不仅是失去一份工作这么简单的事,可

Si2155

http://www.edom.com.tw/cn/index.jsp?m=prodview&id=1702 Description:新型的Si2155 电视调谐器IC扩展了Silicon Labs公司经过市场验证和业界领先的硅电视调谐器架构,使其进入高速增长的数字电视和机顶盒(STB)新兴市场. Si2155电视调谐器IC具有业界领先的RF性能,与Silicon Labs公司曾获奖的Si217x电视调谐器一样设计简便,而Si217x已经被世界前七大电视品牌厂商中的五大厂商大量采用.Si2155

关于晶振

当比较和选择晶振时,设计师应考虑以下10个关键参数. 1.工作频率 晶振的频率范围一般在1到70MHz之间.但也有诸如通用的32.768kHz钟表晶体那样的特殊低频晶体.晶体的物理厚度限制其频率上限.归功于类似反向台面(inverted Mesa)等制造技术的发展,晶体的频率上限已从前些年的30MHz提升到200MHz.工作频率一般按工作温度25°C时给出. 可利用泛频晶体实现200MHz以上输出频率的更高频率晶振.另外,带内置PLL频率倍增器的晶振可提供1GHz以上的频率.当需要UHF和微波频