其他
UNIX 之父和 Linux 之父:创造新系统真的只是个意外 | 赠书
导语:
如今,《UNIX/Linux系统管理技术手册(第5版)》面世,新版本的封面里到底有多少秘密呢?一起来探索吧!
那个时期的计算机系统还处在批处理阶段,技术不发达导致了运算速度十分缓慢,也使得程序员工作效率低下。当时他们只能在运算速度缓慢笨重的大型机器上工作,操作也十分繁琐:需要先将程序卡片装入设备,然后等一个多小时才能获取运算结果。
为了改变这种局面,贝尔实验室联合麻省理工学院以及通用电气公司想建立一套可供多人使用的多任务、多层次的操作系统,他们将其命名为——Multics。
这对于汤普森而言无疑是个不幸的消息,公司撤出了这个项目,不仅使他所创造的编程语言毫无用武之地,更令他失望的是他再也不能玩自己编写的游戏「star travel」了。正是玩游戏这件事彻底激发了汤普森作为创造者的本性:「既然别人的系统靠不住,那为什么不能自己开发操作系统来满足自己玩游戏的愿望呢?」
于是,汤普森找到了一台废弃已久的老式 PDP-7小型机,在丹尼斯·里奇的帮助下,他用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上Multics项目的经验,促使汤普森开始在DEC PDP-7上研究如何开发操作系统。
有了这个计划以后,他开始一步步地执行朝着目标前进。1969年,汤普森提议在PDP-7上开发一个新的阶层式操作系统的计划。Multics的原有成员,加上Rudd Canady,都投入这个计划。汤普森发现要编写驱动程序来驱动文件系统,进行测试,并不容易,于是开发了一个壳层(shell)与一些驱动程序,接下来的时间里,他从内核、文件系统、编辑器再到编译程序,一点一点地编写修改,竟然在一个月内完成了一套可以在PDP-7机器之上运行的操作系统,汤普森将其命名为 UNiplexed Information and Computing System,缩写为 UNICS ,但此时的UNICS还是一个雏形。在团队合作下,Multics的许多功能都被采纳,重新实现,最终做出了一个分时多任务操作系统,成为第一版UNIX。此时诞生的第一版UNIX系统,是基于汤普森自己编写的Bon语言来开发的。但Bon语言在进行系统编程时不够强大。在进行系统编程时不够强大,所以汤普逊和里奇对其进行了改造,并于1971年共同发明了C语言。
1973年汤普逊和里奇用C语言重写了UNIX,形成第三版UNIX。在当时,为了实现最高效率,系统程序都是由汇编语言编写,所以汤普森和里奇此举是极具大胆创新和革命意义的。
在计算机史前时代,普通人都认为只有大型机才能够运行通用的操作系统,小型机根本无能为力,汤普森作为开拓者,凭一己之力用高级语言编写出UNIX系统,UNIX不仅仅是一个操作系统,更是一种生活方式。
经过几十年的发展,UNIX在技术上日臻成熟的过程中,它独特的设计哲学和美学也深深地吸引了一大批技术人员。这些优秀的开发者们在维护、开发、使用UNIX的同时,也被UNIX影响着其思考方式和看待世界的角度。在这之后,又有一个年轻人受UNIX系统影响,最终创建了一个全新的操作系统。
受到自由软件之父理查德·斯托曼(Richard Stallman)的理念影响,托瓦兹在1991年10月5日就以Linux的名字把这款类Unix的操作系统加入到了自由软件基金(FSF)的GNU计划中,并通过了GPL的通用性授权。通过这个授权就意味着,这套软件允许用户销售、拷贝并且改动程序,但用户必须将同样的自由传递下去,而且必须免费公开修改后的代码。
这听起来似乎有些无聊,毕竟大家都知道托瓦兹是个非常有意思的人,早年间他还出版过一本名为Just For Fun的自传来讲述自己对于生活和工作的态度:「生存,社会交往和寻找乐趣。因为我们所做的一切事情,最终似乎都是为了我们自己的乐趣。」托瓦兹也承认了目前这份工作的无聊之处,他表示:「也许有些不好玩的是,我们必须制定很多规则。过去比较随心所欲,现在人们的态度更加认真。没错,我可能大部分时间都在阅读电子邮件,但部分原因是,不这样做的话我会更加无聊。」
如此看来,托瓦兹在创建Linux操作系统乃至之后的持续改进是为了他自己的乐趣。事实上,Linux不仅给他带来了乐趣,而且使他名利双收。托瓦兹取得了许多成功和荣誉:
2004年,他被《时代》杂志选为世界上最具影响力的人物之一。 2012年,他和山中伸弥获得了千禧技术奖,相当于技术领域的诺贝尔奖。
通过发出 API 调用来创建虚拟基础设施(以及整个虚拟数据中心)的能力从根本上再次改变了故事的发展路线。手动管理物理服务器的日子已经一去不复返了。扩展基础设施不再意味着刷信用卡,然后设备出现在装货码头。感谢Google GCP、Amazon AWS、Microsoft Azure 等服务,超大规模云时代已经到来。标准化、工具、自动化不再仅仅是新奇事物,而是每个计算环境的内在属性。如今,对服务器群的有效管理需要广泛的知识和技能。系统管理员必须是训练有素的专业人员。他们必须知道如何构建和扩展基础设施、如何在 DevOps 环境中与对等方(peers)协作、如何编写简单的自动化和监控脚本、如何在上千台服务器同时宕机时保持冷静。我们接下来要去往何处?在过去数十年间为UNIX 提供良好服务的精益模块化范式也是即将到来的物联网的基础之一。
不管设备内部有什么,大多数都会向运行在云端的UNIX 或 Linux 报告。在早期的市场份额争夺中,许多设备已经部署并没有过多考虑过安全性或是其生态系统未来将如何运行。现代商业建筑布满了连网设备和传感器,用于照明、HVAC、物理安全,以及视频录制等。这些设备经常会在未经 IT 或信息安全部门协调的情况下出现在网络中,然后就被遗忘了,没有任何进行持续管理、修补、监控的计划。
网络系统的规模并不重要。开发者需要倡导的是物联网设备的安全性、性能和可用性,无论其大小、位置或功能如何。开发者将世界上的计算基础设施结合在一起,解决了效率、可扩展性、自动化等棘手问题,为用户和管理人员提供技术专家指导。
从上面我们可以发现,Linux系统的开源性、跨平台性、硬件环境全面优于UNIX,这也是相较UNIX操作系统,Linux操作系统更受广大计算机爱好者喜爱的原因。当然,仔细想来也是必然,UNIX作为开创性的产物,它开辟了一个崭新的时代,脱胎于它的Linux,在前赴后继的补充完善下,发展成如今的盛况,在未来研究与创建未来的操作系统依旧进行着。操作系统朝提供更省电、网络化、易用、华丽的用户界面的方向来改进。
本期的封面故事就到这里啦,UNIX发展至今已经49年了,本书的封面以漫画的形式记录了计算机技术领域的变化,下期我们继续探索吧。
本书延续了《UNIX系统管理技术手册》前几版的讲解风格,以当前主流的Linux发行版本为例,把Linux系统管理技术分为4个部分分别进行介绍。
第一部分(基础管理)对UNIX和Linux系统进行了简介,涵盖了运行单机系统所需的大部分知识和技术。第二部分(连网)讲解了UNIX系统上使用的协议和服务器的相关技术。第三部分(存储)讲解了如何解决数据存储和管理的问题。第四部分(运维)介绍了系统管理员在工作中经常碰到的问题。本书适用范围广泛,无论是Linux的初学者还是具有丰富经验的Linux专业技术人员都能从本书中获益。
https://zh.wikipedia.org/wiki/Linuxhttps://zh.wikipedia.org/wiki/UNIXhttps://zh.wikipedia.org/wiki/%E6%9E%97%E7%BA%B3%E6%96%AF%C2%B7%E6%89%98%E7%93%A6%E5%85%B9https://zh.wikipedia.org/wiki/%E8%82%AF%C2%B7%E6%B1%A4%E6%99%AE%E9%80%8A
#欢迎来留言#
你是如何学习 Linux 的?留言点赞数量最多的前三名
程序人生携手【人民邮电社】送出
《UNIX/Linux 系统管理技术手册(第5版)》一本
截至12月11日14:00点
欢迎来留言哦!
更多精彩推荐
☞酷派奖励程序员10 万股期权!因代码贡献受 Linux 之父亲自点名赞赏
☞魅族回应 “暗中给手机植入木马”;前谷歌AI伦理专家遭解雇或因论文;GoLand 2020.3发布|极客头条☞Ethereum2.0:深入了解Lego Money、Sharding、PoS和TPS的真相