大家好,小编来为大家解答以上问题。美元代码840澳元代码(美元代码502)这个很多人还不知道,现在让我们一起来看看吧!
一行代码卖出570美元,天价代码的内幕(1)
什么样的代码能这么值钱?
答案是:WWW之父蒂姆·伯纳斯·李编写的“网络创世纪”代码。
这些代码一共有9555行, 以NFT的形式被拍卖,起拍价是1000美元, 最后以540多万美元成交,平均每行570多美元。
抛开NFT不谈(其实我也不太懂),这9555行的代码确实价值千金。
因为它们实现了最早的HTML、HTTP和URL ,为人人都可以享受的互联网铺平了道路。
在WWW(万维网)之前,互联网主要局限于大学和研究机构, 使用起来不直观,不方便。
WWW出现以后,尤其是Mosaic、网景、 IE等浏览器,一下子降低了网络使用的门槛: 只需要点击超链接就行 !
整个世界一下子就不一样了!
但是有意思的是,这么伟大的发明,居然没有出现在互联网的发源地:美国。
美国发明了阿帕网,发明了TCP/IP, 发明了Unix操作系统、局域网、无线网、发明了telnet、ftp 、 smtp等各种各样的新奇玩意儿,但就是没想到World Wide Web。
这是为什么呢?
我觉得还是中国人的那句古话说得好:天时、地利、人和。
把万物互联起来的萌芽很早就出现在蒂姆·伯纳斯·李的脑袋中,然后在欧洲原子能研究中心碰到了一个合适的机会,生根发芽了。
(蒂姆·伯纳斯·李在伦敦奥运会开幕式上做展示,用的就是他当年写代码的NeXTcube计算机)
01
幸运的时代
蒂姆·伯纳斯·李出生于一个幸运的年代,小时候就可以轻易地得到一些基础的电子元器件。
上小学的时候,他会买电磁铁做继电器做开关, 开始理解二进制和存储原理, 如果你看过《编码》这本书,就会深刻地理解我在说什么。
当简单的电磁开关不能满足他的时候,廉价的晶体管出现了, 蒂姆·伯纳斯·李可以去替换继电器,组建更加复杂的电路。
当逻辑电路越来越复杂,他hold不住的时候,微型芯片又适时出现了。
总之, 他这一代人循序渐进地经历了简易开关、晶体管和微型芯片的时代,而且熟知每种元件的工作原理,实在是太幸运了。
不像现在的我们,面对的是一个外表极其漂亮、内部极其复杂的个人电脑, 很难搞懂内部的工作原理。
让蒂姆·伯纳斯·李以后与众不同的是,他开始思考计算机的本质:擅长一步步地处理, 不擅长建立巧妙的联系。但是人类大脑却可以轻松地实现这一点。
他小时候看过一本叫做《包罗万象》(Enquire Within Upon Everything)的书,这本生活大百科给他留下了深刻的印象,里边充满了各种信息,每个条目都有详细的索引,似乎就像现在的互联网。
从《包罗万象》到人类大脑建立随意联系和进行协作的能力,这些想法就像一颗种子,在他的脑海中生根发芽。
02
幸运的工作
蒂姆·伯纳斯·李毕业后在欧洲核子研究中心(CERN)找了一份工作, 主要负责记录一万多名研究人员、他们的研究项目和计算机系统之间的关系,三种之间的关系经常出现临时的变化。
蒂姆很兴奋,因为这和他一直思考的问题不谋而合, 他写了一个程序,专门来实现这种记录。
CERN的人很喜欢用箭头来画出关系图,所以蒂姆的程序自然也采用了这种模式,在工作人员和项目之间建立了表示关联的链接, 蒂姆把这个软件叫做Enquire ,向他小时候看过的书致敬。
在持续改进Enquire的过程中,蒂姆把CERN的人、项目、计算机之间的链接扩展到了全世界:如果世界上所有的计算机中的信息都能互联起来,那将是一张价值多么绝大的网络啊。
蒂姆无意中发现了实现这一梦想的简单方法:超文本(HyperText),超文本是一个词或者短语,里边包含这指向另外一个文档的链接。
当然只有超文本还是不够的, 蒂姆需要:
1. 一种文档格式
用于表达电脑中的信息,并且包含超链接,指向另外的文档
2. 两个软件
一个是服务器端软件, 能把电脑中的文档变成URL,发布出来, 任何人都可以访问
另外一个是桌面软件, 可以查看远端电脑的URL所表示的文档
3. 一种协议
用于在桌面软件和远端电脑之间交换。
现在我们已经知道它们分别是HTML,Web 服务器,浏览器和HTTP。
作为从小就把电脑玩得很溜的蒂姆,这几个工具的开发难不住他,到1990年底, 他独自一人完成了HTML、Web 服务器、浏览器和HTTP,万维网的雏形搭建起来。
03
走向世界
更让人敬佩的是,CERN希望把蒂姆的发明申请专利, 蒂姆明确反对,他希望万维网能快速传播和发展,这就意味着它应该是免费的。
万维网先是在欧洲原子能研究中心传播,到了1991年12月,跨越大西洋,来到美国。
真正让万维网席卷世界的,是马克·安德森开发的Mosaic浏览器, 这个浏览器安装起来非常方便,还有个特别吸引人眼球的功能:支持图像。
随后马克·安德森又开发了更流行的网景浏览器,杨致远推出Yahoo!
这引发了软件巨头微软的恐慌,比尔盖茨向全公司发邮件,要转向互联网,开发IE,和网景大战。
互联网的精彩拉开了大幕,重心又回到了美国。
04
WWW的得与失
最后我们聊两个有趣的话题,谈谈万维网的得与失。
第一个是蒂姆认为万维网应该是个协作和分享创意的地方,浏览器应该有个编辑工具,让人们可以和网页交互,并且贡献内容。
所以当看到马克·安德森的Mosaic把重点转移向对图片的支持的时候,蒂姆表示了强烈的不满。
可是Mosaic浏览器以及后续的网景、IE等浏览器都不约而同地走上了另外一条路:只提供浏览,不提供编辑功能
我们不知道如果万维网按照蒂姆的规划走下去会是什么样子,也许更有价值,但我个人觉得,现在的互联网更加符合人性:大部分是消费者,小部分是生产者。
现在的博客、微博、自媒体,wiki也算是部分完成了蒂姆的设想。
蒂姆的第二个决定则极其英明:如果我的网页想链接到另外一个网站的话,不需要经过那个网站的同意就行。
如果没有这一条规则,互联网的发展绝对步履维艰。
超文本的发明人尼尔森对这一点提出了批判,他认为互联网应该有双向连接,这样一个网站就可以知道有谁连接到了它那里,就可以做版权管理, 内容生产者将可以计量链接的使用情况,向内容消费者进行自动的小额收费。
如今的情况是:内容聚合者(例如今日头条)赚到的钱远远多于内容生产者(如头条号), 如果尼尔森的想法能实现,数字内容的生产者将会非常高兴,他们不必依赖大公司就能赚钱了。
但是双向连接和小额收费都依赖中央协调,这肯定会导致互联网难以快速传播, 所以蒂姆拒绝了这个建议。
不过蒂姆一直在努力,推动W3C小额支付工作组,重新研究小额支付的协议,希望他能够再次成功。
修完1300万行代码,我帮苹果省下2亿美元,但没拿到承诺的千万股票(2)
作者 | Terry Lambert
译者 | Sambodhi、燕珊
策划 | Tina
“Mac OS X 内核一共 1300 万行代码,SVN 显示我写了其中 7%。”
近日,在 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 万美元报酬,他的股票被其领导独吞了。
有些人说不存在 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 做了两行更改,将类型定义从 移到它应该在的位置。在 中有一行更改,而另一行的更改是在该类型实际上应当存在的文件中。
接着再次运行测试,发现首次测试中的其中一个头文件错误消失了。因此,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,负责全职测试自动化和错误归档,还尽可能地提供了一些补丁。
项目组还有两个临时承包人,一个负责工具的合规性,另一个负责手册页面。另外,他们还可以根据情况从苹果的其他部门拉来一些人做短期工作。
漫长的一年
第一个大喜进展是,所有的头文件都通过了测试,这样测试套件中的其他测试就可以开始运行。在那个时候,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 在发布之前又推迟了六个月,一次又一次地推迟。这是英特尔的问题,而非内核的问题。
Lambert 说,“我们本来可以轻松地在 Tiger 上发布,和我们自己设定的 deadline 保持一致。”但如果要他给 Linux 做相同的工作,可能要花五年的时间,而且还得有二三十人。毕竟 Linux 发行版过多,产生了大量的阵营。
Lambert 最后提到,团队为开源社区做了很多贡献,“我们从开源社区收获了许多感谢,尤其是让 bash 顺利通过测试的修复。你绝对不会知道,作为这个项目的一部分,苹果公司为开源社区做出了多大的贡献,至少对于非苹果公司的人而言,这是一个秘密项目,因此我们并没有宣传这一事实。但是我估计,当年我们为数百个开源项目贡献了大约 200 万行的代码。虽然感激之情很多,但这种感激并非归于集体,因此,苹果公司依然一直被指责‘使用开源代码,但从不回馈’。但,我们修复了至少 15 个 GCC 的 Bug。而你根本不知道。”
因此,整体来说这是一项规模不小的工程,尤其是为了获得合规性。“在 Karen 所做的一切工作之前,有关于自我认证、合同、基于 OSF/1 Mach 的现有例外获得测试例外,等等。”Lambert 感慨,这的确是一个漫长的过程。
尽管如此,Lambert 在评论区透露,自己由于一些原因最终并未获得预期中的 1000 万美元股份。
https://www.quora.com/What-goes-into-making-an-OS-to-be-Unix-compliant-certified
活动推荐
在 4 月 24-25 日,ArchSummit 全球架构师峰会即将落地上海,数字化转型是大趋势,不管是金融转型,还是汽车产业数字化转型,制造业数字化转型,一定会涉及到企业的产品形态,这里面包括市场定位和可行性的诸多因素,还有 ROI 评估模型。
除了在业务上的转型,在技术上也需要底层技术支持,例如微服务架构实践,数据库管理,前端开发,质量提升等等,共同保证项目落地。基于这些需求,ArchSummit 架构师峰会上邀请了国内较有经验的专家来分享各自的案例,帮助大家少踩坑,多复用,快速解决工作中的问题,了解更多请点击阅读原文或扫描下方二维码即可参与。
相关推荐
原创文章,作者:POS机办理中心,如若转载,请注明出处:https://www.lkalpos.com/posdl/15952.html