1、LINUX原理及应用,武汉大学计算机学院 郑鹏 Email:,第1章 Linux简介,Linux是在日益普及的Internet上迅速形成和不断完善的操作系统。 Linux操作系统高效、稳定,适应多种硬件平台,而最具有魅力的是它遵循GNU(“GNUs Not Unix”首字母的缩写)通用公共许可协议(General Public License,简称GPL),整个系统的源代码可以自由获取,并且在GPL许可的范围内自由修改、传播。,第1章 Linux简介,Linux是由Linus Benedict Torvalds在1991年首次开发和公开发布的一个自由操作系统内核。 Linux之所以受到广大计算
2、机爱好者的喜爱,主要原因有两个: 一是Linux属于自由软件; 一是Linux具有Unix的全部功能。,1.1什么是Linux,Linux系统有两种不同的含义: Linux指的是由Torvalds维护的开放源代码类Unix操作系统的内核。 以Linux内核为基础的整个操作系统:包含内核、系统工具、完整的开发环境和应用的类Unix操作系统。,1.1什么是Linux,Linux是运行于多种平台之上、源代码公开、免费、遵循GPL精神、遵守POSIX(Portable Operating System Interface)标准、与Unix兼容的操作系统。 Linux包含了人们希望操作系统拥有的所有功能
3、特性,这些功能包括真正的多任务、虚拟内存、世界上最快的TCP/IP驱动程序、共享库和多用户支持。,1.2 Linux的历史,Linux是在Unix的基础上发展而来的。 1991年10月5日,Linus Torvalds在新闻组comp.os.minix发表了LinuxV0.01,约有1万行代码。 1992年,全世界大约有100个左右的人使用Linux,并有不少人提供初期的代码上载和评论。 1993年,大约由100多个程序员参与内核代码修改,内核核心由5人组成,LinuxV0.99约有十万行代码。1993年12月,Linux全球用户数约在10万左右。 1994年3月,Linux已经升级到1.0版
4、本,实现了基本的TCP/IP功能。源代码量约有17万行。它按完全自由免费的协议发布,正式采用GPL协议。 1995年Linux全球用户数大大超过50万,Linux已可在Intel,Digital和SunSPARC处理器上运行,LinuxJournal杂志已发行了10万册。内核发展到1.2,约有25万行代码。,1.2 Linux的历史,1996年6月Linux内核2.0发布,可支持多个处理器,约有40万行代码。Linux全球用户数约在350万左右。 1997年,版本升至2.1,约有代码80万行。 1998年12月,Linux已拥有17%的市场份额,这种增长是任何其他操作系统无法匹敌的。 1999
5、年Linux已经拥有了大约1000万用户。 2000年,HP、IBM、Intel及NEC公司创立开放源代码开发实验室。 2001年1月,Linux内核2.4版发布。 2003年1月,IBM称将把对Linux的投资每年递增35%,直至2006年。 2003年12月,Linux内核2.6版发布。 2004年1月,IBM称其2003年基于Linux的服务营销额超过20亿美元。,1.3 Linux的特征,Linux现在是个人计算机和工作站上的类Unix操作系统。Linux可以提供和Unix相同的服务。同时,Linux绝不是简化了的Unix,相反,Linux是强有力和具有创新意义的Unix操作系统,它不
6、仅继承了Unix的特征,而且在许多方面超过了Unix。,1.3.1 Linux的技术特点,作为类Unix操作系统,它具有下列基本特征: 真正的多用户、多任务操作系统,Linux还是真正的32位操作系统,它工作在x86处理器的保护模式下。 符合POSIX标准的系统。Linux特别注重可移植性,这样也支持Unix的其他一些标准。 提供具有内置安全措施的分层的文件系统; 提供Shell命令解释程序和编程语言; 提供强大的管理功能,包括远程管理功能; 具有内核的编程接口; 虚拟内存和共享库。 具有图形用户接口。 具有大量有用的实用程序和通信、联网工具; 具有面向屏幕的编辑软件。,1.3.1 Linux
7、的技术特点,同时Linux还有许多独到之处: 它的源代码几乎全部都是开放的。 它可以运行在许多硬件平台上。从低端的Intel 386直到高端的超级并行计算机系统,都可以运行Linux系统。 不仅可以运行自由发布的应用软件,还可以运行许多商品化的应用软件。Linux支持大部分GNU计划下的自由软件,包括GNU C和GCC编译器、gawk、groff和其他软件。 强大的网络功能。不仅仅因为Linux系统内核中紧密地集成了网络功能和有大量的网络应用程序,更因为Linux系统在超强网络需求下表现出的令人惊奇的健壮性。 支持TCP/IP协议。在Linux系统中,通过Ethernet可以连接到Intern
8、et或当地的局域网。使用SLIP (Serial Line Internet Protocol)或PPP (Point to Point Protocol),通过电话线和调制解调器也可连到Internet上。 Linux支持商业版Unix的全部功能。事实上,Linux系统上的一些功能是Unix系统所不具备的。 充分发挥硬件功能,运行效率高。,1.3.2 Linux的内核特征,Linux操作系统的内核稳定而高效,以独占方式执行最底层任务,保证其它程序的正常运行。它是整个操作系统的核心,具有独特的性质。 1. 接口特色:Linux系统提供何一般Unix系统相同的标准界面,包括程序级和用户级的。Li
9、nux系统对用户同时提供图形和文本用户界面。 2. 功能特色:Linux系统可以支持多种硬件设备。Linux系统下的驱动程序开发比Windows系统简单。Linux采用多级分页的存储管理模式。它支持几十种现有的文件系统,具有内置的TCP/IP协议栈,可以提供各种高效的网络功能。 3. 结构特征:Linux内核基本采用模块结构,单内核模式,使用了附加模块(modules,也称模组)技术,可以方便地在内核中添加新的组件或卸载不再需要的内核组件,而且这种装载核卸载可以动态进行,即在系统运行过程中完成,而不需重新启动系统。,1.3.2 Linux的组成,Linux系统一般由内核、Shell、X Win
10、dow和应用程序程序成。 1.内核:内核是系统的核心,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。Linux内核的整体结构见图1.1。,图1.1 Linux内核结构,1.内核,Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。 进程调度(SCHED):控制进程对CPU的访问。 内存管理(MM):允许多个进程安全地共享主内存区域。 虚拟文件系统VFS(Virtual FileSystem):隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。 网络接口(NET):提供了对各种网络标准的存取和各种网络硬件的
11、支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。 进程间通讯(IPC):支持进程间各种通信机制。,2Shell,Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。Shell指的是一种程序,负责解释用户命令输入,通知内核执行相应系统服务子程序。Shell脚本程序是一种解释型程序,类似于批处理命令但比其丰富。主要用于系统管理和服务器配置上。,3X Window,现代操作系统的一个趋势,就是把操作系统的大部分内容从内核中剥离出来,使得大多数的系统功能都移到内核之
12、外,以用户进程的身份运行。这样可以避免因负责系统功能的程序出错而必然导致内核的崩溃。 X Window符合C/S设计理念。用户界面服务实质上一种由操作系统所提供的系统功能,以客户进程的形式向内核申请分配硬件资源。用户界面服务跟内核相分离,这样能最大限度的防止用户进程对硬件的访问,从而维护了操作系统的安全和稳定。用户界面服务跟内核相分离,同时也为操作系统具备多种不同用户界面提供了可能性。,4实用工具,标准的Linux系统都有一整套称为应用程序的实用程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。,1.4 Linux开发过程,Linux最强大的生命力还
13、在于公开的开发过程。 每个人都可以自由获取内核源程序,每个人都可以对源程序加以修改。 如果发现了缺陷,可以对它进行修正。如果有什么最优化或者新特点的创意,也可以直接在系统中增加功能。 当发现一个安全漏洞后,可以通过编程来弥补这个漏洞。,1.4 Linux开发过程,Linux这种独特的自由流畅的开发模型已被命名为bazaar(集市模型),它是相对于cathedral(教堂)模型而言的。在cathedral模型中,源程序代码被锁定在一个保密的小范围内。只有开发者(很多情况下是市场)认为能够发行一个新版本,这个新版本才会被推向市场。,1.4 Linux开发过程,为了确保无序的开发过程能够有序地进行,
14、Linux采用了双树系统。一个是稳定树,另一个是非稳定树或者开发树。一旦开发树经过了足够的发展,开发树就会成为新的稳定树,如此周而复始的进行下去。 源程序版本号的形式为x.y.z。对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(因此,是奇数)。目前较新的内核版本是2.6。,1.5 Linux的主要发行版本,Linux操作系统并不是一个单一的产品,在市场上有多种发行版本。所有的发行版本具有一样的Linux内核,内核包含着所有核心的操作系统功能以及网络堆栈。另外,他们都提供标准的工具,一系列的应用程序,一些打印的文档,以及有限的技术支持。 不同的地方主要在于其安装,配置,支持,以及
15、第三方应用。现在说Linux一般指某个Linux发行版。内核的版本号与发行版的版本号是不同的。 发行版是由内核、安装、配置、技术支持、第三方应用组成。,1.5 Linux的主要发行版本,现有常见的Linux发行版有: RedHat/Fedora:已经成为Linux市场中最重要的一员,这主要是因为它提供了最优秀的安装程序以及先进的包管理程序。如果是第一次使用Linux,Red Hat是最好的选择。Red Hat被评为Best Network OS,是目前销售量最高的Linux系统。,1.5 Linux的主要发行版本,Slackware:基于tgz的包结构, 历史很悠久的Linux 发行版。Sla
16、ckware最好的特性是在其CD上有一套已经安装好的Linux和X Window,如果系统支持从CD启动,可以直接试用Linux而无须往硬盘上安装任何东西。Slackware带有一个转换工具可以管理RPM包以及一个窗口管理器FVWM95。 SuSE Linux:原是以Slackware Linux为基础,并提供完整德文使用界面的产品。这套发行版包含的软件非常多,更首次收录了X Window及TCP/IP等套件。 Debian:基于deb的包结构, 这也是一个很不错的发行版,也称GNU/Linux,与GNU的关系紧密。 其特点是收集的软件很全。该发行版最大的特点在于包括一个可选的包管理器Debi
17、an Package Management System,它可以在安装之前对新的应用程序进行扫描,并且检查系统现有的配置情况,以决定所需安装的包,以免发生冲突。,1.5 Linux的主要发行版本,Caldera OpenLinux:在美洲与Red Hat同为最著名的系统。也采用Red Hat的RPM管理程序。Caldera最强的优势之一是KDE(Kool Desktop Environment),这是一个图形化的桌面环境,使Linux在外观和操作上与Windows类似。而且还带有由Star Division开发的StarOffice 4.0,这是一个与Microsoft Office类似的套装
18、软件,这样就有了可适于中小企业的完整解决方案了。最后,Caldera还提供多种形式的技术支持方式,包括电话和e-mail支持。 Mandrake:是欧洲人打包制作而成的,为Red Hat修改而来。提供相当友好的安装界面,补足了Red Hat所缺乏的一些工具。,1.5 Linux的主要发行版本,BluePoint:大陆发展的Linux版本,以RedHat修改而来,在互联网上深受中国Linux爱好者的好评。它最主要的特点是:内核级的汉化,有许多自己的东西。 TurboLinux:1999年进入国内市场,所以在品牌形象上有些先入为主的效果,而且通过中国计算机报进行最初的普及性发行,加之Linux认证
19、体系的率先建立,使得TurboLinux不论在用户数量还是商业策略上都有了一个明显的优势。 Xteam:是由北京冲浪公司制作的Linux发行版,可以算得上中国最早的Linux发行版。它的最大特点是:用户界面好,进入门槛低,适合初学Linux人试用。 RedFlag:是由中科院、北大方正、康柏公司联合开发,是基于RedHat Linux改进的中文版。它的特点是:开发力量强大,比较权威。,1.6 Linux的应用程序,所谓的Linux桌面环境,除X Window窗口管理程序外,还包含着完整的桌面应用程序套件。目前Linux最常见的桌面环境有KDE、GNOME等。 在Linux环境中的常用应用软件有: 办公软件OpenOffice.org 图像软件 图像浏览gThumb 图像处理软件GIMP 网络、多媒体、游戏,Linux发音,“Hello, this is Linus Torvalds, and I pronounce Linux as Linux”。,小结,Linux的特点和发展历史 Linux系统的特点和组成 Linux的发行版本,