linux应用程序开发指南之21-01.pdf
《linux应用程序开发指南之21-01.pdf》由会员分享,可在线阅读,更多相关《linux应用程序开发指南之21-01.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、下载第1章 Linux软件开发概述1.1 关于LinuxL i n u x于1 9 9 1年诞生于芬兰。大学生Linus To r v a l d s,由于没有足够的钱购买昂贵的商用操作系统,于是自己编写了一个小的操作系统内核,这就是 L i n u x的前身。Linus To r v a l d s将操作系统的源代码在I n t e r n e t上公布,受到了计算机爱好者的热烈欢迎。各种各样的计算机高手不断地为它添加新的特性,并不断地提高它的稳定性。1 9 9 4年,Linux 1.0正式发布。现在,L i n u x已经成为一个功能强劲的3 2位的操作系统。严格地说,L i n u x只
2、是一个操作系统内核。比较正式的称呼是G N U操作系统,它使用L i n u x内核。G N U的意思是G N U s not Unix(G N U不是U n i x)一种诙谐的说法,意指 G N U是一种类U n i x的操作系统。G N U计划是由自由软件的创始人 S t a l l m a n在2 0世纪8 0年代提出的一个庞大的项目,目的是提供一个免费的类U n i x的操作系统以及在上面运行的应用程序。G N U项目在初期进展并不顺利,特别是操作系统内核方面。L i n u x适时而出,由于它出色的性能,使它成为G N U项目的操作系统的内核。从此以后,G N U项目进展非常迅速:全
3、世界的计算机高手已经为它贡献了非常多的应用程序和源代码。L i n u x是遵从G P L协议的软件,也就是说,只要遵从 G P L协议,就可以免费得到它的软件和源代码,并对它进行自由地修改。然而,对一般用户来说,从 I n t e r n e t或者其他途径获得这些源代码,然后对它们进行编译和安装是技术难度很高的工作。一些应用程序的安装也都非常复杂。因而,有一些公司如Red Hat、VA等开始介入L i n u x的业务。它们将L i n u x操作系统以及一些重要的应用程序打包,并提供较方便的安装界面。同时,还提供一些有偿的商业服务如技术支持等。这些公司所提供的产品一般称为 L i n u
4、 x的发布版本。目前比较著名的 L i n u x发布版本有以下几种:Red Hat最著名的L i n u x服务提供商,I n t e l、D e l l等大公司都对其有较大投资,该公司前不久收购了开放源代码工具供应商 C y g n u s公司。S l a c k Wa r e历史比较悠久,有一定的用户基础。S U S E在欧洲知名度较大。Tu r b o L i n u x在亚洲,特别是日本用户较多。该公司在中国推出了 TurboLinux 4.0、4.0 2和6.0的中文版,汉化做得很出色。D e b a i n完全由计算机爱好者和L i n u x社区的计算机高手维护的L i n u
5、 x发布版本。L i n u x进入中国后,在我国计算机界引起了强烈的反响,最近两年,也出现了许多汉化的L i n u x发布版本,影响较大的有以下几种:X t e a m L i n u x北京冲浪平台公司推出的产品,中国第一套汉化的 L i n u x发布版本。第一部分Linux GUI 编程框架及编程基础B l u e P o i n t1 9 9 9年底正式推出的产品,内核汉化技术颇受瞩目。红旗L i n u x中国科学院软件研究所和北大方正推出的 L i n u x发布版本。从本质上来说,上面所有发布版本使用的都是同样的内核(或者版本略有不同),因而,它们在使用上基本上没有什么区别。
6、但它们的安装界面不一样,所包含的应用程序也有所不同。L i n u x之所以大受欢迎,不仅仅因为它是免费的,而且还有以下原因:1)Linux是一个真正的抢占式多任务、多线程、多用户的操作系统。2)Linux性能非常稳定,功能强劲,可以与最新的商用操作系统媲美。3)Linux有非常广泛的平台适应性。它在基于 I n t e l公司的x 8 6(也包括A M D、C y r i x、I D T)的计算机、基于A l p h a的计算机,以及苹果、S u n、S G I等公司的计算机上都有相应的发布版本,甚至在A S/4 0 0这样的机器上都能找到相应的版本。L i n u x还可以在许多P D A
7、和掌上电脑以及嵌入式设备上运行。4)已有非常多的应用程序可以在 L i n u x上运行,大多数为 SCO Unix开发的应用程序都能在L i n u x上运行(借助于i B C S软件包),甚至还比在SCO Unix上运行速度更快。借助 D o s e m u,可以运行许多D O S应用程序,而借助Wa b i或Wi n e,还可以运行许多为Wi n d o w s设计的软件。5)Linux是公开源代码的,也就是说,不用担心某公司会在系统中留下后门(软件开发商或程序员预留的,可以绕开正常安全机制进入系统的入口)。6)只要遵从G P L协议,就可以自由地对L i n u x进行修改和剪裁。当然
8、,L i n u x的优点决不止于此。对计算机专业人员来说,L i n u x及其相关应用程序也是学习编程的绝好材料,因为这些软件都提供了完整的源代码。L i n u x的出现为我国软件产业赶超世界先进水平提供了极好的机遇,也为我国软件产业反对微软的垄断提供了有力的武器。1.2 关于Linux的桌面环境目前使用L i n u x主要在于服务器端。在 I n t e r n e t上有很多服务器都在使用 L i n u x。但是,一个操作系统要想得到普及,并占据一定的市场份额,必须要使非计算机专业人士都可以轻松掌握这种系统。而L i n u x作为一种类U n i x操作系统,对它的操作一般都是
9、通过复杂的 S h e l l命令进行的。因而,应该有一种简便易学的图形用户接口(Graphics User Interface,G U I),使用户使用鼠标就可以完成大多数工作。在L i n u x中,G U I由以下几个部分组成:窗口系统组织显示屏上的图形输出并执行基本的文本和绘图功能。窗口管理器负责对窗口的操作(比如最小化、最大化、关闭按钮的形状,窗口边框外观等)以及输入焦点的管理。工具包带有明确定义的编程界面的常规库。风格指定应用程序的用户界面外观和行为。在L i n u x发展的初期,众多的计算机专家为它贡献了多种图形用户接口,如F V W M 9 5、A f t e r S t e
10、 p等。这些接口模仿了Windows 95、M a c i n t o s h、N e s t S t e p、A m i g a、Unix CDE等桌面环境。这些G U I在一定程度上来说只是其他图形接口的仿制品,不能提供优秀的操作系统所需要的特性。其后,自由软件社区的一批计算机专家开始了 K D E项目(K Desktop Environment,K桌面环境),目的是提供一个开放源代码的图形用户接口和开发环境。该项目取得了极大的2使用第一部分Linux GUI 编程框架及编程基础下载成功,K D E成为许多L i n u x发布版本的首选桌面环境。G N U/L i n u x项目因此而得
11、到蓬勃发展。但是,K D E是基于Troll Te c h n o l o g i e s公司的Q t库的。Q t库是一个跨平台的C+类库,可以用于多种U n i x、L i n u x、Wi n 3 2等操作系统。Q t并不是遵从G P L或L G P L协议的软件包。它的许可条件是:如果使用它的免费版本开发应用程序或程序库,则所开发的软件必须开放源代码;如果使用它的商用版本,则可以用以开发私有的商用软件。另外,Q t库是属于Tr o l l公司的产品,一旦Tr o l l公司破产,或者被收购,自由软件事业将受到严重打击。1 9 9 7年由墨西哥国立自治大学的 Miguel de Icaza
12、领导的项目组开始了 G n o m e开发计划。G n o m e是GNU Network Object Model Environment(G N U,网络对象模型环境)的缩写。该计划的最初目的是创建一种基于应用程序对象的架构,类似于微软公司的 O L E和 C O M技术。然而,随着项目的进展,项目的范围也迅速地扩大;项目开发过程中有数百名程序员加入进来,编写了成千上万行的源代码。该项目进展很快,1 9 9 8年发布了Gnome 1.0。目前的最新版本是于1 9 9 9年1 0月发布的October Gnome。现在,G n o m e已成为一个强劲的G U I应用程序开发框架,并且可以在
13、任何一种U n i x系统下运行。G n o m e使用的图形库是G t k+最初为了编写G I M P而创建的一套构件库,它是基于 L G P L创建的,可以用它来开发开放源代码的自由软件,也可以开发不开放源代码的商用软件。G n o m e的界面与K D E的界面是类似的(G n o m e的目的之一就是创建一套类似K D E的桌面环境),熟悉K D E的用户无需学习就能够使用 G n o m e。由于以上几个原因,G n o m e已经成为大多数L i n u x发布版本的首选桌面环境。由于G n o m e项目的成功,1 9 9 8年11月Q t库的开发者Tr o l l公司宣布修改许
14、可证协议,Q t库将成为自由软件。但是获取 Q t库的许可证很不方便,况且 G n o m e的进展也很不错,因而,只要有可能,应该避免使用Q t库以及K D E。从用户的角度看,G n o m e是一个集成桌面环境和应用程序的套件。从程序员的角度看,它是一个应用程序开发框架(由数目众多的实用函数库组成)。即使用户不运行G n o m e桌面环境,用G n o m e编写的应用程序也可以正常运行,但是这些应用程序是可以很好地和 G n o m e桌面环境集成的。G n o m e桌面环境包含文件管理器,它用于任务切换、启动程序以及放置其他程序的“面板”、“控制中心”(包括配置系统的程序以及一些
15、小东西)等。这些程序在易用的图形界面背后隐藏了传统的 UNIX Shell。G n o m e的开发结构使开发一致的、易用的和可互相操作的应用程序成为可能。1.3 Linux系统中的软件开发1.3.1 开发所使用的库在L i n u x下开发G U I程序的首要问题是采用什么样的图形库。在 L i n u x的发展历史中曾经出现过多种图形库,但是由于自由软件的特点(没有技术方面的承诺),使得无人继续对它们进行维护,或者其他方面的原因,这些库都已慢慢地被人遗忘了。G t k+(GIMP To o l K i t,G I M P工具包)是一个用于创造图形用户接口的图形库。G t k+是基于L G
16、P L授权的,因此可以用 G t k+开发开放源码软件、自由软件,甚至商业的、非自由的软件,并且不需要为授权费或版权费花费一分钱。之所以被称为 G I M P工具包因为它最初用于开发“通用图片处理程序”(General Image Manipulation Program,G I M P),但是 G t k已在大量软件项目,包括G n o m e中得到了广泛应用。G t k+是在Gdk(GIMP Drawing Kit,G I M P绘图包)的基第1章L i n u x软件开发概述使用3下载础上创建的。G d k是对低级窗口函数的包装(对X window系统来说就是X l i b)。读者可能会
17、看到,在本书中既有G T K,又出现了G t k+。一般用G T K代表软件包和共享库,用G t k+代表G T K的图形构件集。G T K的主要作者是:Peter Mattis petmx c f.b e r k e l e y.e d uSpencer Kimball spencerxcf.berkeley.edu Josh MacDonald jmacdxcf.berkeley.edu G t k+图形库使用一系列称为“构件”的对象来创建应用程序的图形用户接口。它提供了窗口、标签、命令按钮、开关按钮、检查按钮、无线按钮、框架、列表框、组合框、树、列表视图、笔记本、状态条等构件。可以用它们
18、来构造非常丰富的用户界面。在用G t k+开发G n o m e的过程中,由于实际需要,在上面的构件基础上,又开发了一些新构件。一般把这些构件称为 G n o m e构件(与G t k+构件相对应)。这些构件都是 G t k+构件库的补充,它们提供了许多 G t k+构件没有的功能。从本质上来说,G t k+构件和G n o m e构件是完全类似的东西。G T K本质上是面向对象的应用程序编程接口(A P I)。虽然完全是用C写成的,但它仍然是用类和回调函数(指向函数的指针)的方法实现的。1.3.2 Gnome的开发结构只使用 G t k+构件也可以开发出优秀的L i n u x应用程序,但是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 应用程序 开发 指南 21 01
限制150内