大卫:所以我有一天在我的办公室,我的老板的老板进来了。他说,“我有一个特殊的项目。我希望你努力。有些人将从美国政府过来,我们将帮助他们建造某种设备。“
他说,“哦,我什么都不知道。”他说,“你的老板对此并不了解这一点。他只是知道你正在研究一些特别的项目。不要跟他说话只跟我说话。“
大卫:苹果有很多特殊的项目,可以在各个时代继续。有些人会让他们的办公室门关闭,每当你去看看他们是否想去午餐,他们实际上会有黑色布,他们会缩小他们正在努力的任何事情。这并不罕见。
亚当:你好,欢迎来到科社会。我是亚当戈登贝尔。每个人的剧集,有人分享了一些建造的软件背后的迷人故事。
今天在节目上,我们有大卫索德。他在苹果工作了14年,他真的有一个狂野的分享体验。他将在2000年代在苹果中给我们一个人的内心看法,在2000年代,大约在2001年至2015年之间,当时苹果转变为今天它的州强国。将有特殊项目。他们中的一些首要秘密。有政府代理商。但也只是建立文件系统并在真正短的时间表上工作,并具有史蒂夫乔布斯的发展计划。而且,只需在高压下努力工作。
大卫:我是一个独立的开发人员编写Mac软件,并向想要发表的东西的公司销售它,没有足够的工程师。还有一个苹果扑克游戏,苹果工程师在旁边跑了。扑克游戏最初实际在一次会议室举行。有一个会议室有一个漂亮的圆桌,这只是完美的尺寸。所以每个人都会在晚上7点出现。而大多数人都是苹果员工,但有一个谷歌员工和微软员工。还有一对独立的人喜欢我。
大卫:是的,你会打电话给某人。你说,“嘿,我楼下。”有人会来帮助你并带你起来。
我邀请自己邀请参加那个扑克游戏,每周都会失去20美元。所以他们一直邀请我回来。并且会让我的耳朵打开,因为你可以找到关于公司正在发生的事情的各种有趣的东西。你偶尔可以获得技术支持。你说,“嘿,我有麻烦。这个呼叫不正常工作,文档所说它应该工作。“扑克游戏的人通常会说,“哦,是的,我写道。文档是错误的。你需要先制作另一个呼叫,然后它会工作。“这会让我拯救一些乱伦的日子。
它是最便宜,最可靠的技术支持形式。这很有趣。我喜欢这些家伙。他们很友好。而我当时正在做的一件事是为赛门铁克工作,努力工作诺顿公用事业,这是一个光盘修复程序。所以我在Mac文件系统中深入修复了破坏的目录等。我接到了来自扑克游戏的一个人的电话,说,苹果想要聘请知道如何编写Mac文件系统的人。
这是一个专业就在那里。不是很多人知道文件系统的人,我一直在做这件事。所以他说,“叫这个家伙,Tony Fidel,”我从未听说过的,“告诉他你想面前采访这个公开的位置。”
所以托尼知道我要打电话。我打电话给托尼,说:“嘿,我听说你需要一个可以编写文件系统的人。”所以我进来了面试。
大卫:这是2001年,Dot-Com泡泡刚刚在股票市场倒塌,这意味着硅谷的大多数公司都一直给我工作已经消失了,甚至他们也没有破产,他们取消了那一天实际上没有赚钱的一切。因此,我所有的合同都在几个月内消失了。我没有工作。这是自从大学之后第一次,我没有任何工作。没有人在任何这些公司回答我的电话。
事实上,我所知道的大多数人都被解雇了。所以这是非常凄凉的。所以当我听到有一份工作时,我就像,“地狱是的,我正在拍那个。”然后当我听到它是写一个文件系统时,这是完美的。
MAC文件系统被称为HFS +,它是苹果专有的。而且没有很多人对此了解了很多。可能是一半的人知道它是如何运作的,在苹果上工作了。显然,我知道那些家伙都忙,否则他们刚刚将他们分配到这个项目。而他们所认识的其他人,世界上可能有很多十几岁,并非所有人都在美国生活,他们大多数都在做其他事情。所以我知道他们需要的这种相当特殊的技能并没有很多竞争。
所以我进来采访,托尼说,“你能写一个文件系统吗?”我说是。他说,“你知道关于Mac文件系统的所有内容吗?”
我说,“是的,几乎。多年来我一直在努力,我知道这很糟糕。“然后有一个暂停,我意识到他对文件系统一无所知。所以他不知道还有什么要求。他是一名电气工程师,一个硬件家伙。他真的很聪明,真的擅长他所做的事情,但他不是一个软件专家。所以基本上说,“好的,你能从星期一开始吗?”
亚当:如此大卫进入他的工作,不知道他将在努力工作。但他确实知道那个雇用他的家伙是一名电气工程师,而且他要为苹果公司的硬件部门工作。
大卫:星期一我在苹果上出现,他们向我展示了一个立方体。而且有一个开发板。并且开发板看起来像来自桌面PC的主板,已被取出并放在我的桌子上。因为它在董事会上有所有组件。它有一个测试点,所以你可以联系示波器和逻辑分析仪和东西,如果它不正常工作,并诊断问题。它在电源方面有大电源。它有一个很大,全尺寸的桌面,硬盘上挂在一起。
这几乎是所有新计算机的开发方式。他们开始如此,这样在早期,硬件工程师可以挂钩测试设备,看看是什么不起作用。然后在进入生产时,你会得到一块最终在笔记本电脑的小板。所以这是一只脚的脚。它有一堆离散组件。和中间的双臂核心的SOC,以及电路板外部的硬件测试点。
亚当:此时Apple的计算机基于PowerPC CPU,但是这台机器遍布David的桌子上有一个ARM CPU,他给了一个Windows电脑。这真的很奇怪,但他知道他被带到了什么:获得一个文件系统并运行它。
David:所以我用手臂开发工具使用我的Windows机器,因为开始的某人决定我们将使用Windows版本而不是ARM开发工具的Linux版本。您将在C ++中编译操作系统。您将在一点点串行接口加载它,然后您将运行它。而且您将使用串行调试器连接的小调试器调试它,称为JTAG,它代表某些东西。我不知道它代表了什么。
亚当:那疯了。如果我进入一份新工作,我会害怕,他们似乎是一个挂钩的主板,你甚至不再看到了这些主板。然后是示波器或其他什么。我会担心我有错误的工作或什么。
大卫:嗯,我办公室里没有示波器,因为我不是硬件工程师。我不知道该怎么办。但是,我们的硬件工程师拥有同一个板,因为这是唯一在生产中的董事会。在某些时候,生产线启动,他们开始进行测试运行。因此,每周他们都会进行测试运行,他们生产几十名板。他们从中国发货回到这里让我们和他们一起玩,看看他们是否工作。而且他们不希望这种东西只是坐在人们能看到的东西中没有受保护。
所以他们制作苹果叫隐形案件,这只是一个大塑料盒。所以我们隐形案件如此丑陋。它看起来像是剩下旧俄罗斯医疗设备的剩余仓库,刚拿一些塑料盒,并坚持下去。这是可怕的。他们基本上说:“你正在为这件事编写文件系统。您不需要知道光盘上的内容。只是让它工作。“
亚当:所以大卫潜入它的工作。他们开始建立一个团队。
大卫:我是雇用的第二次软件工程师。他们迅速招聘,但仍然,这不是一个大队。他们可能总共有十几个人。当我开始几个硬件工程师,一名机械工程师,产品经理。这不是一个大球队。当我们在年底发货时,可能有两个人。所以这是一支小型球队。
在我去的第一次见面时,他们说,“我们将在今年年底发货。”而且我认为这是一个笑话,因为我认为没有人可以在六个月内用新的硬件和新软件发货全新产品。而且我即将笑,因为我真的以为这是一个笑话。我注意到没有人笑。所以我喜欢,“哦,这就是我签了的。”
所以我们每周七天七天工作,我们工作了80%和90小时 -
大卫:......直到午夜或以后才能得到这个东西。我记得我在九月和我的妻子在一场演唱会上和我的妻子一起出去了,我的老板在我的手机上致电了我,说:“有一个虫子,我们认为这是你的软件。而且你需要进来,因为当打电话的那个代码的人周一早上来到这里时,它需要工作。“所以我在这次音乐会结束时告诉我的妻子,“我会让你回家,我开车去上班。”
我去了周日晚上在工作中修复它,所以星期一早上它准备好了那个将成为这个API客户的人。
亚当:这个神秘项目的操作系统不是从头开始制作的。 OS的较低级别部分已从第三方获得许可。
David:Apple的文件系统被称为HFS +。当我们购买较低级别的操作系统的人显然不知道这是什么,都没有得到支持。因为苹果在2001年没有接管世界。所以他们没有看到支持Apple文件系统的任何理由。他们支持FAT32,因为这是大多数人的用途。
我从Macintosh操作系统中取出了HFS +代码。我所拥有的第一个问题是,当时,Mac是一个大型的处理器,ARM芯片是一个小型的处理器。文件系统具有写入磁盘的所有这些数据结构。而且他们写了大endian。所以我们不得不添加代码来撤消所有这些,因为他们进出时。
亚当:大型恩天和小endian是数字在二进制文件中写的顺序?
大卫:对。当您拍摄一个数字时,整数或长时间,它是叮咬实际在内存中的顺序。在Big Endian中,最重要的位是最低的咬合数。在小endian中是反向的。这是我第一次意识到苹果已经发货了一个小endian处理器。所以我必须投入代码来处理,这并不困难。它主要是非常详细的导向。这是一个在文件系统中找到每个数据结构的问题。当然,文件系统具有可变大小的数据结构。这不仅仅是简单的数据结构。很多人都是可变的大小。
但是,开发循环是可怕的,因为ARM开发工具很慢,并且在串行电缆上加载代码很慢。并且调试器很糟糕。那么这个领域的差异是多大的,这取决于它之前的这些其他领域。所以有很多计算,有各个地方我会错过的东西。然后它会崩溃,然后你必须回去弄清楚,“好的,我错过了什么?”
亚当:我们已经有规则是如何写下数字的。为什么不遵循人类的领导?遵循十进制的作品如何?
大卫:我认为硬件工程师一旦你使用一个小门,你会用一个小的门告诉我。
如果你这样做,那么你使用一个小门而不是大ndn,所以英特尔,我猜手臂选择很少的ndn,因为它使用略少的硬件。幸运的是,当TCP IP为互联网开发时,他们选择了标准,我的记忆力是所有跨TCP IP发送的东西都是大NDN。
大卫:是的,这是一个有意义的。如果你只是拿一个十六进制编辑器,你看一下直线十六进制的内存,就是大ndn看起来像你期望的那样。而且很少的ndn是那个喜欢的人,好吧,这叮咬实际上是左边的咬伤,然后你正在做出所有这些矫正。
亚当:我必须诚实。我从未在任何类型的软件开发任务中使用十六进制编辑器,但大卫有。
亚当:因此,他通过这种单调的单调任务来从一种风格来回映射到另一个风格,项目上的保密仍在继续。
大卫:我们不在主校园里。我们在一个配件建筑中迈出了一员,大多数人都有人们在苹果公司工作的后期工作。那些运行计算机和物流和运输的计算机的人。所以他们只是在那座建筑物中占据了一楼,他们提出了安全门,所以那些家伙不能进入我们的地区,他们把我们放在那里。他们是如此偏执,当你去吃午餐时,他们告诉我们,因为我们会在午餐时带到主要自助餐厅的主楼。他们说,你不能整理在一起,对吗?你可以进入两三组,但你们所有人都不能一起去吃午餐,因为我们不希望其他苹果员工看起来像,哦,这些人是谁?我们以前从未见过它们。他们在努力工作吗?
亚当:帕拉诺亚州似乎是一个模糊的氛围,我从故事中遇到过。
大卫:我不会称之为偏执狂,但苹果肯定有很多保密。我的意思是,人们一直对苹果所做的事情感兴趣,对吗?有所有这些网站都是印刷谣言关于下一个iPhone中的内容,或者添加到下一个版本的操作系统和其他公司没有这个,对吧?我的意思是,我不知道任何网站打印谣言关于下一个戴尔笔记本电脑的内容。
大卫:所以苹果喜欢展示一些东西,并拥有你第一次见到它,因为他们知道你从展现出一些巨大的拳头而是展现出一些东西,“哇!太棒了。”就像史蒂夫乔布斯展示了第一个iPod一样,没有人看到一个人,“哇,这是一个非常酷的事情。”虽然,如果它被泄露,并且每个人都知道它即将到来,那么他就会显示它。你喜欢,“哦,是的,我已经知道的那件事。”所以他们真的很难得到它。团队不谈论他们正在努力的东西。当你和在不同团队上工作的朋友一起去午餐时,你不问他们,你在做什么?因为那时他们只是要告诉你,就像我不能说和那是不礼貌的。所以你只是为了谈论别的东西。
大卫:我和足够的人谈过,我意识到,好吧,我们正在建立一个音乐播放器,因为人们担心我们将如何将音乐文件放在上面?耳机如何工作?
大卫:是的。所以iPod被宣布,我想在2001年11月底举行,它在12月初几周发布了几周。所以时机很糟糕。 911发生在2001年9月,美国在911和DOT COM BUBBLE BUSSTING之间存在衰退。美国在经济衰退中,Apple发布了这款400美元的音乐播放器。请记住这是20年前。所以这可能就像一个600美元的音乐播放器现在基于通货膨胀,每个人都在看这个,你们在想什么?我认为我们并没有真正卖掉许多直到第一季度。我们认为,我们卖了几十万人。
我记得想想我最好开始寻找另一份工作,因为这个项目明显注定要注定。所以这就是为什么没有人会雇用我的营销,因为显然我不知道什么是流行的,什么不是因为豆荚成功。但一开始,没有人知道这将是一个巨大的成功。营销将每隔几周到来,他们向我们展示了一些篮球明星的小剪辑被看到乘坐公共汽车,他有白色的耳塞。所以我们就像,“哦,很酷!一些名人正在使用我们的产品。这不是很棒吗?“现在当然,苹果一天出售了一百万个iPhone。
亚当:疯了。所以我得到了,我认为第三代经典的经典,我记得它似乎昂贵。我用了很多。我当时发现它非常革命。但在今天的条款中,它只是播放了音乐,但很多来自这个,对吧?
大卫:是的,我认为它为苹果做了两个关键的事情。它显示了苹果可以冷静的小设备。所以人们停止苹果作为销售那些没有人用途的公司的公司,除了图形部门的家伙和人们开始购买小型iPod和说,“哦,苹果制作了很酷的东西。我有点像这样,对吧?“所以它改变了苹果的形象。它让苹果在制作小型小型化设备时得到了很多技巧,因为使iPod的硬件团队最终在iPhone上做了很多工作,因为他们知道如何制作小型设备。 Apple也学习了如何为小型嵌入式设备编写软件。
当第一个iPhone出来时,很难弄清楚我们如何适应Unix?您将如何适应原始iPhone的硬件?这是一个非常挑战。我的意思是,有人谈论我们是否应该只是扩展iPod操作系统,并且当他们称之为他们做了几个不同的OSS时,他们会烘烤。有一位小队的一些人在早期的iPhone硬件上运行了Linux。 MAC组中有一个团队,在早期的iPhone硬件上运行的Mac操作系统的剪切版本。他们向史蒂夫和软件工程高级副总裁展示了所有这些东西。他们最终挑选了基于Mac OS的那个。这就是我们现在使用的最终变成iOS的原因。
亚当:由于iPod售出更多单位,它开始吸引更多的关注,并且大卫的团队工作开始由史蒂夫乔布斯直接评估。
大卫:在iPhone发货之前,苹果公司主要被称为iPod公司,有一段时间。史蒂夫对软件感兴趣,但当然,主要是用户界面级软件,对吗?我的意思是,只要它的工作,他并不关心文件系统。这不是他的兴趣。他想知道屏幕上的应用程序看起来像什么?我在写了所有这些应用程序的小组中。我的老板会与史蒂夫每周一次会面,他会去展示我们所做的事情。而且通常他有这样的问题,我们可以在这张照片的应用程序或此笔记应用程序上工作几种不同的方式,我们该怎么办?有时史蒂夫会说,哦,这是可怕的。这很好。你应该做更多的事情。
但史蒂夫常会做点什么
......