Linux 的发展史

前言

免费源码开放

安全性高,漏洞修补快

多任务、多使用者

多平台支持

设备要求低,不耗资源 ……

     看到这一系列的优点,在IT人的脑海里只会浮出一个名字Linux. 如果还不够直观的话,有这么一个数据, 显示前500系统中的485个系统都在运行着 Linux 的发布系统,而仅仅只有一台运行着 Windows 系统,那么就让我们了解下Linux成长脚步。

 

 

 

背景 

自从20世纪40年代计算机诞生以来,它就以异乎寻常的速度发展着,但早期的硬件发展速度要远远高于软件的发展速度。这时操作系统虽已出现,但应用得还比较少,运行在计算机里的程序大多是为了实现某种特定的功能而编制的。程序员需要对计算机内部各种设备的原理具有很深的了解才能够写出所需要的程序。虽然如Fortran等高级语言已经出现,但程序员很多仍使用机器语言或汇编语言编制程序,这时只有极少数人才能够掌握程序的开发。

直到第三代集成电路计算机(1964-1971)时代的到来,操作系统才被越来越广泛地用于计算机内部。操作系统事实上就是对计算机各种资源(设备)的一种抽象。这些资源(设备)包括CPU(Central Processor Unit)、主存(Main Memory)、辅存(Secondary Memory)、键盘(Keyboard)和显示器(Monitor)等,并在此基础上提供一系列服务(比如文件系统)。程序员可以通过调用操作系统所提供的编程接口获得服务、对各种资源方便地进行访问,从而开发出实现特定功能的应用软件,提供给最终用户(end user)。因此这一时期涌现出更多的程序员、分析员和计算机系统专家,软件行业也得到了极大的发展。而对于最终用户而言,他们对应用软件的兴趣远远高于操作系统本身,在他们看来,操作系统几乎是透明的。这时的操作系统已由早期的单用户作业操作系统发展成多用户多任务的分时操作系统。也就是说,多个用户可以通过多个终端同时访问计算机资源。尽管一台计算机物理上只有一套处理器、内存和辅存等资源,但是通过分时机制,每个用户都会拥有一套虚拟的资源,就好像每个用户都拥有一台单独的计算机。

 

UNIX诞生

1965年时,贝尔实验室(Bell Labs)加入一项由通用电气(General Electric)和麻省理工学院(MIT)合作的项目;该项目要建立一套多使用者、多任务、多层次(multi-user、multi-task、multi-level)的MULTICS操作系统。直到1969年,因MULTICS项目的工作进度太慢,该项目就被停了下来。当时,Ken Thompson已经有一个称为"星际旅行"的程序在GE-635的机器上运行,但是反应非常的慢,正巧被他发现了一台被闲置的PDP-7(Digital的主机),Ken Thompson和Dennis Ritchie就将"星际旅行"的程序移植到PDP-7上。而这部PDP-7就此在整个计算机历史上留下了芳名。

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

1971年,他们申请了一台PDP-11/20,申请的名义是:要发展文书处理系统。该提案被采纳,他们也就发展出了一套文书处理系统–就是现在UNIX操作系统里面文书处理系统(nroff/troff)的前身。有趣的是,没有多久,贝尔实验室的专利部门真的采用了这套系统作为他们处理文件的工具,而贝尔实验室的专利部门也就顺理成章地成为UNIX的第一个正式使用者。当时,那部PDP-11/20只有0.5MB磁盘空间。而描述这整个系统的文件被标示为:"First Edition",版本日期是1970年11月。从此以后,UNIX的版本就以系统文件的版本来称呼。

1973年,Ken Thompson(肯·汤姆森)和Dennis Ritchie(丹尼斯·里奇)发明了C语言之后,着手将UNIX程序用高阶的C语言改写,这个时候已经是第4版了(C的前身叫B,也是他们两个人发明的,为了改写UNIX,他们将B语言做了一番改进,而成了C语言)。这个划时代的动作让UNIX能够很轻易地被移植到各种不同的机器上。

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

在UNIX的诞生初期,贝尔实验是还是一个大的集合体,包括贝尔电话公司以及西部电气(Western Electric Co.)。碍于反托拉斯法的规定,它不能利用UNIX做任何的商业行为,也因此,内部的管理阶层自然没有兴趣对UNIX有任何的支持,UNIX就全靠一群玩家在琢磨,主要人物当然还是Ken Thompson和Dennis Richie。

重要分支

在 Unix 早期的发展中,有一件相当重要的事情,那就是 BSD 的诞生!由于 C 语言是一种高级语言,他可以被应用在不同的硬件架构上面,而 Unix 本身就是 C 语言写成的!在 Unix 发表之后, 柏克莱大学 ( Berkeley 的教授对于这个操作系统相当的有兴趣,在经过取得 Unix 的原始码,并且几经修改之后,终于在 1977 年发表了第一代的 Berkeley Software Distribution ( BSD 。这个 BSD 是 Unix 的一个分支,他的发展对于 Unix 有相当大的影响,例如后来的 Sun 公司就是使用 BSD 发展的核心进行自己商业的 Unix 版本的发展的!

 

GNU 与 Free Software Foundation

Unix 在商业上面的问题让许多对于 Unix 喜好者感到相当的忧心,其中一个就是有名的 Richard M. Stallman 先生。他认为, Unix 是一个相当好的操作系统,在这个系统上面,如果大家能够将自己所学的贡献出来,那么这个系统将会更加的优异!Stallman 先生认为最大的快乐就是让自己发展的良好的软件让大家来使用了!而且,由于每个人的工作环境 ( 指软硬件平台 可能都不太相同,所以,他也强调应该要有 Open Source 的概念,让大家都能够分享这一份的心得!他认为,有了 Open Source 之后,你的程序将有很多的人可以帮忙检验,将使得 Unix 社群更佳的茁壮。为了自己的理想, Stallman 在 1984 年实际创立了 GNU 与 自由软件基金会 ( Free Software Foundation, FSF ,并创作了许多『自由软件』供大众来使用,此外,对于其作品以自由 ( free 的 GNU General Public License ( GPL 的授权模式提供大众使用。这个 FSF 的核心观念是『版权制度是促进社会进步的手段,版权本身不是自然权力。』对于 FSF 有兴趣或者对于 GNU 想要更深入的了解时,请参考朝阳大学的洪朝贵教授的网站,里面有更为深入的解说!而且,Stallman 的 GNU General Public License 一直强调 Free 这个字眼!他是这样说的:『"Free software" is a matter of liberty, not price. To understand the concept, you should thik of "free speech", not "free beer". "Free software" refers to the users freedom to run, copy, distribute, study, change, and improve the software』大意是说,自由软件并不是指『免费』的,而是指具有『自由度, freedom』的软件,什么是自由度呢?也就是你在取得这个软件之后,可以进行修改、进一步发表与复制在不同的计算机平台上面。这无疑是个好消息!因为如此一来,你所拿到的软件可能原先只能在 Unix 上面跑,但是经过原始码的修改之后,你将可以拿他在 Linux 或者是 Windows 上面来跑!Stallman 先生更直接对自由度下了这样的说明:

你可以根据任何你想要的提议 ( purpose 来跑这个 Free 的程序; 

你可以在理解了这支 Free 的程序的运作之后,将他修改成你所想要的样式与功能;

你可以将你自己修改过的 Free 的程序再次的发表,以帮助你的朋友们; 

你可以将这支 Free 的程序进行改良,并将改良过的程序公开发表,以造福社群! 

简单的来说, GPL 授权具有几个特点

任何软件挂上 GPL 授权之后,即为自由的软件,任何人均可取得,同时,亦可取得其原始码 ( Source Code 

取得 GPL 授权之软件后,任何人均可进行修改原始码,以符合自己的喜好

除此之外,经过修改的 Source Code 应回报给网络社会,提供大家来参考! 

但请特别留意,并非挂上 GPL 之后的软件就不可贩卖,这个是不同的两回事呦!举个例子来说,在 Red Hat 的官方网站上面提供 Red Hat 释出的 Linux 安装光盘提供大众下载,但是 Red Hat 本身依然有在卖 Linux 的套件,而且还卖的『很不便宜!』为何可以如此呢?呵呵!因为 Red Hat 他们卖的资料当中,含有相当大量经过整了的文件资料,这些资料虽然在网络上面可以下载,然而花了这么多的时间来整理这些资料,当然应该要给予相当程度的报酬啰!您说是吧!所以,请留意喔!并非 GPL 不可用来营利!

 

LINUX的诞生(Linux Torvalds)

在后来的几年内,由于计算机硬件工业的强力运作,以 intel 主导的 x86 系统架构的个人计算机大行其道,所以个人计算机算是相当流行的一个机器了!但在此时,人们使用的大多还是旧旧而且需要吃很多系统资源的 DOS 系列或其它的操作系统。 此时,有个芬兰的郝尔辛基大学 (Helsinki Linus Torvalds 学生做了件不寻常的事情! Linus 手边有个 Minix 系统 ( 这也是 Unix 的分支 ,他对这个操作系统相当的有兴趣!此外,由于当时他正好买了一部 386 的计算机,所以他就想说,咦!这个 Unix 这么棒!这么稳定,那我可不可以将他移植到个人计算机 ( X86 架构 来使用呢?!好在由于 Stallman 提倡的 Open Source 风气,他得以接触到一些 source code ,而就经由这样的一个想法,呵呵!他就很有心的读取 Unix 的核心,并且去除较为繁复的核心程序,将他改写成可以适用于一般个人计算机的 x86 系统上面,到了 1991 年,他终于将 0.02 版的 hobby 放到网络上面供大家下载,并且由于 hobby 受到大家的肯定,相当多的朋友一起投入这个工作中!终于到了 1994 年将第一个完整的核心 Version 1.0 释出!并且造成目前的大流行…..由于 Linux kernel 的发展是由『虚拟团队』所达成的,大家都是透过网络取得 Linux 的核心原始码,经由自己精心改造后再回传给 Linux 社群,进而一步一步的发展完成完整的 Linux 系统,至于 Torvalds 先生是这个集团中的发起者。由于这个群策群力的缘故, Torvalds 先生将 Linux 定为同样造福大家的 GNU 授权模式!

1994年发表 Linux 正式核心 1.0 的时候,大家要 Linus Torvalds 想一只吉祥物,怪怪的 Torvalds 突然想到小时候去动物园被一只企鹅追着满地打滚~还被咬了一口!既然想不到其它的吉祥物了,干脆就以这支企鹅来当吉祥物算了!所以,目前我们常常看到这一只企鹅就是这么来的!

 

 

年份表

1965年

Bell实验室、MIT、GE(通用电气公司)准备开发Multics系统,为了同时支持300个终端访问主机,但是1969年失败了

1969年

Ken Thompson(C语言之父)利用汇编语言开发了FIle Server System(Unics,即Unix的原型)

1973年

Dennis Ritchie和Ken Thompson发明了C语言,而后写出了Unix的内核

1977年

Berkeley大学的Bill Joy针对他的机器修改Unix源码,称为BSD(Berkeley Software Distribution)

1979年

Unix发布System V,用于个人计算机

1984年

因为Unix规定:“不能对学生提供源码”,Tanenbaum老师自己编写兼容于Unix的Minix,用于教学

1984年

Stallman开始GNU(GNU's Not Unix)项目,创办FSF(Free Software Foundation)基金会

1985年

为了避免GNU开发的自由软件被其他人用作专利软件,因此创建GPL(General Public License)版权声明

 

1988年

MIT为了开发GUI,成立了XFree86的组织; 

1991年

芬兰赫尔辛基大学的研究生Linus Torvalds基于gcc、bash开发了针对386机器的Lniux内核; 

1994年

Torvalds发布Linux-v1.0

1996年

Torvalds发布Linux-v2.0,确定了Linux的吉祥物:企鹅

 

各发行版网址

Red Hat: http://www.redhat.com 

Mandrake: http://www.linux-mandrake.com/en/ 

Slackware: http://www.slackware.com/ 

SuSE: http://www.suse.com/index_us.html 

OpenLinux: http://www.caldera.com/ 

Debian: http://www.debian.org/ 

Linpus: http://www.linpus.com.tw/ 

UniteLinux:http://www.sco.com/unitedlinux/ 

 

原创文章,作者:easy.bai,如若转载,请注明出处:http://www.178linux.com/51177

(0)
easy.baieasy.bai
上一篇 2016-10-14
下一篇 2016-10-14

相关推荐

  • httpd-2.4 功能生动实现 (Blog 13)

    CentOS 7 与 CentOS 6 访问控制区别、虚拟主机

    2017-12-01
  • 如何恢复误删除的rpm包命令

    如何恢复误删除的rpm包命令 在linux学习过程中,我们会遇到各种各样的问题,当然,如果能够将遇到的问题一一解决也是非常开心的,因为在解决问题的过程中我们的专业技能也得到了很大的提升。最近的测试中遇到了一个平时很少接触的问题:如何恢复误删除的rpm包命令。所以觉得有必要写下来,以防止下次出现类似的问题而不会解决。 首先模拟卸载rpm rpm -e &#82…

    2017-08-26
  • shell编程作业

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 [root@localhost sh.log]# cat systeminfo.sh  #!/bin/bash #author:DYW #显示当前主机系统…

    Linux干货 2016-08-15
  • javascript快速入门

    标识符多了一个美元符号python中只有字母和下划线和数字,数字不能开头数据类型有number(整形和浮点型),boolean,string,null,undefined(声明未赋值),symbol(新引入),object类型(基本类型和特殊类型外的其他类型) 引入一个变量要先申明,var a,let b常量类型,声明时定义,python中不存在const …

    Linux干货 2018-01-15
  • GREP命令学习笔记

    GREP命令,全称:Global search REgular expression and Print out the line. 是一个非常强大的文本搜索命令,与SED(stream editor,文本编辑工具)和AWK(文本分析、报告生成器)并称文本处理三剑客。 一.GREP命令基本使用格式 grep [OPTIONS] PATTERN [FILE&#…

    Linux干货 2016-06-22
  • 马哥教育21期网络班—第11周课程+练习—-成长进行时–不退步–下

    3、描述DNS查询过程以及DNS服务器类别。 DNS查询过程主机—>查找互联网上的主机 www.magedu.com—>联系到自己指向的DNS服务器—>DNS服务器—>找根 .—>根返回给DNS服务器—>DNS找.com—>com返回给DNS—->DNS找ma…

    Linux干货 2016-09-19