1.2 Linux操作系统简介
内容提要
1.了解Linux的历史和现状。
2.掌握Linux系统的特点。
3.掌握Linux系统的组成。
4.理解Linux的内核版本和发行版本。
5.了解Linux的网络应用。
1.2.1 Linux操作系统及其历史
什么是Linux
Linux是一个功能强大的操作系统,同时它是一个自由软件,是免费的、开放源代码的,编制它的目的是建立不受任何商品化软件版权制约的、全世界都能自由使用的UNIX兼容产品。
各种使用Linux作为内核的GNU操作系统正被广泛地使用着。虽然这些系统通常被称作为“Linux”,但是它们应该更精确地被称为GNU/Linux系统。
Linux的历史
Linux最初是由芬兰赫尔辛基大学计算机系大学生Linus Torvalds在从1990年底到1991年的几个月中为了他自己的操作系统课程和后来的上网用途而陆续编写的,在他自己买的Intel 386 PC机上,利用Tanenbaum教授自行设计的微型UNIX操作系统Minix作为开发平台。Linus说,刚开始的时候他根本没有想到要编写一个操作系统的内核,更是绝对没有想到这一举动会在计算机界产生如此重大的影响。最开始是一个进程切换器,然后是为他自己上网需要而自行编写的终端仿真程序,再后来是为他从网上下载文件的需要而自行编写的硬盘驱动程序和文件系统,这时他发现他已经实现了一个几乎完整的操作系统内核。
出于对这个内核的信心和美好的奉献精神与发展希望,Linus希望这个内核能够免费扩散使用,但出于谨慎他并没有在Minix新闻组中公布它,而只是于1991年底在赫尔辛基技术大学的一台FTP服务器上发了一则消息,说用户可以下载Linux的公开版本(基于Intel 386体系结构)和源代码。从此以后,奇迹开始发生了。
Linux的兴起可以说是Internet创造的一个奇迹。到1992年1月止,全世界大约只有100个左右的人在使用Linux,但由于它是在Internet发布的,网上的任何人在任何地方都可以得到Linux的基本文件,并可通过电子邮件发表评论或者提供修正代码,这些Linux的热心者有将之作为学习和研究对象的大专院校的学生和科研机构的科研人员,也有网络黑客等,他们所提供的所有初期上载代码和评论,后来证明对Linux的发展至关重要。正是在这众多热心者的努力下,使Linux在不到三年的时间里成为了一个功能完善、稳定可靠的操作系统。
在Linux诞生不久之后,Linus Torvalds将其贡献给了自由软件社区,Linus本人认为“使Linux成为GPL的一员是我一生中所做过的最漂亮的一件事”。
Linux操作系统可以说是UNIX操作系统的一个克隆体,自Linus Torvalds创建创立Linux开始,Linus就允许其他人免费地自由运用该系统源代码,并且鼓励其他人进一步对其进行开发。Linux操作系统继承了UNIX操作系统超过二十五年的经验、源代码以及技术支持,它在短短的几年内,得到了非常迅猛的发展,很快成为最受人喜爱的操作系统之一,而这一点正是与它本身具有的良好特性分不开的。
1.2.2 Linux系统的特点和组成
Linux系统的特点
Linux操作系统在短短的几年之内得到了非常迅猛的发展,这与Linux具有的良好特性是分不开的。Linux包含了UNIX的全部功能和特性。简单地说,Linux具有以下主要特性。
● 开放性:是指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互连。另外,源代码开放的Linux是免费的,使得获取Linux非常方便,而且使用Linux可节省费用。Linux开放源代码,使用者能控制源代码,按照需要对部件混合搭配,建立自定义扩展。
● 多用户:是指系统资源可以被不同用户各自拥有使用,即每个用户对自己的资源(如文件、设备)有特定的权限,互不影响。Linux和UNIX都具有多用户的特性。
● 多任务:多任务是现代计算机的最主要的一个特点,是指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux系统调度每一个进程平等地访问微处理器。
● 出色的速度性能:Linux可以连续运行数月、数年而无需重新启动,与NT(经常死机)相比,这一点尤其突出。即使作为一种台式机操作系统,与许多用户非常熟悉的UNIX相比,它的性能也显得更为优秀。Linux不大在意CPU的速度,它可以把处理器的性能发挥到极限(用户会发现,影响系统性能提高的限制因素主要是其总线和磁盘I/O的性能)。
● 良好的用户界面:Linux向用户提供了三种界面,用户命令界面、系统调用界面和图形用户界面。
● 提供了丰富的网络功能:Linux是在Internet基础上产生并发展起来的,因此,完善的内置网络是Linux的一大特点。Linux在通信和网络功能方面优于其他操作系统。
● 可靠的系统安全:Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。
● 良好的可移植性:可移植性是指将操作系统从一个平台转移到另一个平台时它仍然能按其自身方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。可移植性为运行Linux的不同计算机平台与其他任何机器进行准确而有效的通信提供了手段,不需要另外增加特殊和昂贵的通信接口。
● 具有标准兼容性:Linux是一个与POSIX(Portable Operating System Interface)相兼容的操作系统,它所构成的子系统支持所有相关的ANSI、ISO、IETF和W3C业界标准。为了使UNIX system V和BSD上的程序能直接在Linux上运行,Linux还增加了部分system V和BSD的系统接口,使Linux成为一个完善的UNIX程序开发系统。Linux也符合X/Open标准,具有完全自由的X Windows实现。另外,Linux在对工业标准的支持上做得非常好,由于各Linux发布厂商都能自由获取和接触Linux的源代码,各厂家发布的Linux仍然缺乏标准,不过这些差异非常小。它们的差异主要存在于所捆绑应用软件的版本、安装工具的版本和各种系统文件所处的目录结构。
Linux系统的组成
Linux一般有4个主要部分:内核、Shell、文件系统和应用程序,各部分层次结构如图1-1所示。内核、Shell和文件系统一起形成了基本的操作系统结构。它们使得用户可以运行程序,管理文件并使用系统。
图1-1 Linux系统的组成
● Linux内核:内核(Kernel)是系统的心脏,实现操作系统的基本功能。
➢ 在硬件方面:控制硬件设备,管理内存,提供硬件接口,处理基本I/O。
➢ 在软件方面:管理文件系统,为程序分配内存和CPU时间等。
● Linux Shell:Shell是系统的用户界面,提供用户与内核进行交互操作的一种接口。
➢ Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核执行。
➢ Shell编程语言具有普通编程语言的很多特点,用这种编程语言编写Shell程序与其他应用程序具有同样的效果。
➢目前常见的Shell有Bourne Shell(sh)、Korn Shell(ksh)、C Shell(csh)、Bourne-again Shell(bash)。
● Linux应用程序:标准的Linux系统都有一套称为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。当然,还可以有用户自己编写的具有特定功能的应用程序。
● Linux文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法。通常是按照目录层次的方式进行组织。每个目录可以包括多个子目录以及文件,系统以“/”为根目录。系统中的所有数据都存储在文件系统上以便用户读取、查询和写入。Linux能支持多种目前流行的文件系统,如ext2、ext3、fat、vfat、ISO9660、nfs等。
1.2.3 Linux的内核版本与发行版本
Linux有内核(Kernel)版本和发行(Distribution)版本之分。
Linux的内核版本
内核版本是在Linus领导下的开发小组开发出的系统内核的版本号。
内核版本号由3个数字组成:r.x.y
● r:目前发布的Kernel主版本。
● x:一般来说,x位为偶数的版本表明这是一个可以使用的稳定版本,如2.4.4;x位为奇数的版本一般加入了一些新的内容,不一定很稳定,是测试版本,如2.1.111。
● y:错误修补的次数。
CentOS 5使用的内核版本是2.6.18。
提示:时至今日,Linux的内核仍旧由Linus Torvalds领导下的开发小组维护。可以访问http://www.kernel.org/获得最新的内核信息。
Linux的发行版本
发行版本是一些组织或厂家将Linux系统内核与应用软件和文档封装起来,并提供一些安装界面和系统设定管理工具的一个软件包的集合。目前已经有了几百种发行版本。相对于内核版本,发行版本的版本号随着发布者的不同而不同,与系统内核的版本号是相对独立的。常见的发行版本有以下3类。
● 社区发布版本
➢ CentOS:http://www.centos.org/
➢ Ubuntu:http://www.ubuntu.com/
➢ Debian:http://www.debian.org/
➢ openSUSE:http://www.opensuse.org/
➢ Fedora:http://www.fedoraproject.org/
➢ Gentoo:http://www.gentoo.org/
● CD Live版本
➢ Ubuntu:http://www.ubuntu.com/
➢ Finnix:http://www.finnix.org/
➢ Knoppix:http://www.knoppix.org/
● 商业支持版本
➢ Red Hat Enterprise:http://www.redhat.com/
➢ SUSE:http://www.novell.com/products/
➢ Mandriva:http://www.mandrivalinux.com/
➢ Turbolinux:http://www.turbolinux.com/
1.2.4 Linux的网络应用
Linux操作系统目前已经应用到服务器、桌面、嵌入式系统等各个方面,但最多的应用还是在网络服务器方面。
Linux的网络功能是与生俱来的。Linux除了可以用作各种服务器之外,在Linux下还有大量的网络客户工具可用。下面分别就Linux下的服务器和网络客户工具与Windows系统下的做一个对比,目的是帮助用户理解客户/服务器系统,并将客户端与服务器端区分开来。
Linux下的服务器
表1-1给出了运行于Linux系统下的常用网络服务软件与运行于Windows系统下的网络服务软件的对比。
表1-1 Linux与Windows系统下的常用网络服务软件对比
Linux下的网络客户工具
表1-2给出了运行于Linux系统下的常用网络客户软件与Windows系统下的网络客户软件的对比。
表1-2 Linux与Windows系统下常用网络客户软件对比
提示:有关Linux和Windows软件对比可以参考下面的网站:
● http://www.linuxrsp.ru/win-lin-soft/table-eng.html(英文)
● http://www.linuxrsp.ru/win-lin-soft/table-chn.html(中文)