淡说Linux 的发展史

 ♦ 1  Linux的简单介绍

       Linux与Windows一样都是一套OS(操作系统),Windows界面美观 ,普通用户很容易上手,点点鼠标就能搞定许多操作,而Linux生下来就是为程序员的,故精通Linux都是非常擅长命令行的,可以说命令行就是学习Linux的最基础的东西了,操作相对Windows来说并不是那么的容易上手,反而很复杂,因为命令行是艰涩难懂的,故造成了如今Linux只在程序员中流行,而普通电脑用户可能根本不知道它的存在,我当初也是听说的,到现在我才有极度想要学习它的念头,好了,废话不多说。

      操作系统=内核(kernel)+系统调用接口,内核与硬件紧密相关,见图1.1,仅有内核的话,只能将计算机运行起来,而你什么都不能做,干瞪眼的干活,所以说操作系统除了内核外 系统调用接口也是相当的重要的,有了它们,软件开发者就可以利用这些接口开发出软件,软件让操作系统更加的完美。

1.1

      Torvalds先生在写出Linux的时候,这个OS也仅有内核与接口这么简单,而且还是针对386来开发的,所以也仅能“让计算机开始运行,等待用户输入指令”而已,事实上,能在Linux上跑的软件还很少呢。

      每种OS都是在它专门的机器上运行的,像Windows系统是专门针对个人计算进X86架构的硬件去设计的,有人问 Windows操作系统能装在 苹果公司的麦金塔计算机(MAC) 上面吗? 结果很明显 不可以啊 ,为什么呢,由上可知硬件是由内核来控制的,Windows操作系统的内核只能控制Intel的X86架构的硬件,而06年之前苹果公司是请IBM公司开发硬件(所谓的power CPU), 然后apple在该硬件架构上开发自家的OS(即Mac),故Windows是不能安装在苹果计算机上的。但是在06年之后苹果公司也采用了Intel的X86架构的硬件,此时才可能将Windows用于Mac计算机,注意了,仅仅是可能,据说是由于兼容性问题的存在,这里我也不太明白。再说Linux吧,这个系统是一个Open Source(开放源代码)的操作系统,这就注定了它具有“可移植”这个强大的优点,理论上讲Linux的源代码可以被修改从而在各种机器上运行,Windows闭源则不行啊,这就奠定了Linux的良好前途。

    Linux是一个提供了一个完整操作系统当中最底层的硬件控制与资源管理的完整架构,这个架构是沿袭Unix良好的传统而来的,所以相当稳定并且强大。

    如此越来越多的软件开发者渐渐将工作心血转移到了这个系统上,所以之后能在Linux上运行的软件也不在少数了。这些软件与Linux共同形成了一个更加强大,更加稳定的操作系统发展至今。

♦2.至于Linux追根溯源到底是如何来的,那就要从Unix说起了,先说说跟Unix的建立有关的东西吧。

2.1   1969年以前——Multics项目

      在20世纪60年代左右一间学校可能仅有一台主机,而如此多的学生免不了要等待才能使用,好在之后麻省理工学院(MIT)开发了分时操作系统(compatible time-sharing system,CTSS),它可以让多个终端机通过连接大型主机利用主机的资源进行运算工作,其架构如图2.1

2.1

      这些终端机只能提供输入输出的功能,本身并不能安装软件或运算的能力,而且最先进的主机只能让30多台终端机连入而已。为了加强大型主机的功能,以便让更多的用户利用主机的资源,所以在1965年前后,由贝尔实验室(Bell)、麻省理工学院(MIT)及通用电气公司(GE)共同发起了Multics的项目,Multics的最终目标是让一台大型主机可以同时接入300台以上的终端机。但是后来由于资金短缺进度落后等原因,这个项目最终没有获得成就,而贝尔实验室也退出了该项目的研究。

      虽然这个项目不成功,但是这个项目培养出了的人才是相当优秀的。

2.2   1969年——Ken Thompson的小型File Server System

      Ken Thompson是 参与Multics项目的贝尔实验室人员之一,他从Multics中获得了一点想法,他用了四个星期的时间,终于以汇编语言(Assembier)写出了一组内核程序,同时包括一些内核工具程序,以及一个小的文件系统。该系统就是UNIX的原型,被同事们戏称为Unics。只能说“科技来自于人性”。

2.3   1973年——Unix正式诞生,Ritchie等人以C语言写出第一个正式UNIX内核

      由于Thompson写的那个OS太好用了,所以在贝尔实验室内部广为流传,并且多次经过改版。 但是因为Unics使用汇编语言写出来的,汇编语言的专一性,所以若计算机的架构不同的话,每次安装都得进行重新编写这个步骤,灰常的不方便。

      当时现成的高级语言有B语言,但是有B语言编译出来的内核性能不是很好,于是Dennis Ritchie将B语言重新改写成了C语言,Thompson、Ritchies两人合作用C语言重新编写UNICS的内核,最后发行出Unix的正式版本!!到这里你会发现,哦,C语言原来是这么来的啊,还真是神奇呢。C语言使得Unix很容易被移植到不同的机器上。

2.4   1977年——重要的Unix分支-BSD的诞生

     柏克莱大学的Bill Joy在取得了UNIX的内核源码后,便着手于修改适合自己机器的版本,并且同时增加了很多工具软件和编译程序看,最终将它命名为Berkeley Software Distribution(BSD)。这个BSD是UNIX的一个很重要的分支,Bill Joy也是Sun这家公司的创始人。

2.5  1979年:重要的System V架构与版权声明

      早期的UNIX只能跟服务器(SERVER)和大型工作站(Workstation)画上等号!直到AT&T公司推出System V后才有所改观,S V这个架构最特殊的地方就是支持X86架构的个人计算机系统,也就是说它可以安装在个人计算机上并运行。

      不过,AT&T出于对商业的考虑,以及在当时现实环境下的思考,于是想将UNIX的版权收回去。因此,AT&T在1979年发行的第七版UNIX中,声明“不可对学生提供源码”,这个事件也造成了UNIX业界之间的紧张气氛,并且引发了很多商业纠纷。

 注:目前被称为纯种的UNIX指的就是System V 和 BSD这两套

2.6 1984年:X86架构的Minux操作系统诞生

      由于1979年的版权声明,影响到了教授关于UNIX的教学,无法向学生提供UNIX源码,教授没法讲解,谭宁邦教授就是其中之一,他自己动手编写了一个能在X86上运行的UNIX Like的内核程序Minix,为了避免版权纠纷,谭宁邦教授在编写过程中完全不看UNIX内核源码,并且强调Minix必须与UNIX兼容才行,直到1986年终于完成。

      Minix操作系统的开发者只有谭宁邦教授一人,因为学术很忙,而且谭宁邦始终认为Minix主要用在教育上面,所以对Minix是点到为止。Minix虽然很受欢迎,但是它已无法再向更高的位置前进了。

2.7  1984年:GUN项目与FSF基金会成立

      这两个东西的成立者都是史托曼(英文名:Richard Mathew Stallman,RMS),GUN项目创建的目的是创建一个自由、开放的UNIX操作系统(Free UNIX),他一个人是无法完成的,所以他以出售他自己编写的那个Emacs来赚钱,Emacs是一个很好很优秀的程序编辑器,非常牛,赚了点钱后全力编写其他软件,并且成立了自由软件基金会(Free Software Foundation,FSF),请来了更多的工程师和志愿者一同编写软件,写出了GCC这个比Emacs更加优秀的工具,还有更多可以被调用的C函数库(GNU C Library),以及可以被用来操作系统的基本接口bash shell,大约在1990年完工。

♦3.Torvalds的Linux开发

      GUN、GCC、minux等等这些东西的出现都为托瓦兹开发Linux打下基石,利用这些东西,托瓦兹写出了自己的操作系统,当这个内核程序可以在386上顺利运行后,他希望能够获取大家的意见,于是将这个内核放到网上供大家下载。

     。。。。。

     之后各个Linux团队产生,到现在各大distributions横行这个过程我就自动省略了。

♦4.再稍微普及点知识吧。

4.1 主次版本为基数:开发中版本(development)

     如2.5.xx,这种内核主要用于测试和开发新功能,经众多工程师测试没问题后,才加入下一版的稳定内核中。

4.2 主次版本为偶数:稳定版本(stable)

     如2.6.xx,这种版本可以提供给用户使用了。

想学的话建议CentOS为入门系统。说到这里,此篇文章到此结束。2015-11-1016:49:36

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏伪君子的梦呓

用 Python 爬微信公众号的数据

0 前言 最近想搞一点秘密的小东西,然后就发现了一个非常有用的库 wechatsogou,听个名字你就大概能猜出是什么来的了,基于搜狗微信搜索的微信公众号爬虫...

3325
来自专栏程序人生

从 gitlab 事件中吸取的教训

题注:这是一篇去年的文章,今早看到 gitlab 运维人员愚蠢地 rm -rf, 心有戚戚焉,故而重发这篇文章,供大家参考。 ---- 这两天不是很太平,程序圆...

34510
来自专栏开源项目

没想到公司新来小白竟然做了这样的事……

945
来自专栏阮一峰的网络日志

如何使用RSS

一、 自从我发现很多人不知道什么是RSS以后,我就一直想向大家介绍它,因为它太有用了,将来会和电子邮件一样重要。不懂得RSS,上网的效率和乐趣都要大打折扣。 ...

3264
来自专栏有趣的Python和你

抖音小姐姐视频爬虫

前段时间,创造101着实火了一把,问我pick哪位小姐姐,当然是唱歌老跑调,跳舞数拍子的杨超越了。其实在看创造101之前,就已经在抖音上关注了她,今天就来爬爬她...

762
来自专栏JackieZheng

Nodejs学习笔记(三)——一张图看懂Nodejs建站

前言:一条线,竖着放,如果做不到精进至深,那就旋转90°,至少也图个幅度宽广。 通俗解释上面的胡言乱语:还没学会爬,就学起走了?! 继上篇《Nodejs学习笔记...

37010
来自专栏北京马哥教育

使用版本控制系统的 3 个建议

git的三个建议 如果说有什么是开发软体专案一定要使用的基础工具,使用「版本控制系统」应该可以记上一笔。无论是个人或是团队开发,都可以透过版本控制系统获得巨大的...

1896
来自专栏TSW

程序员大型甩锅现场,太搞笑了!

952
来自专栏阮一峰的网络日志

如何使用 Issue 管理软件项目?

软件开发(尤其是商业软件)离不开项目管理,Issue 是最通用的管理工具之一。 本文介绍 Issue 的基本用法。 ? 一、Issue 是什么? Issue 指...

3645
来自专栏张戈的专栏

首页快照不更新么?投诉试试吧!

过年在家由于网络问题,半个月都没顾得上博客,回来后又是换空间,又是修改网站名称以及描述等内容,导致百度快照一直停在了 2014-01-23 ,硬是保持了一个多月...

35515

扫码关注云+社区