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
下一篇 2016-10-14

相关推荐

  • 我的第一篇博客

    Hello,大家好,以后我也是博客中的一员了,希望能和大家共同进步。

    Linux干货 2017-07-11
  • ​N22-℡浮生.若夢 ╮第五周作业

    1、显示当前系统上root、fedora或user1用户的默认shell; ~]# grep -E "^(root|user1|fedora)" /etc/passwd |cut -d: -f1,7 root:/bin/bash user1:/bin/bash fedo…

    Linux干货 2016-10-09
  • PHP中引用的详解(引用计数、写时拷贝)

    《PHP5中文手册》内容中"引用的解释"一文的摘要: 1. PHP中引用的特性 PHP中引用意味着用不同的名字访问同一个变量内容,引用不是C的指针(C语言中的指针里面存储的是变量的内容,在内存中存放的地址),是变量的另外一个别名或者映射。注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是 Uni…

    Linux干货 2015-04-10
  • 第一天

    今天讲了很多

    Linux干货 2018-03-26
  • 定时任务的完成contab

    采用crontab来完成 利用crontab来定时执行任务大致有如下三步: 1、编写shell脚本 2、利用crontab加入到定时任务队列 3、查看作业完成情况 一、如何建立shell脚本 Linux下有很多不同的shell,但我们通常使用bash(bourne again shell)进行编程,因为bash是免费的并且很容易使用 程序必须以下面的行开始(…

    Linux干货 2016-08-11
  • 网络配置之-nmcli

    使用nmcli配置网络 NetworkManager是管理和监控网络设置的守护进程,设备既就是网络接口,连接是对网络接口的配置,一个网络接口可以有多个连接配置,但同时只有一个连接配置生效。 1 使用nmcli配置主机名 CentOS6 之前主机配置文件:/etc/sysconfig/network CentOS7主机名配置文件:/etc/hostname,默…

    Linux干货 2017-05-07