一、Linux是什么及发展历史

174 阅读5分钟

一、Linux是什么

Linux就是运行在计算机上的一组软件。

  1. Linux软件是哪种性质的软件,是操作系统还是应用程序?
  2. Linux可以在哪些种类的计算机硬件上运行?
  3. Linux源自哪里?
  4. 为什么使用Linux不用花钱?

1.1 Linux是操作系统

计算机主机由一堆硬件组成,为了有效控制这些硬件资源,于是就有操作系统的产生,操作系统除了控制硬件资源外,还提供了一整组系统调用接口给程序员使用。

硬件->内核->系统调用->应用程序

其中内核+系统调用组成了操作系统.

由于不同硬件的功能函数并不相同,所以同一个操作系统是无法在不同硬件平台上面运行的!

不过由于Linux是开源的操作系统,所以它的程序代码可以被修改成适合在各种硬件架构上面运行,也就是说Linux是具有可移植性

1.2 Linux之前,Unix的历史

1.2.1 1960年Multics系统

1969年以前,一个伟大的梦想——Bell,MIT与GE的'Multics系统',当时计算机架构很难使用,且一般人接触不到(军事、高科技用途),运行速度不快,操作方式简单,输入设备是读卡机,输出设备是打印机,用户也无法与操作系统互动(批处理操作系统),当时写程序是将程序信息在读卡纸上吗打洞(类似二进制那样)。

1960年初期,麻省理工学院(MIT)发展了兼容分时系统,可以提供数个终端(Terminal)以连接主机,这个系统是近代操作系统的始祖,就是CPU在不同用户工作间切换。

1.2.2 1969年Unics系统

Ken Thompson(肯·汤姆逊)的 Unics系统

Multics系统计划失败后,其中的参与者 Ken Thompson 因为自己的需要,以汇编语言(Assembler)写出了一组内核程序,及一个小小的文件系统,这就是Unix的原型。当时也戏称这个系统叫做Unics

其实 Thompson 就是为了移植一款名为'太空旅客'的游戏而写的这个内核

Thompson 这个文件系统有两个重要概念:

  • 所有的程序或系统设备都是文件;
  • 不管程序本身还是附属文件,所写的程序只有一个目的,且要有效的完成目标;

1.2.3 1973年UNIX系统

1973年UNIX 正式诞生,Ritchie 等人用C语言写出第一个正式的UNIX内核 由于Unics系统使用汇编语言写的,所以安装到不同的机器都需要重新编写汇编语言,很不方便,所以 Thompson 和 Ritchie 就使用 C语言重新改写了Unics的内核,最后命名并发行了 UNIX 的正式版本。

1.2.4 1977年BSD系统

1973年后UNIX与学术界合作,主要接触的就是伯克利大学(Berkeley),伯克利大学的教授 Bill Joy 取得Unix源码后,修改成适合自己机器的版本,叫做 Berkeley Software Distribution(BSD)。

BSD是UNIX一个很重要的分支

1.2.5 1979年System V

操作系统内核必须要和硬件配合,与提供及控制硬件的资源进行良好的工作。早期生产计算机硬件的公司没有"协议"一说,所以产出的硬件自然不同,因此它们必须要为自己的计算机硬件开发适合的 UNIX 系统。各个公司开发的 UNIX 系统无法在其他硬件架构下工作。

所以早先的 UNIX 只能与服务器或大型工作站划上等号。

但 1979 年 AT&T(贝尔实验室所在的公司,UNIX起源的实验室),推出了 System V第七版的 UNIX 后,这一版支持 x86 架构的个人计算机,还特别收回了 UNIX 版权。

1.2.6 1984年GNU计划

1984年斯托曼开始发起GNU计划,这个计划的目的是:建立一个自由、开放的UNIX操作系统(FREE UNIX)

为了能让GNU计划出现在大众的视野里,斯托曼写了相当著名的GNU C Compiler(gcc),免费使用,还有后来的glic,Bash shell(这些在1990年完成的)

1.2.7 1985年GNU的通用公共许可证

为了避免GNU所开发的自由软件被其他人利用成为专利软件,斯托曼与律师草拟了著名的通用公共许可证(General Public License,GPL)

虽然GNU有很多重要的软件,后来的软件开发者可以基于这些软件进行开发,但是GNU最初的构想是建立一个自由、开放的UNIX操作系统(FREE UNIX),即使有了这些优秀的程序,但是仍旧没有一个自由的UNIX内核,也就是说你们这些优秀的软件还是要到人家有专利的UNIX平台上去运行。

1.2.8 1986年Minix系统

1979年 AT&T 收回UNIX版权后,对于在学校教授 UNIX 内核的教授影响最大,因为拿不到内核源代码。

既然1979年 UNIX 第七版可以移植到 Intel 的 x86 架构上,那么这意味着可以将 UNIX 改写并移植到 x86 上面。

Tanenbaum 教授自己动手写了Minix系统,且因为怕会有版权问题,所以没有参考 UNIX 内核源码,且与 UNIX 兼容。

1.2.9 1991年Linux系统

芬兰赫尔辛基大学的Linus Torvalds在BBS上宣称,以bash、gcc等GNU工具写了一个小小的内核程序,该程序可以在Intel的386机器上运行。

1.3 Linux与前文提到的Minix

Torvalds 为了自己能搞一个 Unix 玩玩,就发现了 Minix,于是买了 Intel 386的个人计算机,安装了 Minix操作系统

1.4 Linux兼容Unix

为了让Linux兼容Unix,Torvalds参考标准的 POSIX 规范

POSIX是可移植操作系统接口(Portable Operation System Interface)的缩写,重点在于规范内核与应用程序之间的接口,这是由美国电器与电子工程学会(IEEE)所发布的一项标准。

这个正确的决定让Linux在起步的时候体质就比别人优秀。