分享

浅谈Linux的起源:从一个故事说起

 苏醒的贝壳 2019-06-10

概述


01

Multics计划

上个世纪六十年代,那个计算机还没有很普及,只有少数人才能使用,而且当时的计算机系统都是批处理的,就是把一批任务一次性提交给计算机,然后就等待结果。并且中途不能和计算机交互。往往准备作业都需要花费很长时间,并且这个时候别人也不能用,导致了计算机资源的浪费。

浅谈Linux的起源:从一个故事说起

为了改变这种情况,在1965年前后,贝尔实验室(Bell)、麻省理工学院(MIT)以及通用电气(GE)联合起来准备研发一个分时多任务处理系统,简单来说就是实现多人同时使用计算机的梦想,并把计算机取名为Multics(多路信息计算系统),但是由于项目太复杂,加上其他原因导致了项目进展缓慢,1969年贝尔实验室觉得这个项目可能不会成功,于是就退出不玩了。


02

Unix的诞生

Bell退出Multics计划之后,Bell实验室的那批科学家就没有什么事做了,其中一个叫做Ken Thompson的人在研发Multics的时候,写了一个叫做太空大战(Space Travel)的游戏,大概就是一个很简单的打飞机的游戏,但是这个游戏运行在Multics上。当Bell退出了Multics后,Thompson就没有了Multics的使用环境了,为了能够继续游戏,于是他花了一个月的时间写了一个小型的操作系统,用于运行Space Travel,当完成之后,Thompson怀着激动的心情把身边同事叫过来,让他们来玩他的游戏,大家玩过之后纷纷表示对他的游戏不感兴趣,但是对他的系统很感兴趣。

浅谈Linux的起源:从一个故事说起

因为MULTICS是“Multiplexed informtion and Computing Service”的缩写(多路信息计算系统),于是他们命名这个系统为:“UNiplexed Information and Computing Service”,缩写为“UNICS”(没路信息计算系统,与Multics相反)。后来大家取其谐音,就称其为“UNIX”了。

这个时候已经是1970年了,于是就将1970年定为Unix元年,因此计算机上的时间就是从这一年开始计算的。

后来Unix这个小操作系统就在Bell实验室内部流行开,并经过不断地改良最终在1974年7月Unix发展到第5个版本,Bell实验室公开了Unix,结果引起了学术界的广泛兴趣并对其源码索取。所以,Unix第五个版本就以“仅用于教育目的”的协议,提供给各大学作为教学之用,成为当时操作系统课程的范例教材。各大学公司开始通过Unix源码对Unix进行了各种各样的改进和拓展。1978年学术界的老大伯克利大学,推出了一份以第六版为基础,加上一些改进和新功能而成的Unix。并命名为BSD(Berkeley Software Distribution伯克利分发版),开创了Unix的另一分支:BSD系列。

于是乎Unix就有了两个分支,一个就是BSD系列的分支,一个就是Bell本身发放的分支,当时因为Bell属于AT&T,AT&T受到了美国《谢尔曼反托拉斯法》的影响,不能销售除了电话机电报机等之外的商品,后来AT&T分解,Bell可以卖Unix了,Unix走向了商业化,如果想继续使用就需要购买授权,一份授权4万美元。


03

Minix及Linux的诞生

在Unix昂贵的授权费用下,很多大学不得不停止对其研究,导致老师上课也不知道讲什么了。在1987年荷兰有个大学教授安德鲁写了一个Minix,类似于Unix,专用于教学。当Minix流传开来之后,世界各地的黑客们纷纷开始使用并改进,希望把改进的东西合并到Minix中,但是安德鲁觉得他的系统是用于教学的,不能破坏纯净性,于是拒绝了。

浅谈Linux的起源:从一个故事说起

Linus Torvalds

在1991年9y月17日,Linus Torvalds(林纳斯.托瓦兹)在互联网上公布了自己写的Linux,可能是表达对安德鲁的不满吧,于是Linus发布了一个帖子,大概就是说:我写了一个操作系统的内核,但是还不够完善,你们以任何姿势使用不收费,也可以帮助我一起修改。帖子发出后引起了强烈的反响。在大家的努力下,于1994年Linux的1.0版本正式发布。

为什么会引起这么强烈的反应呢?这就要从了另一个人说起,那就是Richard Stallman(自由软件之父)。Stallman是一个非常“激进”的人,因为Unix商业化的影响,他认为软件是全人类的智慧结晶,不应该为某一家公司服务。在八十年代,他发起了自由软件运动,吹起了共产主义的号角(发起了GUN运动),并发布了软件界的共产主义宣言(GPL协议),并且这一运动得到了很多人的认同。

所谓自由软件自由就是指:自由使用、自由学习和修改、自由分发、自由创建衍生版。

GUN的定义是一个递归缩写,就是GUN IS NOT UNIX。就是说Unix是流氓,我不是。有意思的是,GUN运动是上个世纪八十年代开始的,而那个时候Linux还没有诞生,就在大家逐渐失去信心的时候,1991年Linus Torvalds带着他的Linux登场了,给GUN运动画了一个完美的句号。

Linux为什么会引起如此强烈的反响呢?因为Unix有版权,爱好编程的狂热分子在研究Unix的时候很容易吃上官司 ,而Linux是遵循GPL协议的,可以免费使用,让黑客们尽情的施展(这里的黑客指那些技术大牛,不是指那些利用计算机干坏事的人)。于是Linux提供内核(kernel),GUN提供外围软件,就这样GUN/Linux诞生了。

所以,看到这里你就会了解到Unix是1970年出现的,Linux是1991年发布的,但Linux是不同于Unix的操作系统。


04

Linux的发行版本

Linux或者Unix是一个操作系统,1991年的Linus Torvalds公布的是Linux的内核(kernel)。但是公布的是源码,并不是编译好的直接可安装的操作系统,如何安装一个操作系统呢?先下载一份源码,然后进行编译安装,但是编译的时候程序需要运行在操作系统上,而操作系统还没有编译。于是就陷入了一个死循环中,就是要安装操作系统,就需要编译,编译的时候需要操作系统,这样就是鸡生蛋,蛋生鸡。

这里就需要引入交叉编译了,具体做法是假设要在电脑上安装Linux,要把A的硬盘拆下来,放到已经安装了操作系统的电脑B上,然后编译,将编译好的操作系统放到硬盘上,再把硬盘装回去,开机启动,这就是交叉编译安装系统。

这样的话入门难度实在太高了,所以迫切需要一种简单的方式来安装。于是就出现了这么一种公司,他们将已经公开好的Kernel(内核)再加上一些开源的周边软件收集起来编译成二级制文件放到网上供别人使用,其中Red Hat(红帽)就是其中著名的一家。我们知道Linux是遵循GPL协议的,也就是公开免费的,那么他们怎么盈利呢?既然不能卖软件,那么就卖服务呗,比如说,发现了Linux漏洞,然后Red Hat修复,如果你买了我们的服务,我们就将补丁程序给你,并指导你安装,所有问题都帮你解决。

世界上总是不缺好事者,RedHat既然可以这么做,为什么就不能有好心人免费做呢?是的,有这样一个社区,他们把RedHat的源码拿过来,然后编译成操作系统放出去,这就是CentOS,就是社区版的RedHat,所以基本RedHat的补丁包出来一个月之后,CentOS就出现对应的补丁包了。这对于Red Hat是好事还是坏事呢?这恐怕只有当事人知道了。

当别人说Linux的版本时,一般来说有两个版本,一个是内核的版本,一个是发行的版本。例如登录到终端执行命令

浅谈Linux的起源:从一个故事说起

uname -a 查看内核的版本,是4.4.0的版本,而 more /etc/issue就是 查看发行版的版本,表示了我安装的是Ubuntu的14.04.5的发行版。


05

Linux的哲学思想

Linux的基本思想有两点:

第一,一切都是文件;

第二,每个软件都有确定的用途,同时它们都尽可能被编写得更好。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。


06

总结

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多