1、从UNIX到LINUX
在目前主流的服务器端操作系统中,UNIX诞生于20世纪60年代末,Windows诞生于20世纪80年代中期,Linux诞生于20世纪90年代初,可以说UNIX是操作系统中的“老大哥”。
1.1、Linux简史
Linux内核最初是由李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版UNIX操作系统Minix太难用了,于是决定自己开发一个操作系统。第一个版本于1991年9月发布,当时仅有10000行代码。
李纳斯·托瓦兹没有保留Linux源代码的版权,公开了代码,并邀请他人一起完善Linux。与Windows及其他有专利权的操作系统不同,Linux开放源代码,任何人都可以免费使用它。
据估计,现在只有2%的Linux核心代码是由李纳斯·托瓦兹自己编写的,虽然他仍然拥有Linux内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的Linux,笔者更倾向于说是由李纳斯·托瓦兹和后来陆续加入的众多Linux爱好者共同开发完成的。
李纳斯·托瓦兹无疑是这个世界上最伟大的程序员之一,何况,他还搞出了全世界最大的程序员交友社区GitHub(开源代码库及版本控制系统)。
关于Linux Logo的由来是一个很有意思的话题,它是一只企鹅。
企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家,任何国家都无权将南极洲纳入其版图。Linux选择企鹅图案作为Logo,其含义是:开放源代码的Linux为全人类共同所有,任何公司无权将其私有。
1.2、UNIX与Linux的关系
二者的关系,不是大哥和小弟,“UNIX是Linux的父亲”这个说法更恰当。之所以要介绍它们的关系,是因为要告诉读者,在学习的时候,其实Linux与UNIX有很多的共通之处,简单地说,如果你已经熟练掌握了Linux,那么再上手使用UNIX会非常容易。二者也有两个大的区别:其一,UNIX系统大多是与硬件配套的,也就是说,大多数UNIX系统如AIX、HP-UX等是无法安装在x86服务器和个人计算机上的,而Linux则可以运行在多种硬件平台上;其二,UNIX是商业软件,而Linux是开源软件,是免费、公开源代码的。
Linux受到广大计算机爱好者的喜爱,主要原因有两个:一是它属于开源软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿使用,无约束地继续传播;二是它具有UNIX的全部功能,任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从Linux中获益。
近年来,Linux已经青出于蓝而胜于蓝,以超常的速度发展,从一个丑小鸭变成了一个拥有庞大用户群的真正优秀的、值得信赖的操作系统。历史的车轮让Linux成为UNIX最优秀的传承者。
1.3、UNIX/Linux系统结构
UNIX/Linux系统可以粗糙地抽象为3个层次(所谓粗糙,就是不够细致、精准,但是便于初学者抓住重点理解),如下图所示。
底层是UNIX/Linux操作系统,一般称之为系统内核(Kernel);中间层是Shell层,即命令解释层;高层则是应用层。
- 内核层:内核层是UNIX/Linux系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。
- Shell层:Shell层是与用户直接交互的界面。用户可以在提示符下输入命令行,由Shell解释执行并输出相应结果或者有关信息,所以我们也把Shell称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。
- 应用层:应用层提供基于X Window协议的图形环境。X Window协议定义了一个系统所必须具备的功能(就如同TCP/IP是一个协议,定义软件所应具备的功能),任何系统能满足此协议及符合X协会其他的规范,便可称为X Window。现在大多数的UNIX系统上(包括Solaris、HP-UX、AIX等)都可以运行CDE(Common Desktop Environment,通用桌面环境,是运行于UNIX的商业桌面环境)的用户界面;
2、Linux详解
接下来我们介绍一下Linux系统的优缺点、应用领域和发行版本。
2.1、Linux优势
2.1.1、大量的可用软件及免费软件
Linux系统上有着大量的可用软件,且绝大多数是免费的,比如声名赫赫的Apache、Samba、PHP、MySQL等,构建成本低廉,是Linux被众多企业青睐的原因之一。当然,这和Linux出色的性能是分不开的,否则,节约成本就没有任何意义。
但不可否认的是,Linux在办公应用和游戏娱乐方面的软件相比Windows系统还很匮乏,所以,即便明哥和超哥打游戏、看影片用的也是Windows,至于Linux,就把它用在擅长的服务器领域吧。
2.1.2、良好的可移植性及灵活性
Linux系统有良好的可移植性,它几乎支持所有的CPU平台,这使得它便于裁剪和定制。我们可以把Linux放在U盘、光盘等存储介质中,也可以在嵌入式领域广泛应用。
2.1.3、优良的稳定性和安全性
著名的黑客埃里克·雷蒙德(Eric S. Raymond)有一句名言:“足够多的眼睛,就可让所有问题浮现。Linux开放源代码,将所有代码放在网上,全世界的程序员都看得到,有什么缺陷和漏洞,很快就会被发现,从而成就了它的稳定性和安全性。
2.1.4、支持几乎所有的网络协议及开发语言
经常有初学的朋友问我,Linux是不是对TCP/IP协议支持不好、是不是Java开发环境不灵之类的问题。前面在UNIX发展史中已经介绍了,UNIX系统是与C语言、TCP/IP协议一同发展起来的,而Linux是UNIX的一种,C语言又衍生出了现今主流的语言PHP、Java、C++等,而哪一个网络协议与TCP/IP无关呢?所以,Linux对网络协议和开发语言的支持都很好。
2.2、Linux的应用领域
Linux似乎在我们平时的生活中很少看到,那么它应用在哪些领域呢?其实,在生活中随时随地都有Linux为我们服务着……
2.2.1、网站服务器
世界知名的网站google.com、qq.com、新浪、网易等,无一例外地应用着Linux。就连你输入microsoft.com,会发现微软的下载站等也在使用Linux。
为什么这么多大型网站会采用Linux而不使用UNIX或Windows?其中一个重要的原因就是使用Linux成本较低,而UNIX和Windows都是商业软件;另一个更重要的原因是出于安全和性能方面的考虑。
2.2.2、电影工业
在过去,SGI图形工作站支配了整个电影产业,20世纪90年代的影片《侏罗纪公园》中生动的恐龙正是从SGI上孕育出来的,SGI的操作系统Irix就是UNIX的一种。当时所有动画制作公司都得看SGI的脸色。然而,从1997年开始,Linux开始全面占领好莱坞,娱乐业巨擘迪士尼宣布全面采用Linux,宣告了SGI时代的没落,Linux时代走向辉煌。
2.2.3、嵌入式应用
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可定制,适用于各种应用场合,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统及用户的应用程序4部分组成,用于实现对其他设备的控制、监视或管理等。嵌入式系统几乎涵盖了生活中的所有电器设备,如手机、平板电脑、电视机顶盒、游戏机、智能电视、汽车、数码相机、自动售货机、工业自动化仪表与医疗仪器等。
不得不提的是安卓系统(Android)。安卓是基于Linux的开源系统,主要适用于便携设备,如智能手机和平板电脑等,是Google公司为移动终端打造的真正开放和完整的移动软件。在如今的智能手机操作系统市场上,安卓系统的占有率已然是傲视群雄。
3、Linux的发行版本
新手往往会被Linux众多的发行版本搞得一头雾水,我们首先来解释一下这个问题。
从技术上来说,李纳斯·托瓦兹开发的Linux只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,但一个内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将Linux内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了Linux的发行版本。
在Linux内核的发展过程中,各种Linux发行版本起了巨大的作用,正是它们推动了Linux的应用,从而让更多的人开始关注Linux。因此,把Red Hat、Ubuntu、SUSE等直接说成Linux其实是不确切的,它们是Linux的发行版本,更确切地说,应该叫作“以Linux为核心的操作系统软件包”。Linux的各个发行版本使用的是同一个Linux内核,因此在内核层不存在什么兼容性问题,每个版本有不一样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。
Linux的发行版本可以大体分为两类:一类是商业公司维护的发行版本;另一类是社区组织维护的发行版本。前者以著名的Red Hat为代表,后者以Debian为代表。很难说大量Linux版本中哪一款更好,每个版本都有自己的特点。下面为大家介绍4款我国国内应用较多的Linux发行版本。
3.1、Red Hat Linux
Red Hat(红帽公司)创建于1993年,是目前世界上资深的Linux厂商,也是最获认可的Linux品牌。
Red Hat公司的产品主要包括RHEL(Red Hat Enterprise Linux,收费版本)和CentOS(RHEL的社区克隆版本,免费版本)、Fedora Core(由Red Hat桌面版发展而来,免费版本)。Red Hat是在我国国内使用人群最多的Linux版本,资料丰富,如果你有什么不明白的地方,则容易找到人来请教,而且大多数Linux教程是以Red Hat为例来讲解的。
Red Hat官方网站:http://www.redhat.com。
CentOS官方网站:http://www.centos.org。
3.2、Ubuntu Linux
Ubuntu基于知名的Debian Linux发展而来,界面友好,容易上手,对硬件的支持非常全面,是目前最适合做桌面系统的Linux发行版本,而且Ubuntu的所有发行版本都免费提供。
Ubuntu的创始人Mark Shuttleworth是一个非常具有传奇色彩的人物。他在大学毕业后创建了一家安全咨询公司,1999年以5.75亿美元被收购,他由此一跃成为南非最年轻有为的本土富翁。作为一名狂热的天文爱好者,Mark Shuttleworth于2002年自费乘坐俄罗斯联盟号飞船,在国际空间站中度过了8天的时光。之后,Mark Shuttleworth创立了Ubuntu社区,2005年7月1日建立了Ubuntu基金会,并为该基金会投资1000万美元。他说,太空的所见正是他创立Ubuntu的精神之所在。如今,他最热衷的事情就是到处为自由开源的Ubuntu进行宣传和演讲。
Ubuntu官方网站:http://www.ubuntu.com。
3.3、SuSE Linux
SuSE Linux以Slackware Linux为基础,原来是德国的SuSE Linux AG公司发布的Linux版本,1994年发行了第一版,早期只有商业版本,2004年被Novell公司收购后,成立了OpenSUSE社区,推出了自己的社区版本OpenSUSE。
SuSE Linux在欧洲较为流行,在我国国内也有较多应用。值得一提的是,它吸取了Red Hat Linux的很多特质。SuSE Linux可以非常方便地实现与Windows的交互,硬件检测非常优秀,拥有界面友好的安装过程、图形管理工具,对于终端用户和管理员来说使用非常方便。
SuSE官方网站:https://www.suse.com。
OpenSUSE官方网站:http://www.opensuse.org。
3.4、Gentoo Linux
Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。Gentoo是所有Linux发行版本里安装最复杂的,到目前为止仍采用源码包编译安装操作系统。不过,它是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。
自从Gentoo 1.0面世后,它就像一场风暴,给Linux世界带来了巨大的惊喜,同时也吸引了大量的用户和开发者投入Gentoo Linux的怀抱。有人这样评价Gentoo:快速、设计干净而有弹性,它的出名是因为其高度的自定制性——它是一个基于源代码的发行版。尽管安装时可以选择预先编译好的软件包,但是大部分使用Gentoo的用户都选择自己手动编译。这也是为什么Gentoo适合比较有Linux使用经验的老手使用。但要注意的是,由于编译软件需要消耗大量的时间,所以,如果你所有的软件都由自己编译,并安装KDE桌面系统等比较大的软件包,则可能需要花费很长时间。
Gentoo官方网站:http://www.gentoo.org。
3、寄语
任何人学习和使用Linux或多或少会遇到问题,很多人遇到问题的第一个念头就是问人。没错!这可以快速解决问题。但是我们建议你,先尝试自己解决问题,询问别人获得答案固然好,但是对于知识的积累和提升解决问题的能力并没有帮助,不要做依赖别人帮助的懒虫。在寻找答案的过程中,虽然会花费很多时间,也可能会遇到挫折,但久而久之你会发现,也许为了找一个问题的解答,你了解了Linux很多相关的知识,经验也越来越丰富。记住,你不可能永远有人问,也不可能永远有人愿意回答你。