# Linux 是什么?

# Linux 之前 UNIX 的历史

# 1969 年以前:分时操作系统(Compatible Time-Sharing System,CTSS)

让大型主机通过提供多个终端机(Terminal)连接进入主机,从而利用主机资源进行工作, 实际上是 CPU 在每个用户的工作之间进行切换,在当时是划时代的技术

# 1969 年:UNIX 原型

Thompson 在 1969 年 8 月份开始,经过 4 个星期的奋斗,以汇编语言(Assembler)写出了一组内核程序, 包括内核工具以及一个小的文件系统

该系统有两个重要的概念:

  1. 所有的程序或系统装置都是文件
  2. 不管构建编辑器还是附属文件,所写的程序只有一个目的,就是有效地完成目标

这些概念在后来对于 Linux 的开发有相当重要的影响

# 1973 年:UNIX

使用 C 语言编写出第一个正式 UNIX 内核,高级的 C 语言与硬件相关性没有那么大了,所以比较容易移植到不同的机器上

# 1979 年:System V 架构与版权声明

unix 的高度可移植性与强大的性能,而且还是开源的,无版权纠纷,很多商业公司开始了 unix 操作系统的开发, 计算机硬件生产厂商还没有「协议」概念,所以各自生产的硬件只支持自家的操作系统,而且没有硬件厂商支持个人计算机。

所以当时的 unix 只能与服务器(server)或则是大型工作站划等号。

System V 架构的 unix 出来之后,支持了 x86 架构的个人计算机

# 1984 年:GNU 项目与 FSF基金会成立

史托曼开始 GNU 项目,要创建一个自由、开放的 UNIX 系统,但是创建一个操作系统谈何容易, 就先开始编写 unix 的软件,发现任何软件都需要先编译成二进制文件(Binary Program), 因此开始编写 C 语言的编译程序,哪就是现在相当著名的 GNU C Compiler(GCC)

还成立了自由软件基金会(Free Software Foundation),并最终完成了 GCC 的开发, 还编写了许多可以被调用的 C 函数库(GNU C Libary),以及可以被用来操作操作系统的基本接口 bash shell, 这些都在 1990 年左右完成

# GUN 的通用公共许可证

到了 1985 年为了避免 GNU 所开发的自由软件被他人利用而成为专利软件,所以草拟了著名的通过公共许可证 (General Public License,GPL)

# 1988 年 图形接口 XFree86 项目

图形用户接口(Graphical User interface ,GUI)的需求日益加重,出现了 X Window System.

XFree86 其实是 X Window System + Free + x86 的整合名称。而这个 Xfree86 的 GUI 在 Linux 1.0 版本的内核中被集成在其中

为什么称图形用户界面为 X 呢?因为由英文单字来看,Window 中的字母 W 下面接着就是 X,意指 Window 的下一版! 需要注意的是,X Window 并不是 X Windows

# 1991 年:Linux 出世

芬兰大学生 Linus Torvalds 以 bash、gcc 等工具编写了一个小小的内核程序,这个内核程序可以在 intel 的 386 机器上面运行, 从此开始了 Linux 的不平凡旅程

# 关于 GNU 项目

# 自由软件的活动

也就是开源,把源代码分享出来,成为自由软件(Free Software) 运动

# 自由软件的版权 GNU GPL

为了避免自己开发出来的开源软件拿去做成商业软件,就会挂上 GPL 的版权声明

为什么要称为 GUN 呢? 其实 GUN 是 GNU's Not UNINX 的缩写,意思是说 GUN 并不是 UNIX

# 自由(Free)的真谛

Free Software(自由软件)是一种自由的权利,并非是「价格」。 举例来说,你可以拥有自由呼吸的权利,但是这并不代表你开源导出喝免费的啤酒, 也就是说自由软件的重点病不是指「免费」的,而是指具有「自由度」(freedom)的软件: 用户可以自由执行、复制、再发行、学习、修改与强化自由软件

因此,你拿到的软件可能原先只能在 UNIX 上跑,但是经过源码的修改之后,可以在 LINUX 或 Windows 上运行, 一个软件挂上 GPL 后,它就成为了一个自由软件,具有如下特性:

  • 取得软件与源码:你可以根据自己的需要来执行这个自由软件
  • 复制
  • 修改
  • 再发行:修改或的程序再自由发行
  • 回馈:你取之开源,就应该回馈于开源

但是使用 GPL 之后,你不能做以下事情:

  • 修改授权:不能将一个 GPL 授权的软件修改之后,取消 GPL 授权
  • 单纯销售:GPL 是互助互利的,不能占为己有,但是你可以销售软件,并搭配售后服务