我们都知道,Linux在计算机领域中十分重要,在企业端Linux用的非常之多,但是这种局面是怎样造成的呢?为了探寻其中的答案,我们需要了解Linux的历史;
Linux是一款操作系统,若要了解Linux的历史,我们还需要了解操作系统的历史;
操作系统是一款软件,并且是一款系统软件,所有的软件必须得构建在硬件基础之上,若要了解操作系统的历史,我们还需要了解计算机的发展;
计算机是如何产生和发展的呢?我们还需要探究推动技术进步背后的力量;
为了探究上面的答案,我们基于时间线按照上面的流程来了解Linux的发展史:推动技术进步背后的力量->计算机的发展->操作系统的历史->Linux的历史
一、推动技术进步背后的力量
1946年2月14日,世界上第一款通用电子计算机ENIAC(埃尼阿克)由美国人发明出来。
大家是否发现1946年2月14日这个时间点十分特殊?没错,1945年第二次世界大战正式结束,二战结束后国际社会的矛盾变成了美苏两个大国之间的较量,也就是“美苏冷战”。因此当时第一款计算机研发出来的目的是为了计算导弹弹道轨迹。
大家学过政治,都知道“科学技术是第一生产力”。因此当时美苏两个大国之间除了在军事上,政治上进行对抗,还要在科学技术上进行对抗。在两国科学技术不断对抗的过程中,就诞生了世界上第一台电子计算机。
实际上这两年我们和美国之间各种冲突也是存在的,比如贸易冲突等。由于这些冲突的存在,我们明显感受到国家对新兴技术的投入比之前大了很多。因为在对抗期间,我们必须要使我们的前沿技术进行充分的发展(比如5G技术、中国天眼、神威·太湖之光计算机等),这也就导致了我们的技术变得越来越强。
推动技术进步背后的力量究其根本就是国家与国家之间的对抗。因为技术有进步,才可能产生计算机。世界上第一台计算机ENIAC就是在美苏对抗这样的时代大背景之下发明出来的。
二、计算机的发展
1.军用计算机的发展
美国为了研发出军用计算机(ENIAC),前期进行了大量的资金投入。对于国家来说,想要技术进步,不管是卫星技术还是计算机技术等,前提都需要资金投入。
我们需要知道,不管是国家还是军队,他们都不具备技术研发的能力,让美国扛枪的大兵去研究芯片显然是为难他的。具有研发能力、推动技术发展的是各种高校以及实验室,比如我们所熟知的哈佛、麻省理工、贝尔实验室等。国家将大量的资金投入到高校和实验室,培养这些人才,让他们推动技术进步、孵化出新技术。
因为国家本身并没有盈利的能力,所以国家投入技术研发的资金是通过全体公民的税收得来的,这本身就是不可持续的。一般来说,技术的研发可能需要付出几年甚至几十年的代价,这么长的研发周期对于国家来说风险很大,如果未来赚不回钱会导致资金投入打水漂。
如果只有资金投入却没有资金回收,那这样的技术资金投入就叫做不可持续的投入。这也就是为什么绝大部分私人企业很少愿意去做技术研发,而是去做那些很快就能得到回报的短平快工作。
我们大家需要知道,对于有些技术,国家是暂时不需要考虑投资风险,就是用于政治或军事上的技术。国家的资金优先投入在能够发展军事或政治上的技术,即便这个技术最终没有商业化赚回钱,它至少也有保护国家的能力。
这也就是为什么美国早期研发出来计算机,就是为了投入到军事中去。而不是像现在我们用计算机去玩英雄联盟,看电影,聊天等娱乐项目。
2.民用计算机的发展
即便是用于军事用途的技术,国家也想将此技术进行商业化,将该技术卖给广大的百姓来赚回钱。这样国家就间接地获取了除了税收之外的新的盈利方式。
在美国,有两种场所来支持美国经济的运转,它们就是我们所熟知的硅谷和华尔街。硅谷是用于提供人才和办公环境的地方,华尔街是用于提供资金的地方,正是有了这两个地方,孵化了各种新型公司(苹果、微软、IBM、Intel、谷歌、Facebook、推特等各种公司),从而推动了民用计算机的发展。
三、操作系统的历史
1.硬件发展
用于计算导弹弹道轨迹的计算机被发明出来之后,国家为了资金回收,将计算机的技术进行了商业化。计算机商业化有两个经典的发展方向,分别是微型化、巨型化。
- 巨型化方向:IBM公司当时主要做的是集成芯片,组成大型服务器,主要面向企业。尽管当时的集成度已经很高了,但是它的制造成本也依旧非常高。所以IBM的管理层认为,短期内能够使用计算机的不可能是个人,而是大型企业。
- 微型化方向:苹果和Intel却认为个人是可以拥有电脑的,最早的当然还是苹果。他们将计算机朝着微型化、高效化研发,个人电脑也就慢慢诞生了,第一款像样的个人电脑是由苹果的乔布斯参与研发的——麦金塔(MacBook的前身)。
2.操作系统发展
早期的计算机研发出来之后,由于是一种硬件,直接操作成本特别高,只有科学家才能使用。
随着个人电脑的发展,为了让实验室的研发人员和学生能够快速上手,软件技术也在进步。此时就出现了Unix操作系统(Unix之父——肯·汤普森用汇编语言编写的,后来C语言之父——丹尼斯里奇用C语言改进了Unix操作系统)。
当Unix操作系统面世之后,因为使用它需要收费,所以有些公司就想研发出自己的操作系统。其中最典型的两家公司在Unix的基础上进一步研发商业化的操作系统,一个是苹果(MacOS),另一个是微软(Windows)。
不过此时所研发的操作系统都是黑屏操作,也就是我们所说的指令操作。
3.硬件与操作系统二者结合阶段
在上世纪五六十年代,个人电脑硬件集成度越来越高,黑屏操作系统的优化进步越来越好。到了上世纪六七十年代时,若干家公司就开始大放异彩,将二者结合起来。
最早将硬件和操作系统结合起来的是苹果公司。
苹果的第一台电脑——麦金塔(MacBook的前身)是怎么诞生出来并卖得很好呢?
当时大家的操作系统都是黑屏操作,而一家专门研发打印机的公司——施乐公司的实验室里摆放了一款带有图形化界面的操作系统。但是这款操作系统仅仅是施乐公司用来装门面的(就相当于现在很多公司号称是人工智能的公司或者自动驾驶的公司)。
施乐公司认为这款带有图形化界面的操作系统并不是他们的主要业务,因为这款操作系统不能帮他们赚钱,帮他们赚钱的是打印机,他们只是用这款操作系统来标榜自己的技术能力的。
当时作为苹果产品经理的乔布斯听说了这款产品,为了进一步了解,和施乐公司做了一定程度上的利益交换,参观了这款带有图形化界面的操作系统。
乔布斯参观完这款操作系统之后,认为这款带有图形化界面的操作系统是可以改变世界的,因此他不显山不露水地回到公司,立马组建了研发团队,开始研发带有图形化界面的操作系统MacOS。再配合苹果集成度高的硬件,二者结合诞生了苹果早期的第一台个人电脑麦金塔(MacBook的前身)。
之后便是微软公司和英特尔公司将硬件和操作系统结合起来。
当乔布斯推出了第一款个人电脑到市场之后,又有一个人也看到了操作系统的潜力,更看到了图形化界面操作系统的潜力,他就是世界首富——微软的比尔·盖茨。所以比尔·盖茨在这一点上和乔布斯可以说是英雄所见略同,“带有图形化界面的操作系统将来必定影响世界”。比尔盖茨也立马组建了自己的操作系统核心团队,开始研发操作系统,也就有了Windows的诞生。
但是苹果公司当时已经在计算机行业走了很多年,走得越早也就意味着越强,苹果的硬件和软件都发展的很强。所以当比尔·盖茨研发出操作系统后,他发现他并不具备做硬件的能力。
因为不具备做硬件的能力,所以比尔·盖茨早期和制作硬件的IBM合作,但是后来因为IBM这个合伙人不给力(观点不同,IBM认为个人用不起计算机,只有大型企业才能用得起电脑),因为理念不同,他们就散伙了。散伙之后,又有一家制造芯片的公司和微软进行合作,这家公司就是Intel。所以微软定位自己是做纯软件的公司,Intel定位自己是做纯硬件的公司。
因为微软和Intel合作,分工实现软硬件,成本比较低;而苹果既做软件,又做硬件,成本比较高。最终苹果和微软的操作系统同时存在,苹果电脑相对是比较贵的,买的人少;微软电脑相对便宜,被世界广大人民所接受。
这也就是为什么我们大家会发现一种特别奇怪的现象:苹果的一款操作系统搭载在一款自己的苹果电脑上;而微软的Windows操作系统和Intel的芯片搭载在各种各样的电脑品牌(联想、华为、华硕、戴尔等)。
硬件和操作系统软硬结合 | ||
苹果 | 硬件(小型化、高效化) | 软硬结合,出现了第一台个人电脑麦塔金(MacBook的前身)。既做软件,也做操作系统,成本高,价格昂贵。 |
MacOS操作系统(图形化界面) | ||
Intel | 硬件(小型化、高效化) | 由于起步比苹果晚,因此两公司一起合作,软硬结合。微软做软件,Intel做硬件,成本低,价格便宜。 |
微软 | Windows操作系统(图形化界面) |
四、Linux的历史
苹果的MacOS、微软的Windows还有Unix操作系统需要付费才能使用,但有人并不想花钱,因此也就诞生了免费且开源的Linux操作系统。
上个世纪90年代,一名芬兰的大学生雷纳斯·托瓦兹在实验室里使用了付费的操作系统Unix。使用后不想再继续花钱,所以他在想能否山寨一个Unix操作系统呢?所以他写了10000多行的代码,模拟了Unix的核心功能,也就是第一版本的Linux。
雷纳斯·托瓦兹写出了Linux之后,他做了一件非常重要的是——开源(就是将Linux操作系统的源代码公开,免费使用)。全世界不喜欢苹果、微软这些商业化公司的工程师、黑客就参与进来使用并改进Linux,促进了Linux的进步。
因为苹果、微软的操作系统都是要钱的,并且苹果和微软都是花了大量的成本去研发操作系统,所以当第一款不要钱的Linux操作系统面世之后,乔布斯和比尔·盖茨都特别讨厌雷纳斯·托瓦兹,甚至在公开场合诋毁雷纳斯·托瓦兹。
由于万事万物均可商业化,所以又有其他的个人、组织、公司将Linux当成生意来做。他们虽然没有能力做操作系统,但是有能力做基于Linux操作系统内核之上的软件服务——Linux的商业化版本,比如说Ubuntu、redhat、kali等,通过提供Linux之上的软件服务来赚钱。