【Linux】发展史

发布于:2024-11-02 ⋅ 阅读:(63) ⋅ 点赞:(0)

1946年2月14日,人类产生了第一台计算机-埃尼阿克,它是由美国人研制的,在当时的主要作用是计算导弹的弹道轨迹的,用于军事领域。中国第一台计算机诞生于1958年,由中科院计算所研制成功的中国第一台小型电子管通用计算机103机(八一型)。

在计算机中存在一个定律--摩尔定律,在过去,随着摩尔定律的不断发生,芯片的集成度越来越高,计算机开始走向小型化,高性能化。计算机的体积从一个"房间"的大小,逐渐变为一个"衣柜"的大小,与此同时,计算机也变得越来越复杂了。随着时代的不断发展,在美国当地孵化出了许多私人计算机公司,它的老板必定是想要赚钱的,具体赚谁的钱,每个老板看法不一,有些人相信摩尔定律的迭代速度,有些人不相信。所以有些人认为只有大公司,大企业用的起计算机,比如金融行业(它们对数据存储会有很高要求),那这些老板就会想着赚这些大公司、大企业的钱,那么面向企业的大型计算机(以IBM为代表)就出现了;另外一些人则会认为随着摩尔定律的不断发生,随着计算机技术的不断发展,必定将计算机从衣柜大小变为可以摆放在桌面上的小型计算机,所以就有了面向个人的个人计算机(以苹果、微软、英特尔为代表),我国国内最早的计算机厂商主要是联想。苹果当时软硬件都会做;微软早期就把自己定义为一家软件公司,它当时只做操作系统;英特尔主要做硬件。当时世界上许多做计算机的厂商就会用微软的操作系统,用英特尔的硬件,完成组装工作;苹果软硬件都做,相当于它当时做整机工作。那么计算机就被划分为:面向企业的大型计算机、面向个人的小型计算机。后来,随着时代的发展,IBM的私人业务ThinkPad卖给了联想,面向个人的计算机的商业道路中,苹果、微软变得更好了,千禧年之后,计算机就开始逐步面向个人了,摆到了我们的桌面。在我国,随着人民生活质量不断提高,我们国家对于网络基础设施建设的推动力度很大,尤其是对互联网的推广力度是非常大的,人民群众也有大量的上网需求,我国滋生出许多对计算机的购买力,一些家庭富裕的在家就开始使用计算机了,还有一些人是在网吧入网的,个人计算机蓬勃发展。在千禧年之后,我国的"计算机+互联网"就出现了,在千禧年之后的10年左右,我国的计算机发展非常迅速,那段时期称为“PC互联网时代”,典型的是以腾讯、搜狐、网易、新浪为代表的门户网站,再后来的大概在06,07,08这几年我国出现了许多互联网公司,比如腾讯-QQ,百度-搜索,淘宝等,再后来08到12年左右出现了一个新的设备-手机,手机也是一台计算机。手机的诞生就有了"手机+互联网",所以就有了移动互联网时代的到来,一直到现在。乔布斯刚开始推出智能手机iPhone4的时候,全世界都开始做智能手机了,而我们国家当时没有智能手机,只有山寨机,所有在当时那几年,许多人拿的都是山寨机,大概在11,12年的时候。后来随着苹果的生产线搬到了中国,苹果对产品的标准非常高,给苹果生产线做代工,那么一定也会给其它生产线做代工,苹果对产品的高标准必定引起整个计算机行业的发展,既然我们国家能够造出质量可靠,效率高效的手机了,所以那个时候就滋生出来像小米、魅族、HTC等第一批智能手机。

/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/

将时间线拉回最前,根据大家的理解,计算机是一个能够"输入->计算->输出"的这样的一个设备,后来随着技术的进步,输入输出的方式一直在发生变化,在早些年,像埃尼阿克这样的设备要进行输入,是要靠一些电路和开关。随着计算机由大型化变小型化,计算机一定会变得很复杂,比如早期计算机要进行计算任务,我们将一个个计算任务交给计算机,计算机在任何时候只能处理一个任务,两个科学家都要使用计算机,那么他们就需要排队,随着计算机效率的高性能化,每个任务的计算时间可能很短,那么效率问题就有计算机本身转移到每个科学家身上了,那么注定计算机要能够同时支持多个科学家将他们的任务交给计算机,让计算机同时去做计算,此时大家就不需要排队了,就变为一个个程序去排队了,所以就注定了在计算机内,除了硬件本身让计算机变得复杂,另外一个方面就是会对计算机的软件产生很高的要求,那么此时操作系统就应运而生了,当时最具有代表性的操作系统就是UNIX,第一代UNIX用的是汇编语言,由肯汤普森所编写,最初它是一款商业化的操作系统,使用要收费。随着时代的发展,丹尼斯里奇发明了C语言,后来肯汤普森和丹尼斯里奇合力用C语言+部分汇编对UNIX操作系统进行重写。与此同时苹果的操作系统(macOS),微软的操作系统(Windows)的制作都在进行中。

/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/

这时上面两部分就出现交集了,结果就是1、计算机小型化,2、计算机有操作系统。在当时,这就会导致微机和搭载了有操作系统的计算机进入高校的课堂和实验室,那么就会有学生去试玩这些计算机和操作系统,1991年,芬兰赫尔辛基大学的一名名为林纳斯托瓦兹的学生,他就在自己学校的实验室里面去使用那里面计算机,那台计算机搭载的操作系统是Unix,不久后,他仿照着UNIX编写了一款操作系统,并将其开源,命名为Linux。早期,所有操作系统刚开始诞生都是没有图形化界面的,也就是说图形化界面并不是操作系统的必备要素。[这里讲一个小故事,苹果公司CEO乔布斯参观施乐的一个做打印机实验室,乔布斯发现了一个比较前沿的用图形化界面做的小型的操作系统,于是他就觉得操作系统应该带上图形化界面,苹果公司慢慢的就开始做图形化界面,微软发现苹果公司在做图形化界面,所以他们也开始做起来了。]由于属于商业竞争关系,所以苹果公司CEO乔布斯和微软公司CEO比尔盖茨两人关系不太融洽,但他们两个都讨厌一个人,那就是林纳斯托瓦兹。因为在当时,苹果公司和微软公司他们两家在操作系统方面都是赚钱的,由于有林纳斯托瓦兹这个人,导致苹果和微软在后端市场(服务器)都是赚不到钱的。

在Linux刚出现的的时候,林纳斯托瓦兹就觉得就应该将对应的操作系统贡献给全人类,让全世界的人民都能免费、高效的操作系统(在此之前操作系统基本上都要收费)。所以他将Linux的操作系统开源了。Linux其实是在Unix的基础上微创新搞出来的,但林纳斯托瓦兹并不想承认这一点,它不想让Linux活在Unix的阴影之下,所以他就声称“Linux Is Not Unix”(Linux)。

/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/

上面的内容大家听个热闹。

Linux操作系统:

现在的Linux操作系统一般是用部分汇编+C语言所编写,大部分是C语言,极少部分用汇编。

Linux是开源的操作系统(源代码公开)。可以到这个网站获取它的源代码->https://www.kernel.org/

开源就意味着整个Linux的源代码是公开的你随便拿,但有些Linux操作系统本身是收费的(RedHat-它会提前安装了一些企业级的解决方案和软件,包括给企业提供解决方案)。

理解开源:

为什么开源?

1、愿景驱动--我就想把这个东西做出来影响全人类

2、在商业角度,处于落后的一方或晚做的一方,前期别人已经占有大部分市场,他是很难追上别人的,所以他会选择公开源代码。

讲个故事:谷歌早期是专门做搜索的一家公司,当苹果公司推出第一款手机iPhone4的时候,谷歌这家公司特别有危机感,因为人们在使用电脑时通常就是打开网页进行搜索,但手机推出后,人们一般都是打开软件进行搜索的,手机上的软件是可以预装的,也就是人们买到iPhone4的时候,手机上就有搜索软件,苹果公司肯定不会预装谷歌的浏览器,他们肯定预装苹果的浏览器,那么这就会导致谷歌的市场占有率下降,谷歌这时候感到危机,于是它就花钱买了一家公司,这家公司是将Linux操作系统向小型化设备移植的公司,也就是将Linux操作系统向手机移植。谷歌买了这家之后,直接将这家的操作系统源代码公开,于是就有了大家广为熟知的”安卓“。他这么做就是为了对抗苹果,不能让苹果这家公司独占市场。然后他就扶持一些手机制造厂商内嵌安卓操作系统,这样就可以和苹果形成"对抗",那么他本身的主要业务就是做搜索,这就化解了它的危机感。

所以,开源也是一种商业模式。

开源之后,会有很多的工程师、黑客愿意参与这个开源项目。

他们为什么愿意免费参加呢?

(1)愿景驱动--他们认为操作系统本事就是一款改变世界的软件,如果他们参与,那么他们就认为他们就是改变世界的人

(2)不缺钱

(3)反对苹果、微软的工程师,他们认为操作系统就是应该开源

开源VS闭源

1、OS谁的更好?(性能、稳定、安全)

性能差、不稳定、不安全统称为操作系统的bug。

判断一款操作系统好不好,要看它的bug少不少,前提的条件是发现bug的能力很强。

对于开源系统:1、有很多人盯着/使用,容易发现bug和预防别人产生bug  2、发现bug和造成bug的人以及解决bug的人之间没有利益冲突,这两点的结果就是:解决bug会非常及时

对于闭源系统:假设操作系统一共8000万行代码,然后参与这个项目的工程师4000名,平均每人管理维护2万行代码,不考虑移植和新到来的工程师,那么在这个世界上了解这2万行代码的人只有你自己,那么操作系统一旦发现问题,就不可能有很多人盯着,只有你自己盯着你所维护的2万行代码,出问题就需要自己发现或者到用户端,用户暴露交给你,你自己来修正。测试人员一旦测试出是你的问题,那你心里肯定不舒服,因为企业在管控着你,你bug太多就会扣除KPI,出现bug,你肯定不想承认,因为你所维护的2万行代码只有你清楚,所以企业中许多程序员会有许多"甩锅"的现象。所以闭源系统一定没有开源系统进化速度快的。

因为bug解决的够即使,所以开源系统的性能、稳定性、安全性更好。所以即使苹果、微软等历史比Linux更悠久,但Linux经过不断的发展,大部分企业会选择使用Linux。

所以,开源的OS更好。

不同种类的操作系统 -- 是由使用它的大量的用户进行区分的。比如window,它为什么被叫做桌面级操作系统呢?刚开始是因为它桌面系统做的好点,后来主要是用它的人大部分是小白,所以暴露的问题也一定是小白级别的问题,那么修正和迭代也是朝着怎么让这部分人用的更舒服的角度进行的,也有操作系统刚开始工程师用的比较多,那么暴露的问题都是工程上面的问题,那么就会吸引大量的工程师过来,他们会看看他们前辈所犯下的问题,他们是站在"巨人的肩膀上"学习的,这是正向迭代,所以这时的操作系统会有越来越的工程师去使用,所以不同种类的操作系统是由使用它的大量的用户进行区分的。

操作系统分为两种版本:

1、技术方面:内核版本,比如2.6.32  2.6.16 6.X.X

2、商业角度:ubuntu,kail,centos/redhat,红旗...

为什么Linux这个操作系统从商业角度会有这个多版本呢?首先这几个版本使用的内核是一样的,之所以有这么多是因为需要满足不同的用户的不同需求。

认识Linux内核版本名称:

以Centos 7为例,它的版本号如下:

Ubuntu 20.04为例,它的版本号如下:

其中第一个数字代表主版本号 ,如果主版本号发生变化说明操作系统内部大量代码发生重大变化,第二个数字代表次版本号(从版本号),如果次版本号发生变化说明操作系统代码发生了大量变化,但这种变化比主版本号改变所带来的变化要小,次版本号如果是偶数,表示这个操作系统是稳定版本,如果是奇数,表示这个操作系统是测试版本(拟上线版本),第三个数字代表修订次数,它表示如果代码发出去后有bug,那就要重新修订,每修订一次,修订次数就要加1。

所以从技术角度上看,如果内核版本发生大量变化,那么商业角度的操作系统也会跟着发生相应的变化。

操作系统使用的内核越新越好吗?

答案是否定的。操作系统使用的内核越新,那么它就会不完善,即潜在的bug可能存在,也就是不稳定。所以我们尽量用老一点的版本比较好,当然不要太老。

以上就是本篇所有的内容了,主要讲了Linux的历史发展过程,大家看个热闹就行,祝大家天天开心!