Linux学堂:认识Linux系统
发表于:2007-07-04来源:作者:点击数:
标签:
Linux是一个很年轻的操作系统,它的诞生日期从1991年算起至今刚满12年。但是,它的发展和应用却异常迅猛,已经成为操作系统领域中一支重要的生力军。迄今为止,Linux在全球范围内的装机台数已超过1000万台,并且其增长势头与日剧增。甚至有一些分析家认为,在
Linux是一个很年轻的操作系统,它的诞生日期从1991年算起至今刚满12年。但是,它的发展和应用却异常迅猛,已经成为操作系统领域中一支重要的生力军。迄今为止,Linux在全球范围内的装机台数已超过1000万台,并且其增长势头与日剧增。甚至有一些分析家认为,在未来数年间,Linux将成为Windows NT真正强有力的竞争对手,也是惟一可以冲破微软垄断的出路之一。例如,《商业周刊》网站2003年11月19日刊登分析文章指出,近年来,微软已经感到其最大的潜在市场竞争对手其实是来自Linux社区的产品。
究其原因,恐怕还是因为Linux社区能将全世界的技术精英们召集到一起,而微软却只有依靠自己的团队来进行技术
开发。二者相比,哪一方的创造力更强一些也就不言而喻了。
毋庸置疑,Linux的发展和特点给我们耳目一新的感觉。
Linux的由来
1984年,曾是比尔·盖茨哈佛大学同学的Richard Stallman组织开发了一个完全基于自由软件的软件体系计划—GNU(GNU是GNU is Not Unix的递归缩写),并且拟定了一份通用公共许可证(General Public License,简称GPL)。GPL保证任何人有共享和修改自由软件的自由,任何人都有权取得、修改和重新发布自由软件的源代码,并且规定在不增加附加费用的条件下得到源代码(基本发行费用除外)。这一规定保证了自由软件总体费用是低的,在使用Internet的情况下则是免费的。
在20世纪80年代时,Andrew S.Tanenbaum教授为了满足教学的需要,自行设计了一个微型Unix操作系统—Minix。在此基础上,1991年芬兰赫尔辛基大学的学生Linus Torvalds在自己的Intel 386个人计算机上开发了属于他自己的第一个程序,并利用Internet发布了他开发的源代码,将其命名为Linux,从而创建了Linux操作系统。之后,许多系统软件设计专家共同对它进行了改进和提高。
到现在为止,Linux已成为具有全部Unix特征、与POSIX兼容的操作系统。近年来,Linux在国际上发展迅速,得到了除微软以外的几乎所有知名软件和硬件公司的支持。支持Linux的硬件公司有IBM、HP、Sun、Intel、AMD、SONY等,软件公司有CA、
Oracle、Sybase、Informix、BEA、
Borland、Veritas等。这些支持包括提供技术支持、开发Linux的应用软件,从而将Linux系统的应用推向各个领域,使得Linux已经进入到企业级应用。
Linux成功的意义不仅在于Linux操作系统本身,还在于Linus Torvalds所建立的、全新的软件开发方法和Stallman的GNU精神。Linus把Linux奉献给了自由软件,奉献给了GNU,从而使自由软件有了一个良好的发展根基—基于Linux的GNU。
当前流行的软件按照所提供的方式和是否以赢利为目的可以划分为三种模式,即商业软件(Commercial Software) 、共享软件(Shareware)和自由软件(Freeware或Free Software)。
商业软件由开发者出售拷贝,并提供技术服务,用户只有使用权,但不得进行非法拷贝、扩散、修改或添加新功能。共享软件由开发者提供软件试用程序拷贝授权,用户在试用该程序拷贝一段时间之后,必须向开发者交纳使用费用,开发者则提供相应的升级和技术服务。而自由软件则由开发者提供软件全部源代码,任何用户都有权使用、拷贝、扩散、修改该软件,同时用户也有义务将自己修改过的程序代码公开。
Linux是自由软件的杰出代表。1993年Linus Torvalds将Linux系统转向了GPL,并加入了GNU。这一版权上的转变对于Linux的进一步发展起了极其重要的作用。
按用户的性质,可以将目前Linux的用户分为个人用户、专业用户和商业用户。个人用户可以说是业余用户,在这类用户中,学生占据了很大的比例。在Linux的使用者中个人用户占据很大部分。随着Linux的进一步发展,这些用户是Linux得以发展的、潜在的最大用户群。专业用户大多是Unix的使用者,他们本身对Unix比较熟悉,能够很快地掌握Linux的使用。专业用户是Linux最忠实的拥护者。商业用户要向客户提供商业服务。目前,广泛使用Linux的商业用户多为信息服务提供商,如大量的ISP或ICP等。随着Linux优秀
性能逐渐被广大商业用户所认识,Linux商业用户的规模会越来越大。
Linux的特点
Linux的功能强大而全面,与其它操作系统相比,具有如下一系列显著特点。
1.与Unix兼容
现在,Linux已成为具有全部Unix特征、遵从POSIX标准的操作系统。所有Unix的主要功能都有相应的Linux工具和实用程序。对于Unix System V来说,其软件程序源码在Linux上重新编译之后就可以运行;而对于BSD Unix,它的可执行文件可以直接在Linux环境下运行。所以,Linux实际上就是一个完整的Unix类操作系统。Linux系统上使用的命令多数都与Unix命令在名称、格式、功能上相同。
2.自由软件,源码公开
Linux项目从一开始就与GNU项目紧密结合起来,它的许多重要组成部分直接来自GNU项目。任何人只要遵守GPL条款,就可以自由使用Linux源程序。这样就激发了世界范围内热衷于计算机事业的人们的创造力。通过Internet,这一软件的传播和使用迅速蔓延。
3.性能高,安全性强
在相同的硬件环境下,Linux可以像其它优秀的操作系统那样运行,提供各种高性能的服务,可以作为中小型ISP或Web
服务器工作平台。
Linux上包含了大量网络管理、网络服务等方面的工具,用户可利用它建立起高效和稳定的防火墙、路由器、工作站、Intranet服务器及WWW服务器。Linux还包括了大量系统管理软件、网络分析软件、网络安全软件等。
由于Linux源码是公开的,所以可消除系统中是否有“后门”的疑惑。这对于关键部门、关键应用来说是至关重要的。
4.便于定制和再开发
在遵从GPL版权协议的条件下,各部门、企业、单位或个人可根据自己的实际需要和使用环境对Linux系统进行裁剪、扩充、修改,或者再开发。
5.互操作性高
Linux操作系统能够以不同的方式实现与非Linux系统的不同层次的互操作:
◆ Client/Server网络 Linux可以为基于MS-DOS、Windows和其它
Unix系统提供文件存储、打印机、终端、后备服务,以及关键性业务应用。
◆ 工作站 与工作站间的互操作可以让用户把他们的计算
需求分散到网络的不同计算机上。
◆ 仿真 在Linux上运行MS-DOS与Windows平台的仿真工具,就可以运行DOS/Windows程序。
6. 全面的多任务和真正的32位操作系统。
Linux和其它Unix系统一样,是真正的多任务系统,它允许多个用户同时在一个系统上运行多道程序。Linux还是真正的32 位操作系统,它工作在Intel 80386及以后的Intel处理器的保护模式下。Linux支持多种硬件平台。
Linux的版本
人们看到的Linux有两种表现形式,一个是核心(Kernel),另一个是发行(Distribution)版本。
1. 核心
核心主要是Linux的内核,由Linus等人在不断地开发和推出新的内核。Linux内核的官方版本由Linus Torvalds本人维护着。核心版本的序号由三部分数字构成,其形式如下:
major.minor.patchlevel
其中,major为主版本号,minor为次版本号,二者共同构成了当前核心版本号;patchlevel表示对当前版本的修订次数。例如,2.4.18表示对核心2.4版本的第18次修订。
根据约定,次版本号为奇数时,表示该版本加入新内容,但不一定很稳定,相当于
测试版;次版本号为偶数时,表示这是一个可以使用的稳定版本。由于Linux内核开发工作的连续性,因此内核的稳定版本与在此基础上进一步开发的不稳定版本总是同时存在的。对于一般用户,建议采用稳定的核心版本。
2. 发行版本
发行版本是各个公司推出的版本,它们与核心版本是各自独立发展的。发行版本通常内附有一个核心源码,以及很多针对不同硬件设备的核心映像。所以发行版本是一些基于Linux核心的软件包。目前常见的Linux发行版本有:
(1)Red Hat
Red Hat是由Red Hat Software公司发布的,是当前著名的Linux版本。Red Hat问世比其它流行的Linux版本都要晚,但它后来居上,其二进制码约有200MB左右。该产品支持的硬件平台很多,有优秀的安装界面、独特的RPM升级方式、丰富的软件包、安全性能良好、方便的系统管理界面及详细且完整的联机文档。Red Hat网址为http://www.redhat.com。
(2)TurboLinux
TurboLinux 4.0及以后版本提供了从安装到使用的完整中文环境,系统中采用了一个简单的系统软件安装/升级/卸载管理器TurboPkg,并提供了一个完备的开发环境,开发了自己的桌面——TurboDesk,建立了高效稳定的防火墙。TurboLinux网址为http://www.turbolinux.com.cn。
(3)Slackware
Slackware Linux是出现最早的Linux发行套件之一,其二进制码约有120MB左右。它的最大特点是安装简单,目录结构清楚,版本更新快,适于作服务器。Slackware网址为http://www.cdrom.com。
(4)Debian
Debian也称作GNU/ Linux,与GNU的关系紧密,由一群自愿者进行维护和升级。其所收集的软件很全,二进制码近400MB,而且安装也很方便。Debian网址为http://www.debian.org。
(5)SuSELinux
虽然SuSE公司已被Novell公司购并,但SuSELinux仍存在。SuSELinux用作X-Window服务器效果较好,在欧洲用得较多。SuSELinux网址为http://www.suse.com。
(6)红旗Linux
红旗Linux是由北京中科红旗软件技术有限公司开发研制的,目前主要有服务器版本和桌面版本。服务器版本在以Intel和Alpha芯片为CPU的平台上运行;桌面版本可以在Intel 486、Pentium及ADM、Cryix等x86兼容处理机的个人计算机上运行,其最新桌面版是4.0版。红旗Linux网址为http://www.redflag-linux.com。
红旗Linux具有人性化、易用化的交互界面,采用最新稳定的KDE图形操作环境、类Windows的窗口界面风格和鼠标及快捷键操作方式;全程的中文信息处理平台,支持国家GB18030编码标准,拥有高达27000汉字的矢量字库,可以进行该编码的汉字输入及打印;提供符合用户使用习惯的操作界面,包括中文选单、对话框、中文提示和帮助、中文的时间显示和货币格式;提供了多种汉字输入法。还提供了方便易用的新功能:可以通过共享文件夹与其它机器交换文件,通过网上邻居访问同事的共享文件,利用新的回收站来挽救误删的文件。
红旗Linux集成了丰富的应用软件,包括电话拨号工具、上网浏览器、邮件客户端等网络应用软件,以及功能强大的绘图软件、图片查看工具、MP3播放器等;具备更广泛的硬件支持能力和扩充性。
(7)中软Linux
中软Linux是由中软网络技术股份有限公司开发的,目前主要有服务器版本3.1和桌面版本4.2。中软Linux具有完整的中文环境,支持GB18030-2000国家标准,具有美观的TrueType字库、完美的中文输入、显示及打印功能,具有全中文图形化操作环境和多种中文输入法;有简单快捷的安装、美观的界面、易用的桌面;采用中文图形化安装方式,整个安装过程简易直观。
中软Linux具有集中的配置方式,控制面板整合了所有配置功能;它采用了向导式打印机配置工具,能够自动检测本地打印机的型号等。中软Linux的网址为linux.cosix.com.cn。
(8)冲浪Linux
冲浪Linux分为标准版和
程序员版两种版本。标准版是一款适合Linux桌面应用及中小型服务器应用的产品,齐全的应用套件和强大的网络功能可让使用者很快上手,轻松应用。程序员版则主要是为程序员而设计的,功能强大的开发工具可满足程序员的各种编程需要,是开发Linux应用程序的最佳平台。最新版本是XteamLinux 4.0。 冲浪Linux网址为http://www.xteamlinux.com.cn。
Linux的发展优势与存在问题
随着Linux技术的更加成熟、完善,其应用领域和市场份额继续快速扩大。目前,其主要应用领域是服务器系统和
嵌入式系统。然而,Linux的足迹已遍及各行各业,几乎无所不在。
Linux的迅速发展具有一系列优势,主要包括:
1.开放源码系统从本质上就具有其它系统无法比拟的研制、开发优势。它集中了众多软件专家、编程高手、IT爱好者的智慧与辛苦,在一个公开的、自由的、不受约束的
论坛上大家各抒己见,从不同的角度对Linux系统提出修改、扩充、纠错、支持或批评的意见与建议。这是全球范围的研制,其广度是任何一个公司所无法比拟的。
2.Linux受到各国政府的大力支持。包括美国政府在内的各国政府都全力支持Linux,不少政府在采购办公软件时优先考虑
开源软件。Linux正逐步成为电子政务的平台标准。我国政府对软件产业非常支持,先后颁布了国发[2000]18号文件和国办发[2002]47号文件,对软件产业发展给予各项优惠政策。
3.得到了全球各大软、硬件公司的支持。几乎各大知名软、硬件厂商都支持Linux系统,如IBM公司在其所有的
解决方案中都全力采用Linux;Sun公司正在实施全面支持Linux的战略;HP公司宣布其所有硬件产品都支持Linux。
4.价格优势和安全性。Linux是高效的、安全的、可靠的、廉价的自由软件。对于各政府部门、企事业单位和机关学校来说,采用Linux系统会带来重大的经济效益。对于个人来说,这是少花钱、多办事的捷径。操作系统涉及国家安全,采用开源代码系统具有重要意义。
然而,Linux的发展也存在不利因素。“不熟悉”是企业用户不使用Linux桌面操作系统的首要原因。很多企业认为对Linux的不熟悉影响了自己的选择。不使用Linux桌面的主要原因还包括应用软件少、使用不方便和功能不完备。与桌面操作系统非常类似,不熟悉也是影响服务器操作系统应用的首要原因,其次是应用软件少、使用不方便和功能不完备。
应当指出,Linux应用软件少和使用不方便的问题正在得到解决。例如,红旗Linux桌面系统的图形界面与Windows已经相差无几,可以很方便、直观、快捷地进行操作。
随着各大公司的积极投入,已经开发出大量各具特色的Linux应用软件,可以适应各方面的不同需求。当然,由于Linux版本众多,也影响了其普及和应用,需要尽快制定统一的桌面版本标准(规范)。另外,如何使开发者和经营商获得合理的利润,对于促进Linux的快速、持续的发展也至关重要。Linux的推广需要有大量的Linux人才,从而尽快调整计算机/信息教育和
培训体系就显得十分必要。
Linux与其它体系结构简介
下面简要介绍一下Linux系统与Unix和Windows NT体系结构的异同。
1. Linux系统结构
与Unix系统相似,Linux系统大致可分为三层:靠近硬件的底层是内核,即Linux操作系统常驻内存部分;中间层是内核之外的Shell层,亦即操作系统的系统程序部分;最高层是应用层,即用户程序部分,包括各种正文处理程序、语言编译程序以及
游戏程序等。如图1所示。
javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)">
图1 Linux系统结构
内核是Linux操作系统的主要部分,它实现进程管理、内存管理、文件系统、设备驱动和网络系统等功能,从而为核外的所有程序提供运行环境。
从结构上看,Linux操作系统是采用单块结构的操作系统。就是说,所有的内核系统功能都包含在一个大型的内核软件之中。当然,Linux系统也支持可动态装载和卸载的模块。利用这些模块,可以方便地在内核中添加新的组件或卸载不再需要的内核组件。Linux内核结构的框图如图2所示。
图2 Linux系统核心框图
图2展示出三个层次:用户层、核心层和硬件层。一般说来,可以将操作系统划分为内核和系统程序两部分。系统程序及其它所有的程序都在内核之上运行,它们和内核之间的接口由操作系统提供的一组“抽象指令”定义,这些抽象指令称为“系统调用”。系统调用看起来像C程序中的普通函数调用。所有运行在内核之上的程序可分为系统程序和用户程序两大类,但它们统统运行在“用户模式”之下。内核之外的所有程序必须通过系统调用才能进入操作系统的内核。
内核程序在系统启动时被加载,然后它会初始化计算机硬件资源,并开始Linux的启动过程。
进程是程序的一次执行过程。进程控制系统用于进程管理、进程同步、进程通信、进程调度和内存管理等。程序以文件(源文件、可执行文件等)形式存放。可执行文件装入内存准备执行时,进程控制系统与文件系统相互作用,用可执行文件更换子进程的映像。
进程是系统中的动态实体。控制进程的系统调用包括进程的创建、终止、执行、等待、空间扩充及信号传送等。进程调度模块为进程(线程)分配CPU 。Linux系统的进程调度算法采用抢占式优先级法,将进程划分为实时进程和非实时进程,实时进程的优先级高于非实时进程。Linux系统支持多种进程通信机制,其中最常用的是信号、管道及Unix系统支持的System V IPC机制等。
内存管理控制内存分配与回收。系统采用两种策略管理内存:交换和请求分页。根据系统中物理内存空间的使用情况进程映像在内存和辅存(磁盘)之间换入/换出,利用请求分页技术提供虚拟存储器。
文件系统来管理文件、分配文件空间、管理空闲空间、控制对文件的访问,并为用户检索数据。进程通过一组特定的系统调用(如open、close、read、write、chmod等)与文件系统交互作用。
Linux系统中使用了虚拟文件系统VFS,从而允许Linux支持多种不同的文件系统,每个文件系统都要提供给VFS一个相同的接口。
文件系统利用缓冲机制访问文件数据。缓冲机制与块设备驱动程序相互作用,以启动从核心向块设备写数据,或者从块设备向核心传送(读)数据。
Linux系统支持三种类型的硬件设备:字符设备、块设备和网络设备。Linux系统和设备驱动程序之间使用标准的交互接口。这样,内核可以用同样的方法来使用完全不同的各种设备。
核心底层的硬件控制负责处理中断及与机器通信。外部设备(如磁盘或终端等)在完成某个工作或遇到某种事件时会中断CPU执行,由中断处理系统进行相应分析、处理。处理之后将恢复被中断进程的执行。
2. Unix系统结构
由于Linux是Unix发展的一个分支,所以,二者的体系结构有很多相似之处。为便于读者了解相关情况,下面给出Unix System V内核的结构框图,见图3。
图3 Unix System V系统核心框图
从图3中看出,Unix核心可视为左、右两大部分:左边是文件系统部分,右边是进程控制系统部分。文件系统部分涉及操作系统中各种信息的保存,通常都是以文件形式存放的,它相当于核心的“静态”部分。进程控制系统部分涉及操作系统中各种活动的调度和管理,通常以进程形式展现其生命活力,相当于核心的“动态”部分。“静态”和“动态”两部分存在密切联系。
图3展示出了Unix的用户层、核心层和硬件层三个层次。库函数和系统调用的接口代表用户程序和核心之间的界线。库函数通过系统调用才能进入操作系统。
3.Windows NT体系结构
Windows NT的体系结构是分层的模块系统,如图4所示。主要的层次有硬件抽象层HAL、内核、执行体和大量的子系统集合。前面三个都运行在保护模式下,而各子系统都在用户模式下运行。子系统又可分为环境子系统和保护子系统两类,其中环境子系统仿真不同的操作系统,保护子系统提供安全功能。
图4 Windows NT结构框图
上面列出了Linux、Unix和Windows的体系结构。从图中可以看出,Linux与Unix的体系结构基本相同。这也不奇怪,因为Linux本来就是Unix大家族的一个新成员。这种层次结构使得核心执行的效率高,结构关系清晰,易于移植、开发和维护,在设计实现上也带来方便。
Windows NT采用客户/服务器模型,在核心中应用微内核技术,采用对象管理方式统一处理内部所有事务,这些是新一代操作系统的设计技术。然而,商业化运作的特性使得新技术的普及应用受到影响,代码的保密、安全漏洞的不断出现,也影响了Windows NT在政府的采购和重要部门的应用。
金无足赤。事物在发展中前进。谁代表着未来发展的方向,谁就能在竞争中取胜。
原文转自:http://www.ltesting.net