1. Linux简介
Linux可以有狭义和广义两种定义。狭义来说,Linux实际上指Linux kernel (内核)。内核负责管理硬件,并为上层应用提供接口。而广义来说,是指以Linux kernel为基础的,包括OS和各种应用在内的各个Linux版本(distribution)。尽管看起来版本眼花缭乱,但实际上,各个版本之间也只是大同小异,其差别往往体现在客户群、升级维护和界面等方面。
Linus Torvalds是Linux之父。他根据Minix系统的代码,参照UNIX系统的设计,写出了第一给Linux内核。Linus的创举在于将Linux内核的代码开源。后来,Linux内核和一套开源的应用软件GNU结合,共同采取开源协议,并迅速发展成熟。我们可以随意地使用和修改开源代码,但以此为基础开发的程序也要根据开源协议公开。Linux和GNU的开源性吸引了大批优秀的程序员参与到Linux相关的开发中。
从哲学和设计理念上,Linux与其他的UNIX版本相类似,并使用类似的接口。我们可以通过学习Linux的基本概念和机制来了解其它UNIX系统,比如Solaris, FreeBSD,还有基于FreeBSD的苹果公司的Mac OS。曾经Windows的兴起曾经让许多人认为UNIX将最终被Windows取代,但如今看到Linux和苹果产品的兴盛,我很感慨于UNIX体系的力量。
Linux的有如下比较重要的机制: 用于储存数据以及管理权限的文件系统,用于IO的文本操作API,用于管理操作的进程,用于实现多任务运行的多线程,以及进程间通信(我将信号和网络也都归入这一类中)。
特别推荐下面的一些文章,以便你对Linux有一个概观:
大教堂和市集(The Cathedral and the Bazaar),作者Eric Raymond
可以说是为Linux正名的一篇文章,深入分析Linux成功的原因。你也可以通过名字来搜索中文翻译版本。
该作者的其他文章也非常值得一读。
UNIX传奇,来自酷壳,作者陈皓
(作者博客内容丰富,又容易读,非常值得订阅。)
2. Linux的厂商版本
在Linux内核基础上,我们还有许多厂商版本。即使有了内核和GNU软件,Linux的安装和编译并不是简单的工作,Linux厂商就是瞄准了这个市场。这些厂商会在Linux内核的基础上,结合自己开发的软件,帮助用户安装和使用Linux,并提供技术支持。由于在服务器领域,Linux操作系统远远领先于Windows系统,而这些被政府部门、银行或者大学拥有的服务器往往承担很重要的信息处理和IO (input/outpt) 工作,所以尽管Linux开源,厂商还是可以根据其提供的商用软件和技术支持获得丰厚的利润。
(IBM是Linux设备最大的供应商,同时它的咨询业务很大一部份也来源于提供Linux相关的支持。我们所熟知的Android操作系统,也算是Google提供的一个厂商版本。)
我们这里主要介绍在PC上比较流行的Linux厂商版本:
1. 红帽系列
2. SUSE系列
3. Debian系列
此外,还有如下一些版本:
(参考 Linux Administration Handbook, wikipedia)