读UNIX传奇:历史与回忆06派生物

1. 马克·罗奇金德

1.1. 1972年编写的源代码控制系统(Source Code Control System,SCCS)​

1.2. SCCS是首个用于管理多用户大型代码库的程序

1.3. SCCS的基本思想是,程序员签出代码库中的一部分,锁定这部分代码,其他程序员在锁持有者解锁之前不能修改它,这样就避免了多位程序员同时对代码做出不一致的修改

1.4. 源代码控制的概念对于涉及多人在同一代码库上工作的软件开发来说至关重要

1.5. 随着更大的代码库分布在更大的开发者社区中,地理上更加分散,这个概念就更加重要了

2. 比尔·乔伊

2.1. Bill Joy

2.2. 后来为Unix设计了至今仍在使用的TCP/IP网络接口

2.3. 有了他的socket接口,就能用与文件和设备I/O相同的读写系统调用来读写网络连接,因此很容易添加网络功能

2.4. VI编辑器

3. 约翰·莱昂斯

3.1. 悉尼新南威尔士大学计算机科学教授

3.2. Unix的早期拥趸

3.3. 在他的操作系统课程以及教育和研究支持中大量使用Unix

3.4. 1977年,约翰为第6版源代码逐行写了评注

  • 3.4.1. 这本书可以在Unix许可持有人之间共享,但从技术上讲,其内容是商业秘密,因为它包含了AT&T的专有源代码

4. 程序员工作台

4.1. 贝尔实验室的专利部门是科研中心之外的第一个“客户”​,但其他团体也发现Unix很有用

4.2. 远程作业是PWB的主要服务之一

  • 4.2.1. 有一套命令用于向目标系统发送操作队列、状态报告、通知、日志和错误恢复等作业要求并返回结果

5. 高校授权

5.1. 在1127中心的实验室里待了几年后,Unix开始往贝尔实验室内部和外部传播

5.2. 外部传播主要途径是高校

  • 5.2.1. 根据商业秘密协议,高校支付象征性的“媒介费”即可获得整个系统的源代码

  • 5.2.2. 这绝对不是“开放源码”​:系统只能用于教育目的,被许可人只能与其他被许可的用户讨论经验和Unix用途

5.3. 1973年,AT&T开始向高校发放Unix许可,只收取象征性的费用,不过大多数许可都针对1975年推出的第6版

  • 5.3.1. 许可包括所有源代码,但不提供任何支持

  • 5.3.2. 也卖出一些第6版商业许可,索价高达2万美元,大概等于今时今日的10万美元

5.4. 加利福尼亚大学伯克利分校是最活跃的许可获得者之一,该校的一些研究生对系统做出了重大贡献,最终演化出伯克利软件发行版(Berkeley Software Distribution,BSD)​

  • 5.4.1. BSD是由最初的科研版Unix演变而来的两个主要分支之一

6. 用户组

6.1. 由于 AT&T 根本不向 Unix 许可持有人提供任何支持(这个想法并非Unix本意)​,用户被迫联合起来互相帮助,最终推动召开定期会议,开展技术介绍、软件交流,当然还有社交活动

6.2. 1974年,首届Unix用户组会议在纽约召开,随后用户组逐渐在世界各地兴起

7. 可移植性

7.1. 第6版Unix主要用C语言编写,也使用了有限的汇编语言来辅助实现诸如设置寄存器、内存映射等访问硬件的功能

7.2. Unix的第一次移植由理查德·米勒(Richard Miller)在澳大利亚新南威尔士的伍伦贡大学完成,目标计算机是Interdata 7/32

7.3. 可移植性是很大的进步

  • 7.3.1. 将Unix移植到其他种类的计算机上虽然仍非易事,但基本可以直接实现

7.4. 工作站是科学家和工程师的个人用机器,提供强大、通常不共享的计算环境

7.5. 工作站市场之所以出现,是因为技术的改进使人们有可能将强大的计算能力装入尺寸较小的物理包装中,并以适中的价格出售

7.6. IBM个人计算机(Personal Computer,PC)面世于1981年

  • 7.6.1. PC及许多克隆机的价格通常是工作站的五分之一到十分之一

8. 剥离

8.1. 到了1980年,无论是否接受规管,AT&T的垄断地位都遭到攻击

8.2. 美国司法部于1974年开始对AT&T提起反托拉斯诉讼,理由是AT&T不仅控制全国大部分地区的电话服务,而且还控制其电话公司使用的设备,因此AT&T把持了全国通信

  • 8.2.1. 有人认为,政府禁止AT&T卖Unix的原因在于,作为一家受规管的公众垄断企业,如果AT&T销售Unix,就会用电话服务的收入来交叉补贴Unix的开发,借此与其他操作系统供应商竞争

8.3. 1982年初,AT&T与司法部达成同意判决,将自己从地区运营公司中剥离出来,该判决在1984年1月1日生效

8.4. 1984年,贝尔通信研究院从贝尔实验室的分拆出来,最初命名为Bellcore,为各个小贝尔公司提供研究服务

  • 8.4.1. 1984年也是“贝尔实验室”变成“AT&T贝尔实验室”的一年

8.5. 1996年,AT&T再次拆分,这次是主动拆分为3个部分

  • 8.5.1. 拆分过程需要用一个新词来形容—“三分方案”​(trivestiture)​

    • 8.5.1.1. 第一部分还是AT&T,侧重于长途电话和通信

    • 8.5.1.2. 第二部分变成了朗讯科技公司,它实际上是西部电气的业务延续,专注于制造电信设备

    • 8.5.1.3. 第三部分意在补救1991年对NCR的错误收购,当时AT&T正试图进入计算机业务

8.6. 2006年,朗讯与法国电信公司阿尔卡特(Alcatel)合并成立阿尔卡特-朗讯(Alcatel-Lucent)​,而阿尔卡特-朗讯又在2016年被诺基亚收购

  • 8.6.1. 贝尔实验室在合并和收购的浪潮中载浮载沉,大部分曾参与Unix研发和在1127中心工作的人逐渐流散了

  • 8.6.2. 在2005年的一次重组中,1127这个数字本身也不复存在

9. USL

9.1. 剥离之后,AT&T无力或至少无意销售Unix,这给了早已从科研部门分离出去的另一个部门商业机会

9.2. 机构最初叫Unix支持组(Unix Support Group,USG)​,最后变成Unix系统实验室(Unix System Laboratories)​,或称USL

9.3. 从1984年开始,USL积极营销Unix,并努力将其改造为专业的商业产品,最终形成名为System V Release 4,或称SVR4的版本

9.4. 虽然AT&T的Unix商业化努力并不总能成功,但Unix的标准化对整个社区来说非常宝贵

10. UNIX™

10.1. 在Unix早期的某个时候,贝尔实验室的法定监护人认为,Unix这个名字是高价值商标,必须加以保护

10.2. 它不能作为独立名词使用,如“Unix is an operating system”​(Unix是一种操作系统)​,必须标示商标,而且还只能以大写形容词形式存在于“the UNIX™ operating system”​(UNIX™操作系统)短语中,这就导致了“The UNIX™ operating system is an operating system”​(UNIX™操作系统是一个操作系统)这样的可笑句子

10.3. Unix一词在商品和服务上的其他用途与操作系统无关

11. 公共关系

11.1. 从20世纪70年代中期一直到80年代,Unix演示的会议室是访客们经常光顾的一站

11.2. 访客既有普通人,也有“大腕”​

12. 派生物

12.1. 1969年,Unix诞生于计算科学研究中心

12.2. 除了PWB这类支持程序员工作的内部版本,从1975年开始,外部版本也出现了,最初是基于第6版,然后是基于1979年的第7版

12.3. 第7版是最后一个发布并被广泛使用的Unix科研版本

12.4. 后来又开发了3个内部使用的版本(顺理成章地被叫作第8版、第9版和第10版)​,但当第10版在1989年末完成时,很明显Unix开发的重心已经转移到了其他地方

12.5. 从第7版开始有两条发展线

  • 12.5.1. 一条来自伯克利,它以比尔·乔伊及其同事的工作为基础

  • 12.5.2. 一条来自AT&T,因为AT&T试图将Unix的专业知识和所有权做成一桩有利可图的生意

13. 伯克利软件发行版

13.1. 1978年,DEC公司推出新款计算机VAX-11/780

  • 13.1.1. VAX是一种32位机器,其内存和运算能力大大超过PDP-11,同时与PDP-11保持兼容

13.2. 伯克利版本被打包并采用BSD(伯克利软件发行版)授权发行给Unix用户

  • 13.2.1. BSD的后裔如今仍然活跃,FreeBSD、OpenBSD和NetBSD等变种都在继续发展

  • 13.2.2. 苹果公司的Darwin(macOS的核心)所使用的NextSTEP也是BSD的衍生版本

  • 13.2.3. SunOS在早期伯克利版本基础上发展而来,被用在由比尔·乔伊共同创办的Sun微系统公司的计算机上

13.3. 史蒂夫·乔布斯(Steve Jobs)在1985年创办的NeXT计算机公司创造的

  • 13.3.1. 虽然NeXT计算机公司本身未能取得商业成功,但1997年该公司被苹果公司收购,乔布斯也随之回归,并在一年内重任首席执行官

13.4. 在20世纪80年代,微软发行了名为Xenix的Unix版本

  • 13.4.1. 在20世纪80年代中后期,以安装计算机数量计,Xenix是最普遍使用的Unix变种

  • 13.4.2. 据Unix遗产站(The Unix Heritage Society)记载,圣塔克鲁兹公司(Santa Cruz Operation,SCO)后来收购了Xenix

14. Unix战争

14.1. 在20世纪80年代后期,许多Unix系统的供应商使用Unix商标名称,并提供起码是源自贝尔实验室第7版系统的软件

14.2. 版本之间,尤其是AT&T的System V和伯克利发行版之间,存在不兼容问题

14.3. 行业联盟X/Open成立于1984年,冀望于打造标准源代码环境,使程序代码无需修改即可在任何Unix系统上编译

14.4. AT&T和一些盟友成立了自己的团体Unix国际(Unix International)​,颁布标准,与开放软件基金会(Open Software Foundation)制订的标准对打,结果是出现了两个相互竞争的不同“开放”标准

14.5. POSIX(Portable Operating System Interface,可移植操作系统接口)标准和由X/Open 管理的“单一Unix规范”​(Single Unix Specification)诞生了

14.6. 1992年,USL和AT&T就侵犯Unix知识产权为由起诉伯克利,声称伯克利未经许可使用AT&T的代码

  • 14.6.1. 伯克利对AT&T的代码做了大量修改,并增加了许多有价值的内容,包括令人们能够访问互联网的TCP/IP代码

14.7. 伯克利持续删除和重写来自AT&T的代码,并在1991年发布了他们认为不包含AT&T专利材料的Unix版本

  • 14.7.1. AT&T和USL并不认可,诉讼随之而来。经过一番周折,案件在新泽西州法院审理,伯克利胜诉,部分原因是AT&T没有在其发布的代码上加上适当的版权声明

14.8. AT&T早期几乎是偶然地决定向高校提供Unix,导致了所有这些法律纠纷

  • 14.8.1. 随着Unix从免费使用的高校传播到愿意付费的公司,它在商业上变得可行,至少是可能可行

15. Minix

15.1. 1987年,安迪·塔嫩鲍姆在阿姆斯特丹自由大学创建Minix。Minix形似Unix,在系统调用层面兼容Unix,但完全重新编写,采用不同的内核组织方式

15.2. Minix源代码免费提供—其中一版书附赠十几张软盘,可以加载到IBM PC上,运行Minix

15.3. Minix依然“健在”​,用于操作系统的教学和实验

16. Linux

16.1. 1991年8月25日,林纳斯·托瓦兹(Linus Torvalds)在Usenet新闻组comp.os.minix上发布了一个项目

16.2. 托瓦兹是主要开发者,也是全球开发者社区的协调人,负责维护和增强这个系统

16.3. 托瓦兹也是Git的创造者

  • 16.3.1. Git是软件系统中使用最广泛的版本控制系统,用于跟踪代码变化

  • 16.3.2. 从SCCS到RCS、CVS和Subversion,再到今天默认的标准版本控制系统Git,有一条清晰的演化路径

16.4. Linux已成为商品化操作系统,可以在任何类型的计算机上运行

  • 16.4.1. 运行着互联网基础设施的很大一部分,包括谷歌、Facebook、亚马逊等主要业务的服务器

  • 16.4.2. 在许多物联网(Internet of Things,IoT)设备内部运行

    • 16.4.2.1. 汽车运行Linux,电视、Alexa和Kindle以及Nest温控器也运行着Linux
  • 16.4.3. 在运算力光谱的另一端,它是世界前500名超级计算机的操作系统

16.5. 在笔记本式计算机和台式计算机等市场上,它无足轻重:在那里,大多数人使用Windows,其次是macOS

17. Plan 9

17.1. 6年后,第8版于1985年问世,第9版于1986年问世,第10版是最后的科研版本,于1989年完成,但没有对外发行

17.2. Plan 9操作系统力图进一步完善Unix

  • 17.2.1. 在Unix中,设备是文件系统中的文件

17.3. 在Plan 9中,进程、网络连接、窗口系统屏幕和shell环境等更多数据源和数据转存器也是文件

17.4. Plan 9从一开始就以可移植为目标,其单一源码可以编译到任何支持的架构上

17.5. Plan 9的另一突出特点是对分布式系统的支持

17.6. 不同架构的不相关系统上的进程和文件可以像在同一系统中那样一起工作

17.7. Plan 9于1992年提供给高校使用,几年后公开发布,用于商业用途,但如今只有一小部分爱好者使用

17.8. Plan 9确实为世界贡献了一件无比重要的东西:Unicode的UTF-8编码

18. Unicode

18.1. Unicode致力于为人类曾用来书写的所有字符提供单一标准编码,包括大多数西方语言中的字母文字,也包括中文这样的表意文字,楔形文字这样的古代文字,各种特殊字符和符号,以及新近发明的表情符号等

18.2. Unicode最初是16位字符集,足以容纳所有字母文字和大约3万个中文和日文字符

18.3. UTF-8是一种巧妙的Unicode可变长度编码,在空间和处理时间上都很有效率

18.4. UTF-8可以边读取边解码,因为没有任何合法字符是其他字符的前缀,也没有任何字符是其他字符或字符序列的一部分

18.5. 今天互联网上几乎所有的文本都用UTF-8编码,遍处皆是,人人使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值