Linux发展史

Linux发展史

一、历史

(一)、Unix

1、Unix操作系统是一个强大的多用户、多任务操作系统,支持多种处理器架构。

2、最早由KenThompson(汤普逊)、Dennis Ritchie(丹尼斯·里奇,C语言之父,Unix之父)和Douglas McIlroy(麦克罗伊,程式设计师)于1969年在AT&T的贝尔实验室开发。

3、目前它的商标权由国际开放标准组织所拥有,只有符合单一Unix规范的Unix系统才能使用Unix这个名称,否则只能称为类Unix(Unix-like

(二)、GNU

GNU是自由软件之父Richard Stallman在1984年组织开发的一个完全基于自由软件的软件体系,与此相应的有一分通用公共许可证General Public License简称GPL)。Linux以及与他有关的大量软件是在GPL的推动下开发和发布的。

Richard Stallman 还创建了更多的软件,如:GCC(GNU编译器套件)、和GDB(UNIX调试工具),在他的倡导下,目前人们熟悉的一些软件如BIND、Perl、Apache、TCP/IP等都成了自由软件的经典之作。

(三)、BSD

BSD(Unix的衍生系统),比Linux早。BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,在1977至1995年间由加州大学伯克利分校开发和发布的。历史上BSD曾经被认为是UNIX的一支——"BSD UNIX", 因为它和AT&T UNIX操作系统共享基础代码和设计。

(四)、Minix

Minix是一种基于微内核架构的类Unix计算机操作系统,由Andrew S. Tanenbaum发明。Minix最初发布于1987年,开放全部源代码给大学教学和研究工作。2000年重新改为BSD授权,成为自由和开放源码软件。

(五)、Linux

1991年,由于计算机硬件工业的强力运作,以Intel主导的x86系统架构的个人计算机大行其道,此时,芬兰赫尔辛基大学有个叫Linus Torvalds的学生,将0.02版的原始码hobby放到网络上面供大家下载,,终于将第一个完整的核心Version 1.0释出,并且造成目前的大流行。Linus Torvalds将Linux定为同样造福大家的GNU授权模式!

Linux是Linus Torvalds受到Minix的影响而作成的。在设计哲学上,Linux则和Minix大相迳庭。Minix在内核设计上采用微内核的原则,但Linux则和原始的Unix相同都采用宏内核的概念。在Linux发展之初,双方还于1992年在新闻组上有过一场精彩的理念争论。Minix的作者和支持者认为Linux的单内核构造是“向七十年代的大倒退”,而Linux的支持者认为Minix本身没有实用性。

二、主要特性

(一)、基本思想Linux的基本思想有两点:

1、一切都是文件。

2、每个软件都有确定的用途。

其中第一条详细来讲就是系统中的所有都归结为一个文件,包括:命令、硬件和软件设备、操作系统、进程等等,对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

(二)、完全免费

Linux是一款免费的操作系统,用户可以通过网络或其它途径免费获得,并可以任意修改其源代码。这是其它操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

(三)、完全兼容POSIX1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序,这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

(四)、多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

(五)、良好的界面

Linux同时具有字符界面和图形界面,在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

(六)、支持多种平台

Linux可以运行在多种硬件平台上,如:具有x86、680×0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构,同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

三、Linux内核版本

(1)、Linux内核使用三种不同的版本编号方式。

   用于1.0版本之前(包括1.0)。第一个版本是0.01,紧接着是0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99和之后的1.0。

   用于1.0之后到2.6,数字由三部分“A.B.C”,A代表主版本号,B代表次主版本号,C代表较小的末版本号。只有在内核发生很大变化时(历史上只发生过两次,1994年的1.0、1996年的2.0),A才变化。可以通过数字B来判断Linux是否稳定,偶数的B代表稳定版,奇数的B代表开发版。C代表一些bug修复,安全更新,新特性和驱动的次数。

   以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较小的末版本号。在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5,而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。这样稳定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展。

   从2004年2.6.0版本开始,使用一种“time-based”的方式。3.0版本之前,是一种“A.B.C.D”的格式。这些年里,前两个数字A.B即“2.6”保持不变,C随着新版本的发布而增加,D代表一些bug修复、安全更新、添加新特性和驱动的次数。3.0版本之后是“A.B.C”格式,B随着新版本的发布而增加,C代表一些bug修复、安全更新、新特性和驱动的次数。

   第三种方式中不再使用偶数代表稳定版,奇数代表开发版这样的命名方式。举个例子:3.7.0代表的不是开发版,而是稳定版!

(2)、Linux发行版

Linux主要作为Linux发行版(通常被称为”distro”)的一部分而使用。这些发行版由个人、松散组织的团队、以及商业机构和志愿者组织编写。它们通常包括了其他的系统软件和应用软件,以及一个用来简化系统初始安装的安装工具,和让软件安装升级的集成管理器。大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。一个典型的Linux发行版包括:Linux内核、一些GNU程序库和工具、命令行shell、图形界面的X Window系统和相应的桌面环境,如:KDE或GNOME,并包含数千种从办公套件、编译器、文本编辑器到科学工具的应用软件。

由于发展的Linux公司实在太多了,例如著名的Red Hat、OpenLinux、Mandrake 、Debian、SuSE等。所以很多人都很担心,如此一来每个 distribution(安装套件)是否都不相同呢?这就不需要担心了,由于各个distribution都是架构在Linux Kernel下来发展属于自己公司风格的distribution,因此大家都遵守Linux Standard Base ( LSB 的规范,也就是说,各个distribution其实都差不多,用到的都是Linux Kernel,只是各个distribution里面所使用的各套件可能并不完全相同而已)。

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

(0)
tangfeifeitangfeifei
上一篇 2016-10-14 11:36
下一篇 2016-10-14 11:36

相关推荐

  • 安装CentOS 6.9与CentOS7.3

    今天学习了如何安装CentOS6.9与CentOS7.3. 安装CentOS6.9 首先打开虚拟机如下如所示: 然后点击创建新的虚拟机: 选择典型,然后点击下一步: 一般会选择稍后安装操作系统,然后点击下一步 客户机操作系统有很多,因为今天只安装CentOS 所以选择Linux 版本则选择CentOS 64 位 (因为CentOS7以上没有32位版本,只有C…

    2017-07-14
  • N25第六周作业

    vim 是vi编辑的升级版,同样有三种工作模式:编辑、命令和一般 模式 #:指定行号位置 #,#:指定多少行到多少行 #,+#:指定范围,多少行开始,加#行 $:最后一行 .:当前行 .,$-1,当前行到倒数第二行 1,$:全文 %:全文 /从上往下,?:从下往上 搜索 /pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行 s/要查找的内容…

    Linux干货 2017-01-11
  • shell脚本

    最近学了shell脚本,自己感觉挺有难度的,今天就简单整理一些shell脚本的练习和作业 练习:    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。#!/bin/bash# ———&#…

    2017-08-05
  • 操作系统图形界面发展史(1981-2009)

    注意,本文这罗列了从1981年以来有重大意义的操作系统的图形界面。 首先,先介绍两个网站: http://www.guidebookgallery.org/ 如果你比较关注图形化UI的设计, 可以上这个网站上看看。 http://toastytech.com/guis/index.html 这是一个操作系统图形界面收集的网站,上面几科包括…

    Linux干货 2016-05-17
  • 脚本编程之变量

    简单跟大家介绍一下脚本编程中的变量。 大家都知道,脚本编程,主要由三个部分组成,一是命令,二是变量,三是控制语句。 变量的使用,可以让脚本变得更加简洁,高效。 我们主要简单讲一下变量的概念,变量的类型,变量的种类,不同种类的变量是如何定义的,变量的基本操作,以及变量的配置文件。 了解了这些,我们还可以聊一聊变量的高级操作。 首先,什么是变量? 通俗一点讲:变…

    Linux干货 2017-04-17
  • 网络管理

                 网络管理 一、 OSI七层模型   OSI七层模型结构如下            OSI七层模式基本只是用于我们学习时候使用,因为其将每层协议定义的太规范,导致缺乏灵活性,所以现实中仍然以tcp/ip四层模型为主,OSI七层模型从下至上依次为:      1、 物理层( physical layer)   物理层是通过网络介质(如网…

    Linux干货 2016-09-06