懒惰使人进步,UNIX 和 Linux 新系统的诞生只是意外
导语:
《UNIX/Linux系统管理技术手册》是系统管理领域内的“圣经”,其封面中的每一个元素都代表了特殊的含义,比如蟒蛇、大乌贼等等,这些都和开源软件有关。
如今,《UNIX/Linux系统管理技术手册(第5版)》面世,新版本的封面里到底有多少秘密呢?一起来探索吧!
今天给大家讲的是站在船头甲板眺望的两位领航人,一位是UNIX系统的编写者——肯·汤普森,另一位是Linux内核的编写者——林纳斯·托瓦兹。
为了玩游戏,一个人编写了一套操作系统
1966年,毕业后的肯·汤普逊加入贝尔实验室,肯·汤普森(Ken Thompson)1943年出生于美国新奥尔良,17岁就读于加州大学伯克利分校主修电气工程,并取得电子工程硕士的学位。
1966年,这一年汤普森刚23岁,他得到了进入贝尔实验室工作的机会。
那个时期的计算机系统还处在批处理阶段,技术不发达导致了运算速度十分缓慢,也使得程序员工作效率低下。当时他们只能在运算速度缓慢笨重的大型机器上工作,操作也十分繁琐:需要先将程序卡片装入设备,然后等一个多小时才能获取运算结果。
为了改变这种局面,贝尔实验室联合麻省理工学院以及通用电气公司想建立一套可供多人使用的多任务、多层次的操作系统,他们将其命名为——Multics。
汤普森也加入到了研发Multics系统的项目组中,在开发Multics期间,汤普森忙里偷闲地制作了一款基于Multics环境下运行的游戏——「star travel」,同时还创造出了名为Bon的编程语言。
只可惜,由于Multics系统在开发周期过长,整个目标过于庞大,糅合了太多的特性,当时Multics虽然发布了一些产品,但是性能都很低,贝尔实验室最终撤出了投入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系统影响,最终创建了一个全新的操作系统。
只想下文件更方便,没想到却编出了Linux内核
1969年12月28日,林纳斯·托瓦兹出生于芬兰赫尔辛基市,年少时就喜爱电脑的他,在计算机方面以及颇具水平并且展露出了不小的天赋。1991年就读于赫尔辛基大学期间,他开始对UNIX产生了浓厚的兴趣,但此时他完全没想过自己会构建出一个新操作系统的内核。
在校期间,由于托瓦兹经常要用他的终端仿真器(Terminal Emulator)去访问大学主机上的新闻组和邮件,他对MINIX只允许在教育上使用很不满(在当时MINIX不允许被用作任何商业使用),为了方便读写和下载文件,他开始写属于自己的操作系统,并尝试着在Minix(UNIX的变种)上编写磁盘驱动程序和文件系统,而这些都成为Linux第一个内核的雏形。当时的他,年仅21岁。
受到自由软件之父理查德·斯托曼(Richard Stallman)的理念影响,托瓦兹在1991年10月5日就以Linux的名字把这款类Unix的操作系统加入到了自由软件基金(FSF)的GNU计划中,并通过了GPL的通用性授权。
通过这个授权就意味着,这套软件允许用户销售、拷贝并且改动程序,但用户必须将同样的自由传递下去,而且必须免费公开修改后的代码。
此举为托瓦兹和Linux带来了巨大的成功和极高的声誉。几年之间,成千上万热情的开发者们聚集在Linux身边,大家不计得失地为Linux的迭代更新持续做出努力,这份精神不仅让Linux系统更加多元完善,也使开源运动的自由主义精神得以传扬下去,基于Linux开源内核的各种开源应用百花齐放,进而使得IT行业中各种大中小公司得以成立发展壮大。
这也说明了,Linux并不是被托瓦兹一个人刻意创造出来的,它完全是日积月累的结果,是经验、创意和一小段一小段代码的集合体。
在2019年举行的欧洲开源峰会上,托瓦兹表示他不再认为自己是一名程序员了。
这个说法让很多开发者倍感意外,而他却解释说,自己不再了解编码,到目前为止,他写的大部分代码都在电子邮件中。相比过去,现在的他是一个代码管理者和维护者,他每天的主要工作迅速响应其他人发送的补丁,并及时给出提供反馈。
这听起来似乎有些无聊,毕竟大家都知道托瓦兹是个非常有意思的人,早年间他还出版过一本名为Just For Fun的自传来讲述自己对于生活和工作的态度:「生存,社会交往和寻找乐趣。因为我们所做的一切事情,最终似乎都是为了我们自己的乐趣。」
托瓦兹也承认了目前这份工作的无聊之处,他表示:「也许有些不好玩的是,我们必须制定很多规则。过去比较随心所欲,现在人们的态度更加认真。没错,我可能大部分时间都在阅读电子邮件,但部分原因是,不这样做的话我会更加无聊。」
如此看来,托瓦兹在创建Linux操作系统乃至之后的持续改进是为了他自己的乐趣。事实上,Linux不仅给他带来了乐趣,而且使他名利双收。托瓦兹取得了许多成功和荣誉:
2004年,他被《时代》杂志选为世界上最具影响力的人物之一。2012年,他和山中伸弥获得了千禧技术奖,相当于技术领域的诺贝尔奖。
Linux和UNIX的共荣与未来
随着 Internet 的繁荣发展,每个人都要争先恐后地确定什么是真实的,什么是靠风险投资支撑的海市蜃楼。当烟消云散的时候,有一点愈发明显,那就是许多组织采用了成功的技术策略,把 UNIX 或 Linux 与 Windows 结合使用,而不是非此即彼。
若干评估显示,Linux 服务器的总拥有成本大大低于Windows 服务器,随着 2008 年经济崩溃的影响,TCO 变得比以往任何时候都重要。世界再次转向开源版本的 UNIX 和 Linux。
Linux 和基于 PC 的 UNIX 变种(例如,FreeBSD)继续扩大着自己的市场份额,Linux 是唯一在服务器市场份额不断增长的操作系统。别忘了,Apple 目前的全功能操作系统 macOS 也是UNIX 的变种。
UNIX 和 Linux 最近的大部分增长发生在虚拟化和云计算的背景下。
通过发出 API 调用来创建虚拟基础设施(以及整个虚拟数据中心)的能力从根本上再次改变了故事的发展路线。手动管理物理服务器的日子已经一去不复返了。扩展基础设施不再意味着刷信用卡,然后设备出现在装货码头。
感谢Google GCP、Amazon AWS、Microsoft Azure 等服务,超大规模云时代已经到来。标准化、工具、自动化不再仅仅是新奇事物,而是每个计算环境的内在属性。
如今,对服务器群的有效管理需要广泛的知识和技能。系统管理员必须是训练有素的专业人员。他们必须知道如何构建和扩展基础设施、如何在 DevOps 环境中与对等方(peers)协作、如何编写简单的自动化和监控脚本、如何在上千台服务器同时宕机时保持冷静。
我们接下来要去往何处?在过去数十年间为UNIX 提供良好服务的精益模块化范式也是即将到来的物联网的基础之一。
不管设备内部有什么,大多数都会向运行在云端的UNIX 或 Linux 报告。在早期的市场份额争夺中,许多设备已经部署并没有过多考虑过安全性或是其生态系统未来将如何运行。
现代商业建筑布满了连网设备和传感器,用于照明、HVAC、物理安全,以及视频录制等。这些设备经常会在未经 IT 或信息安全部门协调的情况下出现在网络中,然后就被遗忘了,没有任何进行持续管理、修补、监控的计划。
网络系统的规模并不重要。开发者需要倡导的是物联网设备的安全性、性能和可用性,无论其大小、位置或功能如何。
开发者将世界上的计算基础设施结合在一起,解决了效率、可扩展性、自动化等棘手问题,为用户和管理人员提供技术专家指导。
Linux和UNIX的不同之处
从三个特性来比较:
开源性:Linux是开发源代码并且完全免费的自由软件,而UNIX是对源代码实行知识产权保护的传统商业软件。
跨平台性:Linux操作系统具有良好的跨平台性能,可运行在多种硬件平台上;UNIX操作系统跨平台性能较弱,大多需要与硬件配套使用。
硬件环境:在对硬件的要求上,linux比UNIX要低,没有UNIX那么苛刻.在安装上Linux比UNIX容易掌握。
从上面我们可以发现,Linux系统的开源性、跨平台性、硬件环境全面优于UNIX,这也是相较UNIX操作系统,Linux操作系统更受广大计算机爱好者喜爱的原因。
当然,仔细想来也是必然,UNIX作为开创性的产物,它开辟了一个崭新的时代,脱胎于它的Linux,在前赴后继的补充完善下,发展成如今的盛况,在未来研究与创建未来的操作系统依旧进行着。操作系统朝提供更省电、网络化、易用、华丽的用户界面的方向来改进。
本期的封面故事就到这里啦,UNIX发展至今已经49年了,本书的封面以漫画的形式记录了计算机技术领域的变化,下期我们继续探索吧。
UNIX/Linux 系统管理技术手册(第5版)
作者: [美]埃薇•内梅特(Evi Nemeth) ,加思•斯奈德(Garth Snyder) ,特伦特•R.海恩(Trent R.Hein) ,本•惠利( Ben Whaley),丹•麦金(Dan Mackin)等译者: 门佳
内容简介:
本书延续了《UNIX系统管理技术手册》前几版的讲解风格,以当前主流的Linux发行版本为例,把Linux系统管理技术分为4个部分分别进行介绍。
第一部分(基础管理)对UNIX和Linux系统进行了简介,涵盖了运行单机系统所需的大部分知识和技术。第二部分(连网)讲解了UNIX系统上使用的协议和服务器的相关技术。第三部分(存储)讲解了如何解决数据存储和管理的问题。第四部分(运维)介绍了系统管理员在工作中经常碰到的问题。
本书适用范围广泛,无论是Linux的初学者还是具有丰富经验的Linux专业技术人员都能从本书中获益。
参考来源: