初识Linux之——Linux是如何诞生的

初识Linux之——Linux是如何诞生的


对于大多数初次接触Linux的童鞋,可能会非常好奇什么是Linux?它是做什么的?为什么那么多高手都喜欢Linux?Linux是如何产生出来的呢?本文将为大家解答释疑,让大家对Linux有一个清晰的概念。

Linux是什么

简单来说,如Windows7、Windows10、安卓、IOS等,Linux是一个计算机操作系统。我们现在的社会能够如此的绚丽多彩,各种科技高速发展,离不开计算机的功劳。而计算机能够为我们提供各种功能,如大型的科学计算、互联网服务的运作、以及我们日常的娱乐办公等,这一切都功能的实现都建立在计算机的操作系统基础之上。操作系统,通俗的讲就像一个大管家一样,能够把计算机的各种运算、存储、网络单元等硬件资源和软件资源合理的组织管理起来,从而让用户获得更好的用户体验,让我们的计算机实现更高的性能。

Linux的特性及使用场合

Linux为诸多骇客(计算机高手)所推崇的原因,在于它最大的一个特性:自由、开源(开放源代码)。正因为Linux的开源,任何计算机爱好者都可以自由的获取Linux的源代码,并且根据自己的理解和想法去自由的修改,甚至定制出自己独特的操作系统。这极大的迎合了计算机界各位大牛的极客精神。因此,Linux的诞生迅速吸引了世界上诸多计算机精英们加入并贡献自己的智慧。这使得Linux获得了极速的发展,相比其他操作系统也显得更加灵活、安全、健壮。

同样由于开源、免费,各大IT公司可以较低的成本获取到性能更高、安全性更可靠的操作系统,并且可以合法的基于Linux源码二次开发适合各种设备的系统。因此,Linux及其各种衍生系统几乎遍布到我们社会生活的各个角落,大到科研中心运行的超级计算机、网络公司的各种服务器,小到我们的智能手机及各种智能设备,都可以看到Linux的身影。据统计,目前为止各种Linux的发行版及衍生版多达数百种,而基于Linux定制的嵌入式设备更是有上千种之多。

这么神奇的操作系统   Linux是如何产生的呢

正如大多数童鞋们可能了解到的,Linux其实是来源于UNIX的,那么UNIX又是个什么鬼呢?要讲清楚Linux与UNIX之间的爱恨纠葛,这要追寻到很久很久之前的历史了 … …    ^_^

UNIX操作系统的创生

其实从1946年第一台计算机ENIC诞生之后的相当一段时间,计算机是并没有一个像样的操作系统的,而当时的计算机也并不像现在的电脑这么便携、智能。当时的计算机非常的原始,非常的庞大、笨重,只能进行一些简单的科学计算,而这些大家伙也只存在于某些科研机构。

直到1964年由贝尔实验室、麻省理工学院及美国通用电气公司所共同参与研发的Multics项目(同年IBM发布了System/360)。然而由于资金和研发进度等问题直到1969年Multics也没有获得预想中的成功和发展。

这期间在贝尔实验室的Ken Thompson,出于个人爱好开发了一个基于Multics的星际旅行(Space and Travel)的游戏。但随着Multics项目的没落,Ken希望能够寻找一个可以替代Multics的操作系统以支持自己的游戏程序。正巧他发现了一台被闲置的PDP-7,Ken Thompson就和同时Dennis Ritchie利用空余时间开发出了一个能够支持其游戏项目的操作系统。

MULTICS 其实是"MULTi-plexed Information and Computing System"的缩写,在1970年时,那台PDP-7却只能支持两个使用者,当时,Brian Kernighan 就开玩笑地戏称他们的系统其实是:"UNi-plexed Information and Computing System",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。

UNIX系统的发展期

1973年,Ken Thompson和Dennis Ritchie发明了C语言之后,着手将UNIX用更高级的C语言进行了改写(之前的UNIX是用B语言编写的,B也是他们两个人发明的,为了改写UNIX,他们将B语言做了一番改进,而成了C语言)。这个划时代的动作让UNIX能够很轻易地被移植到各种不同的机器上。

1974年,他们在计算机协会交流杂志(Communications of the ACM)正式发表了UNIX,吸引了更多学术界的注意与参与。从此,UNIX逐渐成为网络工作站的标准,让使用不同机器的使用者,都能使用类似的UNIX操作系统。

直到1979年之间的这段时间由于贝尔实验室被卷入反垄断法案等原因,UNIX在各大高校和科研机构获得了极大的发展,并发展出了众多主要分支。这其中最为著名的就是Ken Thompson1975年在Berkeley大学执教期间与Bill Joy等人基于UNIX共同研发的BSD。

但随着贝尔实验室的分拆,贝尔实验室又重新获得了UNIX的商业发行权,并同时宣布收回UNIX的版权。贝尔实验室与Berkeley大学开始了长达10年的版权之争。这期间各高校、科研机构、大型IT公司等UNIX用户是最为纠结的10,既要使用UNIX,又无法获得合法的使用权限。

GUN和Minux的出现

由于受限于UNIX的版权问题,在这黑色的10年世界各计算机骇客们和科研机构的大牛们奔走呼告,希望搞出一个最终的解决方案。其中最具影响力的事件要数GNU和Minux。

GNU(GNUis Not Unix)计划,又称革奴计划,是由Richard Stallman在1983年公开发起的。它的目标是创建一套完全一个自由、开源的UNIX(Free UNIX)。并于1985年创立了自由软件基金会FSF(Free Software Foundation)来为GNU计划提供技术、法律以及财政支持。为保证GNU软件可以自由地“使用、复制、修改和发布”,GNU软件必须遵循GNU通用公共许可证GPL(GNU General Public License),即“反版权”(或称Copyleft)概念。GNU可以说是计算机界开源精神的始祖,Linux上目前使用的大多数开源软件都是来自于GNU的,如Emacs、GCC、nano等。

另一个比较有影响力的就是Minux(从某中程度上,可以说是Linux的前身)。Minux是荷兰Vrije 大学的Andrew S. Tanenbaum教授,在贝尔实验室将UNIX源代码私有化之后,为满足教学和研究需求而开发的UNIX兼容操作系统,取Mini-UNIX之意,简称为Minux。该系统虽然可以免费获取,但Andrew教授严格规定其仅限于教学使用,因此这虽然是一个不错的系统,但并没有获得很好的发展。

Linux世界的开端

啊 ~    终于轮到主角出场了   重量级人物往往都是压轴的  ^_^

时间划过了一点,来到了1988年。芬兰的赫尔辛基大学迎来了一位新生Linus Benedict Torvalds(即Linus,可不是Linux哦)。这绝对是一位大神级的人物。Linus在学习操作系统原理之后,完全不满足这些概念性的知识,于是就花了大量的时间研究了Minux和BSD等其他UNIX操作系统,并基于Minux和GNU的Gcc等编写了一个自己的小型操作系统。更可怕的是我们的主角Linus将这个小程序的源码发布到了一个社区网站上,同时命名为0.01版(1991年8月),并允许任何人可以自由的下载、修改。这就是Linus的Minux,社区管理员为了便于管理就把它称之为Linux。

这种操作模式以迅雷不及掩耳之势吸引了世界各地骇客和技术大牛的注意力,在短短的两个月时间内就获得了大量的反馈,并使Linus发布了第一个Linux的“正式”版本:0.02版。由于得到了世界各大计算机精英的支持,Linux的发展真的是一日千里,同时这也形成了Linux的社区文化。

Linux OR GNU/Linux ?

GNU/Linux?怎么会又冒出来一个GNU/Linux呢?要明白这点需要我们对计算机操作系统有一个更为准确的认识。确切的说Linux代表的仅仅是操作系统本身——Linux内核(kernel)。而我们现在通常所说的Linux是包括Linux内核及运行在其上的诸多GNU和其他开源软件(如Shell、Gcc、X Windown等)在内的一个整体。

前面我们已经知道,GNU是一个致力于开发一个开源的不同于UNIX的系统的(正如它所宣称的GNU is Not UNIX)。但至到2013年,GNU Hurd内核已经开发了23年依然没有发布稳定版本,这对于GNU不得不说是一件极其尴尬的事。而Linux却又是在GPL条款下发布的,这在某种程度上正好填补了GNU没有操作系统的缺陷。

而一些人拒绝使用“GNU/Linux”这种叫法无非是因为:1.Linux朗朗上口,名字较短又好记;2.Richard Stallman博士直到1990年代中期,Linux开始流行后才要求更名。

那么我们就是该如何称呼呢?其实正如Linus Torvalds在1996年新闻组里说讲的一样,关于这个的讨论已经够多的了,如何称呼Linux,这真的不是个事!!!事实上无论怎么称呼,无论是GNU推动了Linux的发展,还是Linux推动了GNU的推广,只要是对开源事业对科技发展有贡献的都是好的。


扩展阅读:

1、Linux、Windows和Apple之间的故事

既然Linux这么出名、这么牛X,为什么我不知道呢?相信很多朋友会有这样的疑问。对于这部分,感兴趣的童鞋们可以自己查阅修改资料进行了解。

2、Linux的主要发行版本

Debian  –  Ubuntu
RedHat  –  Red Hat Enterprise Linux
                 CentOS
                 Fedora
SUSE
Arch Linux
Gentoo

原创文章,作者:M21-张国辉,如若转载,请注明出处:http://www.178linux.com/50916

(0)
M21-张国辉M21-张国辉
上一篇 2016-10-14
下一篇 2016-10-14

相关推荐

  • 文本处理三剑客之sed

    文本处理三剑客之sed sed概述 sed使用示例 sed的高级应用 sed概述 sed, 作为文本三剑客之一,其定位就是一个编辑器, 而且sed是一个流式编辑器(stream editor),其主要功能是过滤和转换文本。 sed – stream editor for filtering and&…

    Linux干货 2016-08-12
  • 命令read

    read命令是一个bash命令,它用于从键盘或标准输入中读取文本.我们可以使用read以交互的形式读取来自用户的输入.并且read还提供一种不需要按回车就能够输入参数的方法. read可以从标准输入中读取单独的一行,或者使用-u选项,从文件描述符FD中读取.并且这单独的行被分隔成多个域,第一个词被赋值给第一个变量,第一个赋值给第二个变量,以此类推,直到剩下的…

    Linux干货 2016-08-12
  • mariadb基础应用

    mariadb基础应用 一、 前言 MariaDB is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source. Notable users …

    Linux干货 2016-12-16
  • 日志分析工具Awstats实战之Nginx篇-分析结果静态化

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1316979 前言: Awstats 是在 SourceForge 上发展很快的一个基原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处…

    Linux干货 2016-08-15
  • 马哥教育网络班N22期+第1周课程练习beta2

    马哥教育网络班N22期+第1周课程练习  1.计算机的组成及其功能 1.1 计算机的组成 根据冯·诺依曼体系结构,将计算机分为五个主要的部件: CPU:运算器 CPU:控制器 RAM:存储器 Input:输入设备 Output: 输出设备 其功能分别为: 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处…

    Linux干货 2016-08-15
  • 系统自动化安装

    本章内容 系统安装过程配置anaconda自动化安装系统 安装程序 CentOS系统安装 系统启动流程: bootloader–>kernel(initramfs)–>rootfs–>/sbin/init anaconda: 系统安装程序 tui: 基于图形库curses的文本窗口 gui:图形窗口 安装程序启动过程 MBR…

    Linux干货 2016-09-19

评论列表(1条)

  • 马哥教育
    马哥教育 2016-10-14 10:55

    加入了一些自己的理解,不错,希望可以将这段发展史熟知,加油,加油~