帮苹果公司节省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. 麦当劳CEO声称美国品牌的声誉在全球下滑
  2. 李开复:如果老板不AI,公司将会被AI淘汰!
  3. 白宫开通了TikTok 账号,传播政策信息!
  4. 不输常春藤!盘点学费低、薪资高的25所美国公立大学
  5. 川普家族竟然靠它狂揽45亿美金!操盘手是赵长鹏?
  6. 美国华裔二代坦言:中国发展现状,让父辈移民后悔了!
  7. 从近期的中国留学生在美国入境的悲惨遭遇说起
  8. 2025年度的美国公立高中排名发布,咱只关注前三!
  9. 休斯顿机场“小黑屋内的铝箔纸”:中国留学生遭遇遣返的36小时煎熬
  10. 中国留学生在入境美国时遭遇驱逐,禁止五年内再入境!
  11. Niche发布2026全美最佳大学榜单 MIT重回榜首
  12. 美国“真放宽”了对中国留学生的入境政策?
  13. 植物油更健康?动物油脂摄入或将加速肿瘤生长
  14. 持中国大陆护照在申请美国签证的注意事项更新(2025年8月版本)
  15. iPhone 17系列新品、iPhone Air发布了!
  16. 先交押金!美国重启了“签证保证金”试点计划
  17. 美国签证新规“取消第三国面签”的选项了
  18. 美国年轻人的“中国观”悄然转变
  19. 马斯克“xAI”起诉前工程师“泄露机密”
  20. ICE抓捕的非法移民中,中国人数量激增?
  21. 美国市场的智能手机“印度制造”的份额激增
  22. 从美国回到中国的,基本都会被问及这些问题!
  23. 启程回国:美元很香,但回家的路更香!
  24. 华人科学家身陷“杀猪盘”,短短数月就被掏光250万美元积蓄!
  25. 敌友即友?马斯克和扎克伯格开始接触,图谋合伙收购OpenAI?
  26. 全美房地产市场在趋向中性,区域分化明显!
  27. 选择西雅图、圣地亚哥还是洛杉矶?全面对比“三城生活”
  28. 相差3米!星舰试飞“精准溅落”展现技术突破
  29. 川普总统的态度突变,暗示乌克兰应该反击俄罗斯本土?
  30. 华人留学生“索赔1亿美元控诉”大学期间的农药伤害
  31. YouTube“反诈频道”助力警方,破获6500万美元诈骗案!
  32. 中国留学生在入境美国时遭遇盘查,中方大使馆发布安全提醒!
  33. 美国宣传制裁东南亚的19个电信诈骗网络实体
  34. SpaceX的星舰“第十次试飞”成功了
  35. 川普总统的“科技巨头宴”收获千亿级的投资承诺
  36. 加州州长竟然模仿川普总统的风格发帖,粉丝数和支持率“都涨了”!

美国动态 美果搜索

Your IP: 216.73.216.36, 2025-09-18 06:37:53

Processed in 0.34512 second(s)

头像

用户名:

粉丝数:

签名:

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