周末的时间主要是看了两部片子,然后停下来进行了一些思考:
操作系统革命
https://www.bilibili.com/video/av9512574/
书呆子的胜利1
https://www.bilibili.com/video/av6060235/
书呆子的胜利2
https://www.bilibili.com/video/av6055508/
第一个片子《操作系统革命》很早之前就看过的,其中 书呆子的胜利 是在我昨天看 操作系统革命 时弹幕上看到的,所以当时就压栈了。
这两部片子,正好给出了一幅完整的操作系统发展的图景。当理查德斯托曼的GNU声称自己不是UNIX,与UNIX专制彻底决裂之前,比尔盖茨就已经与家酿计算机俱乐部的大部分成员围绕软件版权问题发生了争吵。
不难理出两条线索:
实验室,学院派,商业公司的UNIX线索。
极客,爱好者的个人计算机线索。
直到大概20世纪90年代,这两条线索未曾发生交合。
左边是UNIX的线索,强调高吞吐,高性能,右边是个人计算机操作系统线索,强调人机交互。
大致上《操作系统革命》如果只看开头,你会觉得它讲的就是左边的一些故事,但是大反派却是微软。
纪录片录制于2000年左右,互联网泡沫破灭的前夜,GNU和微软大战正酣【与此同时,微软还在另一条战线上和Sun大战,于是便有了Sun施展阴谋阳谋的机会,这是后话了】。Apache Web服务器助力GNU/Linux发展如日中天,GNU当然是高歌猛进,挡我者死的浓浓火药味了,而且还要怼的师出有名。嗯,以信仰的名义!
理查德斯托曼看不惯实验室和企业的做派,以及各家对UNIX标准和专利的纷争,想起了小时候妈妈告诉他如果你有一颗糖不能自己吃,要分给其他小朋友一起吃,就这样出离愤怒地创立了具有宗教气息的GNU。然后很多人跟随,比如他的鼓手就是那个写《大教堂和集市》以及《UNIX编程艺术》的会吹笛子而且有枪的埃里克雷蒙德。
也有不完全服他的,比如半路杀出来的林纳斯托瓦兹,终止了GNU内核的出场取而代之,并且这家伙有点不听话,竟然敢说斯托曼非黑即白有点过了。
GNU本来的敌人是封闭的UNIX,几乎所有的软件均在GPL Copyleft下重写了,就差个内核了,一旦内核完成,GNU将正式向传统UNIX宣战,此时构建于x86平台上的Linux内核的突然出现,改变了历史轨迹。
在1991~1994年前后,Windows+Intel=Wintel模式还未形成,但是正在发酵,无论如何,Intel的x86平台微处理器已经立足了个人桌面计算机市场,只要提到x86微处理器,运行的几乎都是微软的系统。Intel微处理器体积小,容易得到,这是构建个人计算机的必要条件,x86上除了跑微软的系统,竟然还能跑Linux,而且这个Linux内核的源码还是可以随意得到的,这肯定吸引了一向激进极端的斯托曼以及其鼓手会吹笛子并且有枪的雷蒙德等人注意,必须把Linux拉拢到GNU阵营中来。
林纳斯发现GNU的一些想法和自己的不谋而合,老实巴交的他接受规劝,正式以GPL发布Linux源码。
于是,在GNU公敌名单上,除了UNIX厂商,又多了一个,微软。战场除了那些昂贵的,高定的服务器市场之外,又多了一个,低端x86桌面市场。
微软才是《操作系统革命》记录片的大反派,而不是UNIX厂商。纪录片拍摄的2000年前后,正是GNU和微软大战如火如荼的时刻,并且此时的GNU阵营已经做好了最后一击的准备,GNU/Linux披挂打头阵,背后是华尔街的一片喧嚣,大家吵吵着战后如何瓜分微软这块美而油腻的大肥肉。
整部片子散发着对微软的嘲讽,片头就是雷蒙德在鄙视穿西装的微软经理,这段采访奠基了全片的基线:
大致就这样,一部非常愤青的关于操作系统的纪录片,不光怼UNIX,更怼微软,最后放了个大炮,说Linux是Windows的掘墓人,然而最终的事实证明打了脸。
不过有一个观点是比较客观的,Netscape的Navigator以及后来启动的Mozilla项目拯救了HTTP和HTML,不然任由微软垄断浏览器市场,掌握了Web入口之后,它肯定会把HTTP/HTML修改得面目前非,就像Cisco对很多网络协议标准所做的那样。如果没有Netscape被GNU说服和微软正面刚,可能就没有我们现在HTTP了。当然也就不会给机会让Google搞SPDY和quic这些了。
当然,也正是因为在C端浏览器市场的这场自损八百的小胜的同时,Apache服务器被大规模部署在GNU/Linux上,貌似服务端和桌面端均已经胜利在望,这让GNU社区几乎被即将到来的全面胜利冲昏头脑,夸下海口最后一击干翻微软,助力了互联网泡沫越吹越大。
华尔街被GNU的游说以及时而出现的小规模胜利所迷惑,当然要站队要来分羹,Redhat,VA等纷纷上市,人们喝着香槟唱着歌,维持着这虚假的繁荣。对于我们国内,蓝点Linux也是那个时候上市的,找对了风口,猪上了天。
泡沫在该纪录片播放不久后就破灭了,Redhat,VA那叫一个惨,至于蓝点Linux之流,直接倒闭了,首席技术高层寄篱到腾讯,继续追Linux,以期待再也没有等到的第二次机会东山再起。
话说,GNU一开始的目标不是UNIX吗?是谁给的他们勇气在桌面操作系统领域去挑战当时已经近乎垄断的微软的啊!当斯托曼在集会上大放厥词时,林纳斯在旁边看着自己都有点不好意思了。
在这场GNU和微软的纷争中,GNU渐渐偏离了拯救UNIX的目标,直指微软,这背后非常有意思的是,传统UNIX厂商的绥靖政策让Linux失去桌面市场之后,反攻了UNIX的大本营。Sun恭维Linux在桌面领域一定会大获全胜,这分明是想挑起GNU/Linux和微软之间的战争,把战火烧到自己的宿敌微软的势力范围,Sun已经不是绥靖了,这分明是在利用。
无疑,最终GNU/Linux输掉了桌面领域战争,但是在服务器端的持续部署却一直没有停止过,最终,当传统UNIX厂商准备举杯坐收渔翁之利时,他们突然发现,已经没有什么可收割的了,桌面市场依然被微软牢牢把控,服务器市场GNU/Linux已经占据大半壁江山,最大的输家是他们自己。
三足鼎立正式形成。但是UNIX颓势已显现,服务器市场正在被GNU/Linux蚕食。蚕食比鲸吞更加恐怖。
最近刚刚看完《三国》,日光之下,并无新事,这些历史,总是让人心潮澎湃。
《操作系统革命》讲的大致就是上面的故事。在这个片子播出的十年后,GNU/Linux没有做到的事情,在移动互联网大潮下,被Android on Linux完成了,此时已经没有微软什么事了,移动互联网的另一个主角iOS也是第二部纪录片《书呆子的胜利》里的主角,这个以后再说,这里就想感慨一番Android。
新千年之际,微软面对桌面领域不自量力的对手Linux时,完全是应对自如见招拆招,反正大家谁也离不开Office,软件生态让微软获得了胜利,但另一方面,另一个战场却是微软硬刚Sun,这是Java和.NET之争。当跨平台的语言遇到跨语言的平台时,谁也刚不过谁,于是观战台上的人们逐渐将这场战争遗忘,就说我自己,我2003年开始写Java,2004年学了一点C#,2006年工作时混合写了一年Java和C#以及VC++做UI和算法,我既使用Eclipse,同时又使用VS2005,偶尔还会用老年人才用的VC6,我不觉得这有什么不好。
2007年,2008年,这两年我接触了Linux内核,Linux内核方面我写了一个类似CFS的调度器并且效果还不错,但是在应用层,两年不问世事后,我发现我落伍了,到了2008年低,我既不会写Java了,也几乎完全遗忘了VC,一心一意投入到了Linux内核,至于Windows和Linux之间的纷争,至于Java和.NET之间的纷争,I don’t care!
直到Android问世,我和其他人突然发现,微软当年的两个对手,Linux和Java,如今合体了!
但是为时已晚,微软已经输掉了移动互联网的战争,它甚至都没有拿到入场券,令人唏嘘。微软发现,消费者从桌面PC转移到手机平板的时候,Android之外,另一个选择是iOS,而这个iOS背后的苹果公司是微软在另一个纪录片《书呆子的胜利》的另一个主角!
也许,拉长历史来看,桌面PC令微软辉煌的20年只是一个弹指一挥间的过渡,就像令人悲哀的VCD播放机(还有三碟连放哦…)一样。未来如何,我不做预计,或者说等我写完这篇文章再做思考,现在,让我们把时钟倒拨回去,去看看另外一条线索,个人计算机。
《书呆子的胜利》讲的是上图中右边部分的故事,这里的主角依然是微软,还有一个我们再熟悉不过的苹果。
如果说UNIX是在有特定的目标和需求的前提下设计出来的,那么Windows无疑是从蛮荒进化出来的。没有人一开始就知道Windows最后长什么样子,甚至那帮家酿计算机俱乐部的会员一开始都不知道世界上有个叫做操作系统的术语。他们的目标仅仅是让一台便宜的人人可以得到机器可以跑起来,方便这些没钱的极客做自己想做的事。
极客精神在于当下的瞬间获得快感,它是天生的。家酿计算机俱乐部的那帮guy从来都是见招拆招,他们不会说花个一年甚至几年的时间去接受一个科班培训,学习下算法以及算法背后的数学原理,然后再来折腾计算机。他们眼前只有机器,没有数学,没有原理,没有权威,他们的目标就是要把这些笨拙的机器变成他们想要的样子,至于手段,无所谓!
如果你去找那些嬉皮士乐队去探讨乐理知识,试图告诉他们如果降一个八度会更加好听,那么十有八九迎接你的是一个啤酒瓶子。
在家酿俱乐部,他们看到的是一台Altair,下面的样子:
没有键盘鼠标和显示器,只有一排按钮和几排灯,更像是一个电子算盘。按照一定的序列拨动按钮,就能完成简单的输入和指令,比如(1+7)*8之类的,然后根据灯的闪烁情况可以读到结果。整个过程非常麻烦。
有总比没有强,这得益于Intel公司研发出了8008微处理器芯片,要不是这个,个人计算机将不可能出现。
万事俱备,只欠东风,俱乐部里人们的目标非常明确,就是让这一切操作更加容易一些。
史蒂夫沃兹尼亚克首先完成了一个携带键盘的可以接到电视上的改装机器,操作起来非常方便,按钮被键盘代替,序列被程序取代,这在个人计算机领域是划时代的,然后沃兹尼亚克被史蒂夫乔布斯说服,开始卖这个改装的机器,成立了苹果公司,然后他们就有钱了。
嗯,这里有一个镜头,乔布斯说不在乎钱,观众或许会联想到他“悔创苹果”,就像马云悔创阿里一样。不要这么酸,有钱人不在乎钱是很正常的,人不总是在乎没有的东西吗?
家酿俱乐部这个时候的计算机操作系统可以说不能叫做操作系统,只是一个监视器罢了,类似CP/M这种,系统提供一些内置的服务功能,只是为了让用操作的时候更加顺手,完全可以不care内部的实现是不是优雅。这时的UNIX也刚刚起步,仅仅流传于高大上的研究机构实验室,大学,并且支持的平台非常昂贵,不是个人所能承担的,所以此时,如果能比拨动按钮开关的方式更加友好,那就是万事大吉了。
后来,初步成功的乔布斯参观了施乐,了解到了图形界面,即GUI,这个GUI可以极大提高人机交互体验,于是就将GUI引入了自己的系统。苹果电脑一时大卖。
微软在比尔盖茨写过那封信之后又出场了,显然这个时候,微软已经有了DoS,但是人机交互体验非常差,既然苹果可以学施乐,微软为什么不行,反正大家都是偷,谁也不比谁高尚。于是盖茨厚着脸皮成了首富,而乔布斯却还在为他的理想主义继续透支并且买单,当然还有他的健康,比如他只吃药以及素食。
再往后,乔布斯淡出了视线,微软如日中天,待到1995年前后,微软被GNU盯上,这就是《操作系统革命》里面的故事了。
再次看图:
左边的UNIX线索从终端机操作发展而来,发展到最后也还是用远程终端去操作它,目前的ssh协议就是干这事的,在ssh之前,一开始就有Telnet协议做这个事情。UNIX一开始设计出来时就是一个完整的现代概念意义上的操作系统。
右边的Windows/MacOS一开始就是为了人机交互的个人计算机而生,多进程调度,虚拟内存反而是后来很久才加进去的。追溯历史,可以看到施乐这个公司对这条线索的影响是多么巨大。在关注内存管理,进程管理之前,先关注GUI,这一切都是为了人机交互。
人机交互的Android竟然在左边,有点另类。
当两条线索均发展稳定之后,不管UNIX,Linux,Windows的操作系统基因如何,作为现代操作系统,它们都是通用操作系统,那么难免会有所交叉。
20世纪80年代末到90年代初,两条线索相会交融,相爱相杀。
UNIX开发出了X window系统,但即便是一个桌面GUI系统,也还是循着终端那一套思路,心思完全不在如何让GUI更加流畅上。UNIX,Linux最后都声称自己可以完美hold住桌面场景,但是事实证明,它们做的并不好,卡顿只是一方面,没有形成日常软件生态是更重要的一方面,它们没有桌面系统的杀手级应用。因为UNIX线索中的系统,其软件不需要特别丰富,极端点说,提供Web服务和数据库服务就够了。试想,如果有一天UNIX/Linux也不再卡顿了,你会用吗?不一定吧。
另一方面,Windows也有服务器版本,Windows 2000,2003 Server,但是天知道作为服务器万年不去看一眼的服务器,保留依赖人机互动的桌面GUI有什么用,而且特别不适合编写脚本自动化批量配置,而此时服务端的杀手级Apache服务已经完美适配了GNU/Linux。事实证明,Windows的服务器版本并没有达到微软的预期,正如Linux在桌面领域的遭遇一样。
如今的情况,更像是分久必合,天下归心,微软也在拥抱开源了,同时微软也在为Linux内核贡献patch,这在那些极端信仰的鼓手眼里,是多么不可能发生的事啊,不巧,它确实发生了。
旧的市场已经被瓜分殆尽,新的需求尚未明确,大家握手言和的背后,都在厉兵秣马争取下一个竞技场的入场券,下一个是什么呢?推荐一篇文章,来自道哥:
世界需要什么样的智能系统
https://yq.aliyun.com/articles/708916
当然了,他说的也不一定对,日光之下,但肉身皆是凡人。
原文链接:
https://blog.csdn.net/dog250/article/details/96692885
相关文章推荐:
Linux调度系统全景指南(上篇)
看技术砖家怎么解决网络硬核问题
TCP协议疑难杂症全景解析|硬核
网络排障全景指南手册v1.0