“C语言之父”40年前搞的Plan 9操作系统下放给开发者社区

2021年3月31日09:51:31 发表评论 343 ℃

Plan 9操作系统?没听说过….

但事实是,连Linux、Windows都得叫它一声“老大哥”!

没错,这套40年前由“C语言之父”开发的操作系统,如今仍然在深刻影响着LinuxWindows

最新消息的消息是,拥有Plan 9版权的美国贝尔实验室,刚刚宣布下放版权给开发者社区。

就是说,Plan 9这个在幕后默默影响行业40年的分布式操作系统,要正式“复活”了。

Plan 9系统是干什么的?

大名鼎鼎的贝尔实验室,是C语言,以及Linux系统的前身Unix诞生地。

当然,这里也诞生了晶体管、激光器、太阳能电池、发光二极管、数字交换机 、通信卫星、电子数字计算机、蜂窝移动通信设备、长途电视传送、仿真语言、有声电影、立体声录音等等重大发明。

而Unix和C语言核心开发者,大家肯定不陌生,Ken Thompson和Dennis Ritchie,都是如雷贯耳的big name,且都获得因为这两项成就获得图灵奖。

但是外界鲜有人知的是,他俩80年代在贝尔实验室还开发了另外一套操作系统Plan 9。

其实,Plan 9一开始并不是这个系统的名字,只是这个项目的代号,名字来源于电影史上因为“烂到极致”而备受追捧的科幻片《外星9号计划》。

看来,C语言之父们,也是骨灰级科幻影迷~

之后,贝尔实验室因为种种原因停止了对这个项目的投资,早期研发工作完成后,这个项目就搁置了起来,“Plan 9”渐渐就变成了这个系统的名字。

为什么要开发这样一套系统?当时,Ken和Dannis意识到,分布式的数据存储调用方式日后会成为主流,所以需要做一套简洁优雅实用的系统来服务这种需求。

Plan 9的开发,没有依赖任何Unix已有的基础,而是完全另起炉灶。

以当时的眼光来看,Plan 9十分先进超前,模式与传统操作系统完全不同。

Plan 9的结构是一个松散耦合的服务集合,这些服务可能被托管在不同的机器上。

设计的关键概念是每个进程的名称空间:即服务可以映射到固定的本地名称上,因此,即使当前的服务被提供相同功能的其他服务所取代,使用这些服务的程序也不用改变。

Plan 9是真正的分布式操作系统,而不仅仅是集成了几个Unix功能这么简单。你可以毫不费力地在网络上的多台主机上执行任何程序,可以使用网络上任何主机的任何资源,包括文件、进程、图形、网络、磁盘。

如果Linux也能这样工作,那么就没人需要Kubernetes了。

通俗的说,如果Unix或Linux中 “一切都是文件”,那么Plan 9则是 “一切都是网络文件系统”。

如果你有一台笔记本和一台台式机,而连接了打印机的却只有台式机,那使用笔记本能不能直接打印?

在Linux中,你必须设置CUPS,打开网络端口,下载驱动程序,设置两台机器都能和打印机通信。

而在在Plan 9中,你的笔记本电脑只需要通过网络打开桌面的打印机文件就可以打印了。

Plan 9到底有多先进?尽管他本身被贝尔实验室雪藏起来,但是,Plan 9中的很多经典设计和思路,一直沿用至今。

Linux、Windows、5G,都借鉴Plan 9

Eric S. Raymond在他的著作中分析了为何Plan 9最终下马。

他认为,Plan 9最后会失败单纯只是因为它的完善程度不够大。当时,虽然Unix看来破破烂烂又有明显缺失,但是它还是能把工作完成,这就足以保住它的地位了。

开创性的Plan 9最终没能“起飞”,但它的创新却被许多商业操作系统所采用。

比如,Linux中广泛普及的通过文件系统提供操作系统服务的概念就出自Plan 9。

此外,Plan 9极简主义窗口系统设计已经被无数系统借鉴,包括Windows:

“C语言之父”40年前搞的Plan 9操作系统下放给开发者社区

而今天在浏览器中普遍使用的UTF-8字符编码,最初就是为Plan 9发明的,并在Plan 9中首次实现。

Plan 9的分布式设计也在诺基亚-贝尔实验室的项目中得以延续,比如World Wide Streams,这套流处理程序今天部署在地理上相隔甚远的多个5G边缘云和核心云的计算节点上。

可以说,今天流行的微服务架构,早在几十年前,Plan 9就已经提出了。

从这个角度来看,Plan 9其实从来没有真正“隐退”过。

几十年来,一直有民间的爱好者自发组成社区对Plan 9进行开发,而最近,贝尔实验室则官宣完全“复活”Plan 9,直接将版权下放给开发者社区。

Plan 9复活后要做什么?

获得贝尔实验室官方认可的开发者社区,名字叫Plan 9基金会,是爱好者们自下而上组织起来的,2020年9月刚刚成立。

基金会的主页上,只写明了将来会致力于Plan 9的开发和应用,具体的工作计划还没有出台。

而贝尔实验室对于Plan 9能日后能发挥多大作用似乎也没有把握。

他们在官方声明中说:

贝尔实验室十分支持开源社区,而Plan 9可能使全球软件开发社区受益。

谁知道呢,也许Plan 9会成为新兴的分布式云基础设施的一部分,支撑着即将到来的工业革命。

好吧,看来贝尔实验室打算彻底“放生”Plan 9。

只是不知道,假如日后Plan 9真的能成气候,变成有巨大影响力的操作系统,贝尔实验室会不会后悔今天的决定呢?

Plan 9的开发者之一,同时也是C语言最主要的发明者Dennis Ritchie,是一个十分传奇的计算机科学家。

有多传奇?在一众计算机大佬中,他是独一份没有博士学位的。

并且,他是出于一个“十分任性”的原因,自己放弃了博士学位。

关于Dennis Ritchie

丹尼斯·里奇(1941年9月9日-2011年10月12日),C语言之父,UNIX之父。曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任一职。

1978年与布莱恩·科尔尼干(Brian W. Kernighan)一起出版了名著《C程序设计语言(The C Programming Language)》。此书已翻译成多种语言,被誉为c语言的圣经。2011年10月12日(北京时间为10月13日),丹尼斯·里奇去世,享年70岁。

从二十世纪七十年代起,他的工作得到了很多计算机组织的公认和表彰,如:美国计算机协会(ACM)授予的系统及语言杰出论文奖(1974);电气和电子工程师协会(IEEE)的 Emmanuel Piore 奖(1982);贝尔实验室特别人员奖(1983);美国计算机协会(ACM)的图灵奖(1983); NEC公司的基金奖(1989);电气和电子工程师协会(IEEE)的优秀奖章;汉明勋章(1990);计算机先驱奖 (1994);计算机历史博物馆研究员 (1997) ;哈罗德·潘德奖(2003);日本奖 (2011);

丹尼斯·里奇,全名丹尼斯·麦卡利斯泰尔·里奇。美国计算机科学家,对C语言和其他编程语言、Multics和Unix等操作系统的发展做出了巨大贡献。

里奇在哈佛大学学习物理学和应用数学毕业,1967年他进入贝尔实验室,是朗讯技术公司系统软件研究部门的领导人。

1983年他与肯·汤普森一起获得了图灵奖。理由是他们“研究发展了通用的操作系统理论,尤其是实现了UNIX操作系统”。

1999年两人为发展C语言和Unix操作系统一起获得了美国国家技术奖章。在里奇的成长历程中,有两个人对他的影响最大,一个是他父亲,而另一个是他的挚友,同为UNIX发明人的肯·汤普森。尤其是后者。 有人问过丹尼斯,他的偶像是谁,不论在计算机领域还是其他领域?他说:我不是在英雄熏陶下成长起来的。

很显然,对我职业生涯影响最大的人物是肯·汤普森。UNIX大部分是他的工作,同样也是C语言的前辈,同样Plan 9系统的大部分工作也是他做的。并且在这期间Ken做了第一个计算机象棋大师。

丹尼斯·里奇获得学士学位并且获得哈佛大学更高的学位,在那里以肄业生资格学习物理,以研究生资格学习应用数学。

这时候,一个偶然的机会改变了他一生的选择。里奇这样描述他的转变,当他听取一些非课程类的计算机讲座后(大约1960年),开始对计算机着迷,并选择了一学期正规(介绍性的)课程。

第一部分是模拟计算机,后面是关于打孔卡片设备的,然后是关于真正的数字式计算机的,并为Univac I号机准备了一个程序。当时他是一个主修物理学的学生,但是更加着迷于计算机处理的理论和实际问题。

因此,他的毕业论文大部分是理论方面的(递归函数的层次),但是也开始投入更大精力到实践方面。作为助教为同一个介绍性课程的后续版本工作了三年——不过那时计算机已经成了IBM7049。 1968年获得数学博士,而论文正是上面的《递归函数的的层次》。

1967年加入贝尔实验室,他的父亲阿利斯泰尔·里奇(Alistair E. Ritchie)在那里有长时间的工作经历,他的父亲对晶体管电路类的东西很有研究,正是由于父亲的影响,也使得他走上了科学研究之路。不久后,加入了Multics项目,那时由贝尔实验室、麻省理工学院和通用电器三家的合作项目。

里奇负责多道处理机的BCPL语言和GE650的编译器,它们都是属于GECOS系统的。同样的,他也写了ALTRAN语言的代数编译器,那是用于符号计算机的一种语言和系统。

精选全网爆款产品,爆品销量榜单,全场低至0元起,还有更多云产品免费试用,带你0门槛上云

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: