1700437699
1700437700
如同当年肯和丹尼斯没能预测Unix的成功一样,托瓦兹也没料到,他做着玩儿的系统竟然有着非凡未来。系统代码从最初的几千行发展到如今超过两千万行。托瓦兹(图8-4)是主要开发者,也是全球开发者社区的协调人,负责维护和增强这个系统。托瓦兹也是Git的创造者。Git是软件系统中使用最广泛的版本控制系统,用于跟踪代码变化,当然也包括Linux的代码变化。
1700437701
1700437702
1700437703
1700437704
1700437705
图8-4 林纳斯·托瓦兹在2014年(维基百科)
1700437706
1700437707
Linux已成为商品化操作系统,可以在任何类型的计算机上运行。它被安装到数十亿台设备上(例如所有的Android手机)。它运行着互联网基础设施的很大一部分,包括谷歌、Facebook、亚马逊等主要业务的服务器。它还在许多物联网(Internet of Things,IoT)设备内部运行——我的汽车运行Linux,我的电视、你的Alexa和Kindle以及你的Nest温控器也运行着Linux。在运算力光谱的另一端,它是世界前500名超级计算机的操作系统。然而,在笔记本式计算机和台式计算机等市场上,它无足轻重:在那里,大多数人使用Windows,其次是macOS。
1700437708
1700437709
事到如今,像C标准库或操作系统的系统调用这样的编程接口是否该受版权保护,已成了甲骨文(Oracle)公司与谷歌公司没完没了打官司的焦点问题。甲骨文公司在2010年收购Sun微系统公司,从而成为Java语言的所有者。当年晚些时候,它起诉谷歌公司,声称谷歌公司未经许可在Android手机中使用了甲骨文公司享有版权的Java接口和一些专利所有权。谷歌公司赢了这场官司,法官裁定甲骨文公司专利权利要求无效,Java API不能获得版权保护。
1700437710
1700437711
甲骨文公司提出上诉,官司再起。谷歌公司再赢,但甲骨文公司再上诉,这次上诉法院判决甲骨文公司胜诉。谷歌公司要求在最高法院陈述案情,希望明确API(而不是实现!)不受版权保护,从而不至于阻止其他机构利用接口规格创建相似系统。
1700437712
1700437713
披露:我签署了几份支持谷歌公司的法庭之友陈述[1],因为我相信API不该有版权。如果API有版权,我们就不会有与Unix相似的各种操作系统,包括Linux在内,因为它们全是基于Unix系统调用接口的独立实现。我们可能也不会有Cygwin这样的软件包,它是Unix实用程序的Windows实现,为Windows用户提供了类似Unix的命令行界面。事实上,如果接口的独立实现可以被宣告所有权的公司所限制,我们就不太可能有很多独立实现。
1700437714
1700437715
行笔至此时,最高法院尚未决定是否审理此案。我们将拭目以待,因为一旦法院做出决定,那就是终局,除非国会明确修改法律。当然,谁也不知道在其他国家会发生什么。
1700437716
1700437717
1700437718
1700437719
1700437721
UNIX传奇:历史与回忆 8.4 Plan 9
1700437722
1700437723
20世纪80年代中后期,1127中心放缓Unix研发进度。第7版已于1979年发布,这一版被广泛发行,并构成了大多数外部版本的基础。6年后,第8版于1985年问世,第9版于1986年问世,第10版是最后的科研版本,于1989年完成,但没有对外发行。
1700437724
1700437725
当时的看法是,Unix已是成熟的商业系统,不再适合承载操作系统研究任务。一小群人——肯·汤普森、罗布·派克、戴夫·普雷索托(Dave Presotto)和霍华德·特里基——抱团开发新的操作系统,他们称之为贝尔实验室的Plan 9。项目名字源自1959年的科幻电影《外太空第九号计划》 (Plan 9 from Outer Space)。 (这部电影业已获得“烂片之王”的美誉——当然是经过激烈的竞争之后——有些影迷认为它烂到极点,反而显出一种奇怪的好来。)
1700437726
1700437727
Plan 9操作系统力图进一步完善Unix。例如,在Unix中,设备是文件系统中的文件。在Plan 9中,进程、网络连接、窗口系统屏幕和shell环境等更多数据源和数据转存器也是文件。Plan 9从一开始就以可移植为目标,其单一源码可以编译到任何支持的架构上。Plan 9的另一突出特点是对分布式系统的支持。不同架构的不相关系统上的进程和文件可以像在同一系统中那样一起工作。
1700437728
1700437729
Plan 9于1992年提供给高校使用,几年后公开发布,用于商业用途,但如今只有一小部分爱好者使用。主要原因可能是Unix和持续增长的Linux势头太猛,没有令人信服的理由让大多数人换系统。可能还有一个较小的原因:它过于特立独行。Plan 9的机制在很多情况下都比Unix等价物要好,也没有尝试去提供兼容性。例如,Plan 9最初未提供C标准的I/O库stdio,而是使用了名为bio的新库。bio比stdio更整洁、更规范,但如果没有标准库,想把程序改成同时能在Unix和Plan 9上运行就得花大力气。同样,新版本的Make叫Mk,它在很多方面都很优秀,但不兼容Make,既有的makefile必须完全重写。
1700437730
1700437731
虽然有转换机制,霍华德·特里基(图8-5)也移植了一些关键的库,如stdio,但至少对于包括我在内的一些潜在用户来说,使用Plan 9太费劲了。因此,Plan 9无法得益于很多优秀的Unix软件,更难将其软件创新成果输出到主流Unix世界。
1700437732
1700437733
1700437734
1700437735
1700437736
图8-5 霍华德·特里基,约1981年(杰勒德·霍尔兹曼供图)
1700437737
1700437738
不过,Plan 9确实为世界贡献了一件无比重要的东西:Unicode的UTF-8编码。
1700437739
1700437740
Unicode致力于为人类曾用来书写的所有字符提供单一标准编码,包括大多数西方语言中的字母文字,也包括中文这样的表意文字,楔形文字这样的古代文字,各种特殊字符和符号,以及新近发明的表情符号等。目前Unicode有近14万个字符,而且这个数字还在缓慢而稳定地增长。
1700437741
1700437742
Unicode最初是16位字符集,足以容纳所有字母文字和大约3万个中文和日文字符。但是,当时大多数计算机文本采用ASCII(7位字符集),全体转为16位字符集并不可行。
1700437743
1700437744
肯·汤普森和罗布·派克为这个问题头疼,因为他们决定Plan 9将全程使用Unicode而非ASCII。1992年9月,他们提出UTF-8方案。UTF-8是一种巧妙的Unicode可变长度编码,在空间和处理时间上都很有效率。它将每个ASCII字符表示为单个字节,而其他字符只使用2个或3个字节,最多不超过4个字节。编码紧凑,而且ASCII成了天然合规的UTF-8。UTF-8可以边读取边解码,因为没有任何合法字符是其他字符的前缀,也没有任何字符是其他字符或字符序列的一部分。今天互联网上几乎所有的文本都用UTF-8编码,遍处皆是,人人使用。
1700437745
1700437746
1700437747
1700437748
[
上一页 ]
[ :1.700437699e+09 ]
[
下一页 ]