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. 红帽系列
Red Hat linux: 大名鼎鼎的红帽,现在已经完结。以此为基础有以下分支:
Red Hat Enterprise: (www.redhat.com) 这个是企业级的linux,主要面向服务器。作为商业版,有比较好的配套软件和技术支持。RH的教材也堪称经典。
Fedora: (http://fedoraproject.org) 由社区维护,去除了一些商业软件。红帽实际上赞助了这个项目,以便以此作为技术测试平台。
CentOS: (www.centos.org) 这个版本不来自红帽的公司,是收集红帽公开的源码组成的免费版本,由社区维护,和红帽完全兼容。版本号升级较慢,但有持续的技术支持,所以适合于不愿意频繁升级的情形,鸟哥中就推荐以CentOS来建站。
2. SUSE系列
SUSE Linux Enterprise: (www.suse.com) 和红帽商业版类似,是德国公司制作的,据说在欧洲比较流行,但我欧洲的朋友表示没怎么听说过。SUSE系列比较有特色的是YAST2,就是用来设置Linux的界面,对初级管理员比较方便。
openSUSE: (www.opensuse.org) SUSE的免费版本。以前SUSE不是很推这个免费版本,支持不好。现在似乎态度大大转变。就我个人的使用体验来说,还是觉得社区支持不足。
3. Debian系列
Debian: (www.debian.org) 完全免费,社区维护的Linux版本,有很大的用户群,所以遇到问题,基本都可以找到社区用户的支持。
Ubuntu: (www.ubuntu.com) 由一个基金提供支持的免费Linux版本。 继承自Debian。界面很友好。发邮件过去,还会送你免费安装CD (不知道现在还有没有)。现在的版本加载的东西有些多,速度有些慢。写《大教堂和市集》的Eric Raymond说它是最好的Linux。
Mint (http://www.linuxmint.com), 基于ubuntu。它提供了更加丰富的预装应用,以减少用户搜索并安装应用的麻烦。其使用的应用版本比较新,可能不是很稳定。
此外,还有如下一些版本:
Gentoo (www.gentoo.org) 基于源码的版本,提供给用户很大的自由度。为用户提供大量应用程序的源码,可以在用户的系统上重新编译建造。需要一定的系统配置的知识。
ArchLinux (www.archlinux.org),推崇简洁,避免不必要和复杂的修改,是一个轻便灵活的版本。其配置文件有良好注释。
Mandriva (www.mandriva.com) 一个很方便用户使用的版本,其目标是使得新用户更容易使用linux。
Slackware (www.slackware.com) 稳定,基本。它的只包含稳定版本的应用程序。对于初级用户不是很友好。
TurboLinux (www.turbolinux.com) 在亚洲比较流行。商业版本,提供技术支持和咨询服务。
(参考 Linux Administration Handbook, wikipedia)