Linux简介

UNIX的历史:

  早期,计算机的输入设备只有读卡机,输出设备只有打印机,用户也无法与操作系统互动(批处理型操作系统).

  60年代初期,麻省理工学院(MIT)发展了所谓的兼容分时系统(CTSS),可以让数个终端同时连线使用大型主机。

  1965年,为了强化大型主机的作用,贝尔实验室、麻省理工学院、通用电器公司共同发起了“Multics计划”,目的是可以实现提供300个以上的终端用于联机使用的目标。

  1969年,贝尔实验室中参与了“Multics计划”的Thompson以汇编语言写出了一组内核程序,被朋友戏称为:Unics(单一的意思),这个系统就是UNIX的原型。

    这个系统的核心概念:1.所有的程序或系统设备都是文件;2.不管程序本身还是附属文件,所写的程序只有一个目的,且要有效地完成目标。

  1970年,由于Unics太好用了,在贝尔实验室广为流传,但使用汇编语言编写限制了它的使用,故而Thompson和Ritchie合作想将其改以高级语言来编写。

    Thompson以BCPL语言为基础,设计出很简单且很接近硬件的B语言,并且用B语言写了第一个UNIX操作系统。

  1973年,当时的B语言所编译出来的内核性能不是很好,故Ritchie在C语言的基础上设计出了C语言,取的是BCPL的第二个字母。

    再以C语言重新改写并编译了Unics的内核,最后命名并发行了UNIX的正式版本。

  1977年,贝尔实验室与加州伯克利大学合作,伯克利大学的的Bill Joy在取得了UNIX的内核源代码后,着手修改成适合自己机器的版本,并且同时增加了很多工具软件与编译器,

    最终将它命名为BSD(Berkeley Software Distribution),Bill Joy同时也是SUN公司的联合创办人之一。

  1979年,由于用C语言编写的UNIX具有高度的可移植性与强大的性能,加上当时并没有版权的纠纷,所以让很多商业公司开始了UNIX系统的开发。

    贝尔实验室的母公司AT&T推出System V第七版UNIX后,UNIX系统就可以在个人计算机上使用了。

  1984年,因为AT&T公司出于商业的考虑,特别提到“不可对学生提供源代码”的严格限制,故Tanenbanm教授用时两年自己动手写了Minix这个UNIX-like的内核程序。

    由于Minix不是免费的,不能在网上下载,要通过购买磁盘/磁带才行,而且Tanenbanm教授本身也忙,只想将其用于教育,故传播速度并不快。

  同为1984年,著名黑客Stallman由于之前使用麻省理工大学的专利软件Lisp操作系统,但无法共享也无法在不同机器间进行移植,故开始接触UNIX系统。

    为了将Lisp上已经写完的软件移植到UNIX系统上,他发起了GNU计划(GNU's Not UNIX),目的是:建立一个自由、开放的UNIX系统,并在上面编写免费软件。

    当时最流行的是C语言,市面上C语言编译器版本众多,但都是专利软件,故Stallman通过FSF基金会的帮助,编写出了GNU CCompiler(GCC)。

  1985年,为了避免GNU所开发的自由软件被其他人所利用而成为专利软件,Stallman与律师草拟了有名的通用公共许可证(GPL),并且称呼它为copyleft(相对于专利软件的copyright)。

    GNU开发的比较出名的软件:Emacs(程序编辑器)、GCC(C语言编译器)、glibc(C函数库)、Bash shell。

  1988年,有鉴于图形用户接口(GUI)的需求日益高涨,麻省理工学院与其他第三方首次发表了X Window System,并成立了XFree86组织。

    因为26个字母中W的下一个是X,所以X Window是为了区分Windows系统的下一代。

  1991年,芬兰赫尔辛基大学的Torvalds在BBS上面宣称他以bash、gcc等GNU工具写了一个内核程序,可以在Intel的386机器上运行,这就是Linux的原型。

 

 Linux的发展:

  Linus Torvalds的外祖父是赫尔辛基大学的统计学家,从小就将其带在身边来管理一些微计算机。此期间,Torvalds接触了汇编语言。

  在进入赫尔辛基大学并选读了计算机科学系后,Torvalds拥有一台UNIX系统主机,可同时提供16个终端。(只有主机有运算功能,终端只负责提供输入和输出)

  但是,这种主机很难满足Torvalds的需求,这时候,他知道有一个类似UNIX的系统,并且与UNIX完全兼容,还可以在Intel 386机器上面运行。

  于是购买了一台Intel 386并安装了Minix,并开始了内核程序的编写,利用GNU计划提供的bash环境和gcc编译器,写出了一个小小的操作系统。

  同时,他希望系统能得到更好的完善,就将这个内核放置在网络上供大家下载,并在BBS上贴了一则消息,希望得到更多人的建议和反馈。

  因为Torvalds放置内核的那个FTP网站的管理员将其放置的目录起名为Linux(意即Linus的UNIX),从此,大家便称这个内核为Linux。

 

  这时,又遇到一个问题,UNIX上的很多软件无法在Linux上运行。有两种做法:1.修改软件;2.修改Linux系统。

  Torvalds选择了第二种做法,并开始参考标准的POSIX规范(可移植操作系统接口)。

  这个正确的决定让Linux在起步的时候体质就比别人优秀,因为POSIX标准主要是针对UNIX与一些软件运行时的标准规范。

  

  Linux能够成功,除了Torvalds个人的理念与力量其实还有个最重要的团队,我们称之为“虚拟团队”。

  正因为这些素未谋面的广大志愿者的参与,在1994年终于完成了Linux的内核正式版,这一版同时还加入了X-Windos System的支持。

  (另外,因为Torvalds小时候被企鹅咬了一口,对此一直念念不忘,在大家要他想一个Linux的吉祥物时,他想到了使用企鹅。)

  

Linux的内核版本:

  举例:3.10.0-123.e17.x86-64

  主版本.次版本.发布版本-修改版本

  早期:(2.6.x版本以前):

    主、次版本为奇数:开发中版本。

    主、次版本为偶数:稳定版本。

  3.0版本之后:

    主线版本:每年2~3月提出。

    长期维护版本:旧版本在新版本出现后,依旧对此旧版本进行持续维护。

 

Linux的发行版:

  Linux的出现让GNU计划放下了心里的一块大石头,因为GNU一直以来就是缺乏内核程序,导致它们的GNU自由软件只能在其他的UNIX上面运行。

  不光GNU的软件大多以Linux为主要操作系统来进行开发,许多其他的自由软件团队,例如postfix、vsftpd、apache等也都有以Linux为开发测试平台的计划出现。

  这样一来,在Linux上运行的软件也越来越多。因此,“Linux + 各种软件”就是一个相当完整的操作系统。

  但是,早期的Linux都是由黑客工程师所开发维护,并不有考虑到一般用户的能力。

  为了让用户能够接触到Linux,很多的商业公司和非营利团体,就将Linux内核(及其工具)与可运行的软件整合起来,加上自己具有创意的工具程序。

  这个“内核 + 软件 + 工具 + 可完全安装程序”的东西,我们称之为Linux distribution,一般中文翻译成Linux发行版,或Linux发布商套件等。

  目前,Linux的发行版分为以下三大家族:

    1.红帽公司开发的RedHat Enterprise Linux

      它是全世界内使用最广泛的Linux系统,衍生版本有:CentOS、Fedora.

    2.纯社区维护的操作系统Debian

      具有稳定性、安全性强的特点,并提供了免费的基础支持,衍生版本主要有:Ubuntu

    3.德国 SuSE Linux AG公司发行维护的SUSE

      衍生版本:opensuse

  

Linux当前应用的角色:

  1.企业环境的应用

    • 网络服务器
      这是Linux当前最热门的应用,比如网站服务器、邮件服务器、文件服务器等。
    • 关键任务的应用(金融数据库、大型企业网络环境)
    • 学术机构的高性能计算任务  

  2.个人环境的使用 

    • 桌面计算机
      为了强化桌面计算机的使用率,Linux与X-Window System结合了。(X-Window System只是Linux上的一个软件)
    • 手持系统(PDA、手机)
      Android其实是Linux内核的分支,只是专门用来针对手机或平板这类的ARM机器所设计的。
    • 嵌入式系统
      路由器、交换机、防火墙、家电产品等,操作系统是直接嵌入于产品当中。 

  3.云端应用

    • 云程序
      用来管理虚拟机的系统
    • 终端设备
      树莓派与香蕉派,其实就是一台小型的计算机,加上USB键盘和鼠标、HDMI屏幕,就可以让小朋友学习程序语言的环境。

  

       

posted @ 2019-07-18 17:00  benon  阅读(601)  评论(0编辑  收藏  举报