帮苹果公司节省2亿美元后… 硅谷码农的亲历故事
网友【硅谷故事】 2022-03-22 13:58:29 分享在【美国信息交流】版块    1    1

近日,在 Quora(类似知乎)网站上,有 Po 主提出了一个问题:“要使操作系统获得 UNIX 认证,需要做些什么?”答主 Terry Lambert 给出了非常精彩的回答,鉴于他的身份——前苹果工程师,曾负责 Mac OS X 内核的大部分工作,该回答很快就获得广泛关注并获得了上万赞。

这是一个引人入胜的故事。早年苹果公司推出 Mac OS X 操作系统的时候,经常利用“兼容操作系统的 UNIX 内核”作为宣传手段。比如,在其网站上,就专门有一页介绍 Mac OS X 的 UNIX 的文章。

The Open Group(国际开放标准组织)对此提出了诉讼,称其未经授权便擅自使用 Unix 名称。一旦苹果败诉,就需要赔偿 2 亿美元。

不过,苹果公司坚持自己可以自由使用 Unix 的名称,认为自己没有进行虚假宣传。但为了应付这场诉讼,据 Lambert 回忆,当时苹果对于此事主要有两个解决方案,要么以大约 10 亿美元的代价收购国际开放标准组织,要么赶紧获得 Unix 兼容认证,从而化解这场诉讼。

史蒂夫·乔布斯将这个认证的“秘密”任务交到了前苹果技术负责人 Lambert 手上,需要针对现有的 Mac OS 源代码运行合规性测试,边测试边修改,完成时间只给了一年。这也意味着 Lambert 需要在短时间内对 Mac OS X 内核的 1300 万行代码了如指掌,技术难度非常大。

Lambert 被承诺在任务完成之后,团队将会获得 2000 万美元的股权,Lambert 个人将得到 1000 万美元。实际上,这种任务如果是针对 Linux 的,那么需要一个二三十人的团队工作五年,但 Lambert 带着一支五人团队在一年内就完成了,期间还为数百个开源项目贡献了大约 200 万行的代码。只不过,Lambert 最终没有得到这 1000 万美元的报酬,他的股权被其领导独吞了。

网友分享在meiguo.com上的图片

有些人说不存在 10x 程序员,但我认为他们是没有遇到像你这样的 100x 程序员。虽然我们都知道最终 Mac OS X 已经通过 UNIX 认证,不过这并不影响我们跟着 Lambert 的回忆去了解这段有趣过往的细节。

让 Mac OS X 成为真正的 UNIX

按照 Lambert 的说法,为了让 Mac OS X 通过 UNIX 认证,这里面要做的工作可太多了。

让 Mac OS X 成为真正的 UNIX™,这样就可以化解这场诉讼了,这对在 Linux 日益普及的情况下逐渐失去市场的国际开放标准组织来说是件好事。

以大约 10 亿美元的代价收购国际开放标准组织,这样苹果公司就可以自由地使用该商标;但是,这并不能使他们免除与 Sun Microsystems、IBM 和其他公司的现有合同义务,因为这些公司都已经获得了 UNIX 商标的使用许可。当时有人问 Lambert 是否可以带领一支团队去做第一个选项的工作,他表示,同意的前提是,可以基于这个项目,指导整个组织的其他部分都在自己的代码库上进行相应的修改,并且可以对提交规则进行相当宽松的处理。

随之,Lambert 获得批准并开展认证工作。他们首先针对现有的 Mac OS 源代码运行合规性测试套件,由于头文件的缘故,测试套件立即显示出错。

他和同事 Ed Moy 做了两行更改,将类型定义从 <stdio.h> 移到它应该在的位置。在 <stdio.h> 中有一行更改,而另一行的更改是在该类型实际上应当存在的文件中。

接着再次运行测试,发现首次测试中的其中一个头文件错误消失了。因此,Lambert 等人做了一次“世界构建”(world build),将 Mac OS X 中的一切,包括 iTunes 都进行了重建。这一更改之下,有接近 150 个项目未能顺利重建,iTunes 也在其中。

于是 Lambert 和 Ed 对这些项目进行了认真的研究,并修复了其中的每一个项目,以让它们都能够进行构建。他们接着又进行了一次“世界构建”,所有东西都建立起来了。

也正是在那个时候, Lambert 才有机会接触到苹果的所有源代码。然后他们向项目提交了高优先级的错误修复,但其中一些立即被降低了优先级,另一些只需要做简单修复,因为他们帮助提供了补丁。接着工程副总裁 Bertrand Serlet 重新提升了那些被降级的项目的优先级。然后,Lambert 他们提交了头文件更改。

项目甚至“惊动”乔布斯

事已至此,Lambert 他们在这时候不得不重新评估一下整个项目的可行性。考虑到他为这个项目设定的先决条件,他和 Ed 都认为,这在时间范围内是可以继续下去的。

该项目还升级到乔布斯那里。Lambert 继续获得执行批准,毕竟,这样做能让苹果公司节约大量资金,而且还改进了所有 Mac OS X 服务器的营销宣传资料。

他们被承诺在完成之后将会获得 2000 万美元的股权。Lambert 将得到 1000 万美元,Ed 和 Karen Crippes 将分别得到 500 万美元。

Lambert 表示,当时他戴了很多“帽子”,不只是一个技术负责人,而且还是事实上的项目经理。

这个过程也是肉眼可见地漫长。Lambert 估算需要约一年的时间,这是一支由 5 个人组成的项目团队:三名 mousekateers(并非拼写错误),两名承包人:是 Len Lattanzi,负责用户空间的代码;Jaime Delgadillo,负责全职的自动化测试和 Bug 归档,并且尽量提供一些补丁。

项目组还有两名临时承包人,一名负责工具的合规性,另一名则负责手册页面。另外,他们还可以根据情况从苹果的其他部门抽调员工进行短期的工作。

漫长的一年

第一个大喜进展是,所有的头文件都通过了测试,这样测试套件中的其他测试就可以开始运行。在那个时候,Lambert 实际上已经将所有的头文件的修改提交给了 Mac OS X 的其他部分。当 Tiger(指 Mac OS X v10.4)版本发布时,头文件就已经符合标准了。但是,这影响了 CodeWarrior(Mac 的 IDE)的正常运行。Lambert 说自己一直想要解决这一问题,但一直没有机会,而且 CodeWarrior 或多或少都受到了影响。

对于苹果公司的其他部门而言,Lambert 刚刚解决了“修复头文件”的 Bug,它包含了许多其他针对单个头文件的 Bug,这用了三个月左右的时间。

Lambert 曾承诺过一年的时间,那么他将怎样实现这一年的预期呢?

Lambert 回忆道,“我知道,对头文件进行强制性的更改,以及与之相关的项目更改,将会成为项目中最大的单个部分。一旦我们能够进行其他的测试,那么在其他方面将会有大量的‘可轻松实现的目标’等着我们去解决。这个过程用了两个多月的时间,我们在提交规则时总是犹豫不决,但很快就完成了。Ed 在我的协助下完成了 libSystem 的大多数工作(libc + 其他系统库),并把它们合并到一起,从命名空间中移除某些内容;这也是为什么在 /usr/include/sys 中,头文件以"_"开头。”

“在等待提交的过程中,你可以并行地做其他工作,我们就是这样做的。在实现这些可轻松实现的目标之后,还有许多工作要做,例如重写内核中的信号系统,但这并不是那么容易实现。”

不过 Lambert 等人已经把 Umesh(我不会告诉大家他的姓)给说服了,“因为他不希望我们去触碰他的 pthreads 代码,不管怎么说,他还是想要在那里做出一些改动,有了这个项目作为反复推敲这些更改的手段,让他感到非常高兴。”后来,他们还从 Mike Smith(Michael Smith,苹果高级工程师)那里得到了“勉为其难”的支持,让他重写文件锁定代码。

项目组最终还通过询问有关陷阱路径的问题以及围绕信号系统堆栈帧保存的问题“收买”了 Joe Sokol。不过 Lambert 强调,在这些人当中,Umesh 对他们的 deadline 有着最大的帮助。

扣动扳机

万事俱备,Lambert 正准备“扣动扳机”,意外随之而来。

“他们引入了英特尔的代码更改,让我们再等上两个星期,但一切都乱了套。所以我花了三天的时间,将一致性分支上所有的补丁都重新整合到英特尔的内核代码中。到了那时候,我已经对 Mac OS X 内核的 1300 万行代码了如指掌。”

然后大家又回到了通过测试的状态。后来有人告诉 Lambert,不能为 Tiger 做整合。但这样会错过已设定好的 deadline。Tiger 的发布时间被再次延迟了 6 个月,一次又一次地延迟。这个问题不在内核,而是在英特尔。

Lambert 说,“我们本来可以轻松地在 Tiger 上发布,和我们自己设定的 deadline 保持一致。”但如果要他给 Linux 做相同的工作,可能要花五年的时间,而且还得需要二三十人。毕竟 Linux 发行版过多,产生了大量的阵营。

Lambert 最后提到,团队为开源社区做了很多贡献,“我们从开源社区收获了许多感谢,尤其是让 bash 顺利通过测试的修复。你绝对不会知道,作为这个项目的一部分,苹果公司为开源社区做出了多少贡献,至少对于非苹果公司的人而言,这是一个秘密项目,因此我们并没有将这一事实宣扬出去。但是我估计,当年我们为数百个开源项目贡献了大约 200 万行的代码。虽然感激之情有很多,但这种感激并非归于集体,因此,苹果公司总是被人诟病为‘使用开源代码,但从不回馈’。但,我们修复了至少 15 个 GCC 的 Bug。而你根本不知道。”

因此,整体来说这是一项规模不小的工程,尤其是在为了获得合规性的情况下。Lambert 感慨道,这真是一个漫长的过程。

网友分享在meiguo.com上的图片

尽管如此,Lambert 在评论区透露,自己由于一些原因 ,最终并未获得预期的 1000 万美元股权。

原文链接:https://www.quora.com/What-goes-into-making-an-OS-to-be-Unix-compliant-certified

编译:头条号 @InfoQ

meiguo.com 发布人签名/座右铭立足美国硅谷,分享有关创业的所有故事!
大家都在看
楼主新近贴
回复/评论列表
默认   热门   正序   倒序
meiguo.com 创始人

emotion

1   2022-03-22 13:58:29  回复

回复/评论:帮苹果公司节省2亿美元后… 硅谷码农的亲历故事

暂无用户组 升级
退出
等级:0级
美果:
美过
精华推荐
  1. 互联网女皇“340页AI报告”猛料刷屏
  2. 金星地壳似乎剧烈变化了,NASA即将启动新任务探索求证!
  3. 嘴唇经常干裂起皮,或许并非缺水!
  4. 川普家族“哈佛风波”和签证政策的突变
  5. 美国政府“管不着”加州?纽森州长说继续做中国生意!
  6. 在美国,千万别做的这些事盘点!
  7. 中美两国元首针对当下双边关系和经贸合作,☎️通话交流!
  8. 美国房价仍然高位,“美国梦”成奢望!
  9. 任天堂的Switch 2正式发售,参数细节全曝光!
  10. 属于中国的世纪可能已经到来
  11. 能熟练运用AI也不行?硅谷的40万人在近期被炒鱿鱼
  12. 鲁比奥声称将会收紧中国留学生的签证审批政策
  13. 美国物价到底贵不贵?近距离窥视一下佛罗里达州的中产家庭的日常消费
  14. 判刑15年!发币ICO的定性为诈骗
  15. 英国2岁男童竟然刷新了门萨俱乐部“最年轻男性”会员纪录
  16. 在美国生活半年,分享几句扎心实话!
  17. 川普政府的关税政策或将加速中国崛起,助力中国成为全球的经济主导力量!
  18. 盖茨列出了10项改变世界的技术名单
  19. 旅居海外十几年,母亲是心头之痛!
  20. “蜗居”纽约的中国穷人:男女同住,毫无私隐… 却坚持不肯回国
  21. 美国对华为“HarmonyOS”采取行动,引发科技领域的新争议!
  22. 出乎全世界意料,中美两国的“2025日内瓦谈判”太亲密了吧?
  23. 中美各自取消91%关税!为防🇺🇸川普政府反悔,🇨🇳重申关键问题!
  24. 美国暂停了学生签证预约,申请者在社交媒体平台的活动须谨慎!
  25. 美国的州排名出炉,犹他州连续三年领先!
  26. 川普总统:加拿大可以免费加入“金穹”导弹防御系统
  27. 美国企业在强化回归办公室的工作要求
  28. 手机充电习惯是影响电池寿命的根本原因
  29. 全球AI人才的争夺战白热化,顶尖研究员成为了科技巨头争夺焦点
  30. 中美通话的内容简短,但意味深长!
  31. 马斯克的“130天政府生涯”终结后…
  32. 美国“非法移民家庭”遣返行动引发了“婴幼儿无国籍”的危机
  33. 世界瞩目的电话,十个不寻常的细节剖析!
  34. 在美国生活半年,分享一下可能让人失望的真话!
  35. 中美贸易战的谈判再起,稀土贸易成为焦点
  36. 美国联邦调查局警示:“新型医疗保险”骗局泛滥

美国动态 美果搜索

Your IP: 216.73.216.36, 2025-06-09 10:55:01

Processed in 0.18013 second(s)

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
已有0次打赏
(1) 分享
分享
取消