(计算机应用技术专业论文)基于linux平台的复杂应用系统开发方法研究.pdf_第1页
(计算机应用技术专业论文)基于linux平台的复杂应用系统开发方法研究.pdf_第2页
(计算机应用技术专业论文)基于linux平台的复杂应用系统开发方法研究.pdf_第3页
(计算机应用技术专业论文)基于linux平台的复杂应用系统开发方法研究.pdf_第4页
(计算机应用技术专业论文)基于linux平台的复杂应用系统开发方法研究.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(计算机应用技术专业论文)基于linux平台的复杂应用系统开发方法研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 基于l i n u x 平台的应用软件开发已经成为计算机软件产、i k 的新兴发展趋势, 总结并探索l i n u x 甲台下的应用软件架构思想与升发方法有着重要的应用价值。 本文针对l i n u x 平台下复杂软件系统的开发方法展开研究,对软件系统架构思 想、设计开发模式进行了全血总结,对系统流程设计、数据库访问方法、网络 通信过程、人机交互机制进行了深入分析。 本文详细分析了l i n u x 半台的操作系统内核机制和数据安全策略,为建立良 好的应用软件架构提供j ,重要的参照信息。 本文创造性的提m 了l i n u x 平台应用软件开发的原则体系,对系统兼容性、 设计模式、功能模块划分等重要原则进行深入论述,为选择正确的l i n u x 平台软 件开发方法提供重要的指导意见。 本文总结并升华了l i n u x 平台的软件工程实施策略,包含用程序设计、用户 界而没订、数据库设计、中间件设计、软件打包与发布等t 作的策略和方法。 本文将l i n u x 平台应用软件开发方法与w i n d o w s 平台应用软件开发方法进行 全面丽深入的对比,充分揭示了l i n u x 平台的特性。并结合具体商业项目案例对 本文研究内容进行r 实践检验,充分论证了本文研究成果的有效性和应用价值。 关键字 l i n u x ,应用开发,跨半台,g u i ,b s 结构 a b s t r a c t a b s t r a c t t h ea p p l i c a t i o ns y s t e md e v e l o p i n gb a s e do dl i n u xp l a t f o r mh a sb e e nah o t s p o t o fs o f t w a r ed o m a i n i t sv e r yi m p o r t a n tt os u m m a r i z ea n dr e s e a r c ht h es o f t w a r e s t m c t u r ea n dd e v e l o p i n gm e t h o d i nt h i sp a p c ric o n c e n t r a t eo nt h et h e o r ya n d m e t h o do fl i n u x b a s e da p p l i c a t i o nd e v e l o p i n g ir e s e a r c ha n da n a l y z et h es y s l c m f l o wd e s i g n ,d a t a b a s ea c c e s s i n gm e t h o d ,n e t w o r kc o m m u n i c a t i o n ,u s e ri n t e r f a c e ,e t c i nt h i sp a p e ria n m y z et h ep r i n c i p l eo ft h el i n u xc o r e ,a n dd a t as e c u r i t ys t r a t e g y , p r o v i d em u c hi m p o r t a n tr e f e r e n c ei n f o r m a t i o nf o rf a v o r a b l es o f t w a r ea r c h i t e c t u r e a n di nt h i s p a p e r , lb r i n gf o r w a r dt h ep r i n c i p l e o fl i n u x b a s e ds o f t w a r e d e v e l o p m e n ti nac r e a t i v ew a y ie m b e d d e dd i s c u s st h es y s t e mc o m p a t i b i l i t y , d e s i g n m o d e ,f u n c t i o nm o d u l ep a t i t i o n ,e r e ip r o v i d ei m p o g a n ti d e at oc h o o s et h er i g h t l i n u x - b a s e ds o f t w a r ed e v e l o p m e n t i n t h i sp a p e ris u m n q a r i z ea n ds u b l i m et h el i n u x b a s es o f t w a r ee n g i n e e r i n g s t r a t e g y , i n c l u d ep r o g r a m m i n g ,g u id e s i g n ,d a t a b a s e ,f u n c t i o nm o d u l e ,s o f t w a r e p u b l i s h i n g ,e t c i nt h i sp a p e rtd e e p l yc o m p a r et h ed e v e l o p i n gm e t h o di nl i n u xa n dw i n d o w s , a n dc l a r i f yt h ec h a r a c t e r i s t i co fl i n u xp l a t f o r m a n di a n a l y z et h ee m p h a s e so f l i n u x b a s e da p p l i c a t i o nd e v e l o p m e n tw i t hs e v e r a le x a m p l ep r o j e c t s a l lo ft h e s ew i l l b eb e n e f i c i a lt of u t u r er e s e a r c ha n dp r o j e c t k e y m o r d l i n u x ,a p p l i c a t i o nd e v e l o p m e n t ,c r o s s p l a t f o r m ,g u i ,b ss t m c t u r e i i 内容目录 图目录 图2 1l i n u x 图形用户界面8 图3 1 消息队列结构。1 0 图5 1 典型的b s 模式应用程序的结构图2 7 图6 1l i n u x 下的i d k k y l i x 3 1 图6 。2 国家邮政局中心局生产作业系统g u i 1 3 3 图6 3 国家邮政局中心局生产作业系统g u i 2 3 3 图6 4 开源软件d o g m a i l 的g u i 截图1 3 4 图6 5 开源软件d o g m a i l 的g u i 截图- 2 3 4 图6 6 越洋软件协同开发平台系统的截图- 1 3 5 图6 7 越洋软件协同开发平台系统的截图2 。3 5 图6 8k y h x 主程序与s o 库的层次关系图3 9 图7 1o s e c w p 系统模型4 5 图7 2o s e c w p 流程图4 6 图7 3 公共论坛界面4 7 图7 4b u g 管理系统 v i 内容目录 图7 5 网络计费系统功能模块框架4 9 图7 6 典型的网关计费系统结构图4 9 图7 7 网关计费系统逻辑流程图。5 1 图7 4 数据包从某网络进入l i n u x 路由器所经过的n e t f i l t e r 过程5 3 图7 5 数据包从某网络进入l i n u x 路由器所经过的n e t f i l t e r 过程5 4 图7 1 1 读取陪着文件生成计费信息程序流程5 5 图7 1 3 用户流量计费查询界面5 7 v i i 内容目录 表目录 表2 1 系统架构研究9 表3 1 运行机制研究1 5 表4 1 数据安全性分析。2 2 表7 1n e t f i l t e r 内建表功能描述5 2 表7 2i p t a b l e s 记数规则5 5 v i l i 南开大学学位论文版权使用授权书 本人完个了解南开大学关于收集、保存、使用学位论文的规定, 同意如一卜- 各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论义的印刷本和电子版,并采用影印、缩印、 扫描、数宁化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:钵逸群 亭的譬年6 只1 h 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名:张逸群 解密时间:年月 日 各密级的最长保密年限及书写格式规定如卜: j 内部5 年( 最长5 年,可少丁5 年) ;秘密l o 年( 摄长1 0 年,可少于1 0 年) i 机密2 0 年( 最跃2 0 年,可少于2 0 年) 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除义中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由木人承担。 学位论文作者签名 j 岵年6 月j 日 绪论 第一章绪论 第一节研究背景与问题提出 1 i 1 论文研究背景介绍 作为微软公司w i n d o w s 操作系统的丰要竞争者之一,近年来发展迅猛的 l i n u x 操作系统正在得到越来越广泛的应用。随着越来越多的l i n u x 厂商的加入 ( 目前l i n u x 版本已有1 8 8 个) ,它的应用已经从网络扩展到几乎所有i t 领域, 从数据库、企业级o f f i c e 、电子商务软件、网络管理、r a s ( 可靠性、可用性和 可服务性) 4 - t 。算,到计算机辅助设计制造( c a d c a m ) 、电影特技模拟等各个方 面。 强大的功能背后必然离不开各种复杂应用程序的支持。目前基于l i n u x 环 境的各种应用系统的设计开发早已成为各应用领域的热点,并越来越广泛的为 商家及企业提供着完善且强大的解决方案。 1 1 2 论文研究问题分析 习惯了w i n d o w s 环境下开发模式的项日开发人员转向l i n u x 环境开发,一 些方法性和经验性的原则是非常重要的。如果遵循一个准确高效的方法投入研 发工作,势必能够人幅降低开发成本,提高开发效率,降低项目风险。 第二节l i n u x 平台应用开发综述 1 2 1 l i n u x 系统的产生与发展概述 l i n u x 的源头要追涮到虽古老的u n i x 。1 9 6 9 年,b e l l 实验室的k e nt h o m p s o n 开始利用一台闲置的p d p 一7 计算机开发了一种多用户,多任务操作系统。很快, d e n n i sr i c h i e 加入了这个项目,在他们共同努力下诞生了最早的u n i x 。r i c h i e 受一个更早的项目一m u l t i c s 的启发,将此操作系统命名为u n i x 。早期 第1 页 绪论 u n l ( 是j l j 汇编语言编写的,但其第三个版本用一种崭新的编程语言c 重新设计 了。c 是r i c h i e 设训出来并用于编写操作系统的程序语言。通过这次重新编写, u n i x 得以移植到更为强大的d e cp d p 一1 t 4 5 与1 1 7 0 计算机上运行。后来发生 的一切,正如他们所说,已经成为历史。u n i x 从实验室走出来并成为了操作系 统的主流,现在几乎每个主要的计算机厂商都有其自有版本的u n i x 。【2 j l “ 而l i n u x 起源于一个学生的简单需求。【4 1 l i n u st o r v a l d s ,l i n u x 的作者与丰要 维护者,在其上大学时所买得起的唯一软件是m i n i x m i n i x 是一个象u n i x 一样 的被广泛用来辅助教学的简单操作系统。l i n u s 刑m i n i x 不是很满意,于是决定 自己编写软什。他以学生时代熟悉的u n i x 作为原型,在一台i n t e l3 8 6p c 上开 始了他的工作。他的进展很快,受工作成绩的鼓舞,他将这项成果通过互连网 与其他i 刘学共享,主要用于学术领域。后来有人看到了这个软件并开始分发。 每当出现新问题时,会有人立刻找到解决办法并加入其中,很快的,l i n u x 成 为了一个操作系统。值得注意的是l i n u x 并没有包括u n i x 源码。它是按照公开 的p o s i x 标准重新编写的。l i n u x 大量使用了由麻省剑桥免费软件基金会的 g n u 软件,同时l i n u x 自身也是用它们构造而成。 l i n u x 的迅速成长与用户享有修改并发行程序新版本的“自由”权利是分不 开的。显然,冲击世界l i n u x 的热浪,并不仅仅因为其低廉的成本和高的性能, 而主要在于其真正开放的结构和所遵循的标准,以及l i n u x 爱好者和开发者所 奉行的信念。 l i n u x 是一套以u n i x 系统为基础发展而成的操作系统。 5 1 自1 9 9 1 年诞牛至 今,l i n u x 在很多方面已经赶上,甚至超过了商用的u n i x 系统。它充分利用了 x 8 6c p u 的任务切换机制,实现了真正的多任务、多用户环境,由于最初的设 计目的就是面向u n i x 系统低端,所以在提供强大功能的同时,l i n u x 对硬件配 置的要求却非常低它能够在4 m 内存的3 8 6 处理器上很好地运行。新版木的 l i n u x 支持许多处理器芯片。更重要的是,它足一种自由软件,许多软件设计高 手都愿意在l i n u x 上丌发东西。鉴于国际的流行状况和我国目前操作系统的研究 状况,选取l i n u x 作为嵌入式操作系统的是很好的选择。 1 2 2 l i n u x 平台应用软件开发综述 系统稳定、功能强大、支持多种硬件平台、应用软件多、简单易用 第2 页 绪论 “n u x 在许多方向与u n i x 类似,但是它是一个完伞独立的操作系统,它可以 非常稳定地运行存许多种处理器卜,系统的规模小到8 位的嵌入式系统大到 口 i a 6 46 4 位结构的机器,它有许多与u n i x 卡h 似的命令和编程接口,大量刊惯u n i x 操作的用户和程序员川以缀方便地学会使用在它。而且许多商用的软件已经开 始有l i n u x 版本,a p p l i x 和s t a r 公司提供了数种字处理、电子表格、图形应用 等程序;c o r e lw o r d p e r f e c t7 、a d a b a sd 和r a i m ad a t a b a s em a n a g e r + + 数据库、 n e t s c a p en a v i g a t o r3 0 和f a s t t r a c kw e b 服务器、a d o b ea c r o b a tp d f 阅读器、 f r e e b u i l d e r 等的l i n u x 版均己问世;共至连微软这样的软件业巨人也币在准备推 出其分布式计算标准d c o m 的l i n u x 版。 近几年来,商用u n i x 系统开始将u n i x 往人的方向发展,往往以企业级系 统网络服务器方式出现,这使得u n i x 系统的复杂性不断增加,而管理整个u n i x 系统也变得非常地复杂。而l i n u x 却做到了简单易用,并且系统管理也不复杂, 加上l i n h x 能够很好地胜任企业级刚络服务器的要求,所以l i n u x 近几年存心止 网络服务器市场占有率的不断提高,大有取代商用u n i x 系统之势。 使用成本低 大多数的商用操作系统,微软的w i n d o w s 等,都要为每个使用的拷贝支付 相当数量的费用,而l i n u x 是免费软件,只要用户遵守g p l ( g e n e r a lp u b l i cl i c e n s e ) 的规定,可以免费使用和分发任意多的拷贝。【6 商用的操作系统除了要为操作系 统本身付费以外,还要为该平台下的软件开发工具付费。而l i n u x 还提供了相当 完善的免费软件开发工具包,包括开发c ,c + + ,j a v a 等程序的编译器和调试工具, 这些t 具功能不亚于商用的软件开发包,它们支持各种类型的计算机体系结构 和调试环境。 文档完善 l i n u x 有非常多的文档支持,从为初学者准备的各种教棵到非常详细的联机 机帮助文档,l i n u x 是i n t e m e t 充分发展的产物,许多关于l i n u x 的文档都可以 在i n t e m e t 上找到和下载,l i n u xd o c u m e n tp r o j e c t 是为l i n u x 提供系统化的文档 支持的项目,在世界上许多程序员和用户的帮助f ,它已经收集了非常详细的 系统文档和使用文档。而且,各种关于l i n u x 的书籍和杂志正如雨后春笋般地m 现,我们甚至可以在书店里看到专门为l i n u x 书籍开辟的区域。 网络功能非常强大 l i n u x 操作系统最突出的是涮络部分,基奉上所有的网络协议和网络接门都 第3 页 绪论 可以在l i n u x 一找到,由于它使用了固定大小的缓冲区而不是象u n i x 一样使用 r n u f 或s t r e a m s 缓冲区,l i n u x 核,t l , 比标准的u n i x 能更加高效地处理网络协 议,系统的网络吞吐性能非常好,这也是为什么l i n u x 在网络服务器市场上占据 越来越大市场分额的一个原因。 优秀的g u i 系统xw i n d o w xw i n d o w 是一个在大多数u n i x 工作站上使用的图形阐户界面,它是一种 与平台无关的客户朋日务器模型,可以让用户在一台机器上打开另一台机器上的 窗口。正是这种特性使得u n i x 和l i n u x 系统上的用户和应用程序非常自然地通 过网络连接在一起。l ,1 l i n u x 提供各种各样的窗口管理器,用户可以根据自己的口味挑选各种的风 格,对于那些习惯于w i n d o w s 9 5 的用户来说,甚至他还i u 以挑选像w i n d o w 9 5 样的窗u 管理器。 自由而开放的精神 l i n u x 不是某个公司的私有财产,它是一个开放软件,是免费的和源代码公 开的。l i n u x 在这几年不断成熟,越来越多的人加入了l i n u x 的行列,以前l i n u x 只是一群黑客的玩具和专家的实验用操作系统,而现在即使足屯脑的普通用户 也在用l i n u x 。为l i n u x 提供服务的公司也开始出现,为客户提供专业化的技术 支持。但实际上不i = j 花钱也可以通过i n t e m e t 新闻组得到强大的l i n u x 技术支持 和帮助。l i n u x 有一个庞大的支持者群体,其巾许多人都编写驱动程序和其它的 更新程序并且免费的通过i n t e r n e t 网络进行分发。这意味着对新硬仆的l i n u x 驱 动程序甚至比用于其它的u n i x 系统如s o l a r i s 的驱动程序还来得及时。l i n u x 的庞大的志愿者网络存生产“补丁”程序方面反应很快。如,当p e n t i u m 的 b u g 被发现以后,l i n u x 就是最早提供解决这个问题的方案的操作系统。如果一 个l i n u x 应用是流行的,用户一般都可以通过l i n u x 新闻组得到很好的支持。有 许多u s e n e t 新闻组可供l i n u x 用户寻求帮助。对一般l i n u x 问题的回答时间可 同一些厂商的e m a i l 支持( 甚至是电话支持) 相比。对l i n u x 的支持绝大部分 是通过用户团体在u s e n e t 新闻组上提供的。这上面广泛收集有大量的f a q ,其 内容包括l i n u x 安装、配置和故障定位的方方面面。在u s e n e t 上提供的许多这 方面的材料现在已经被一些出版商如w a l n u s c r e e k 等公开出版了。所有的这些, 都是现有的嵌入式操作系统所无法比拟的。 第4 贞 绪论 第三节本文内容组织 文章的其余各章按照下而顺序纠织: 第_ 章:比较了l i n u x 与w i lj d o w s 在系统架构上异同,包括内核、g u i 、应 用开发环境、历史兼容性和发展潜力等; 第三章:比较了l i n u x 与w i n d o w s 的系统运行机制,研究r 应用系统丌发 的基础问题: 第四章:研究了l i n u x 与w i n d o w s 系统的数据安全性问题; 第五章:总结了l i n u x 下复杂应片j 系统的开发原则; 第六章:对l jn u x 下应用程序的没计方法与工程实施策略进行了总结与研 究; 第七章:分析rl i n u x 下系统实施案例0 s e c w p ( 越洋软件协同开发平 台) 系统和智能网关计费平台的设汁b - 开发过程: 第八章:对现有工作进行了总结与展望。 第5 页 l i n u x 甲台系统结构研究 第二章l i n u x 平台系统结构研究 各种应用软件的运行,是建立在操作系统底层的各种运行机制之上的。操 作系统的忭能与特点直接关系到软件系统的运行效率及安全性等诸多问题。对 l i n u x 平台的系统结构进行深入研究,可以更好地保证软件项目底层架构设计的 优越性。 第一节l i n u x 内核机制分析 内核是操作系统的核心,直接反映了操作系统的特点与性能。从以下两个 角度比较l i n u x 系统和w i n d o w s 系统,剥研究两种系统的架构有着重要意义。 内核的弹性 l i n u x 的内核表现出了高度的可配置性和独立性,主要是完成以r 主要工 作:1 0 驱动设备管理,t c p i p 协议栈,以及任务调度等。l i n u x 的标准内核发 布版本有4 0 m b 一5 0 m b ,而现在在一些评估板上试验的嵌入式l i n u x 系统( 使用a n n 或m k 系列的c p u ) 只用到了2 m b ,同样实现了网络功能和完整的任务调度,这 使得l i n u x 可以适用十从高端服务器到嵌入式应用的各个等级的计算平台上, 与之相比,w i n d o w s 的内核概念不是非常清晰。w i n d o w s 更加的适合台式机, w i n d o w sn t 系列在高端服务器市场占有的份额并不高,w i n c e 发展中电遇到了 一些结构性的困难。 内核的任务管理 衡量。个内核的重要指标是多任务环境下的安个性和任务调度的效率。 l i n u x 在这方面继承了u n i x 的优点。而w i n 9 x ( 包括w i n d o w sm e ) 系统小支 持安全的多任务环境,w i n d o w sn t w i n d o w s2 0 0 0 虽然做到了一定的安令性, 但是效率还不是非常理想。举例来说,在将个多串口并发驱动的应1 _ j 程序改 写成多线程的方式的实验中,原本希望通过这种方式来提高处理速度,实际上 在程序运行的时候,速度降低了2 到3 倍。因此,同样的企业级应用在低硬件 的机器上跑得比高硬件配置的w in d o w sn t w i n d o w s2 0 0 0 快,这跟w i n d o w s 系 统的内核任务管理效率是很有关系的。3 第6 页 l i n u x 平台系统结构研究 由上面的比较可以看出,两种系统的内核各有特点,但从普适性和多任务 环境下的性能来看,l i n u x 系统占有一定的优势。 第二节l i n u x 的系统兼容性 一个设计优良的操作系统应该有一个精简和一致的构造,存添加新的功能 时不必破坏原有的结构,而且在后继发展中能够保持前后一致性i l n ix 由于当初 设计时的科学性,以致于2 0 多年的时问内,没有在设计崽想上做过大的变动。 虽然u n i x 有很多的版本,但是通过p o s i x 标准,这些系统在源代码上保持高度 的兼容。 与之相比,w i n d o w s 的各个阶段各个版本操作系统的框架设计在一致性方面 没有u n i x 系统及类u n i x 系统那么严谨,在硬件设备有了新的发展后,往往会 出现一些问题。w i n d o w n l 6 位和3 2 位两个时期的操作系统之间有比较明显的“代 沟”。这种硬件上的差异如果由操作系统本身来考虑,能够为二次开发者提供极 大的方便。所以,从系统的可增值性和历史兼容性方面来说,l i n u x 系统有其优 势所在。 第三节l i n u x 图形用户界面 l i n u x 的g u i 建市在x - w i n d o w s 的基础,这足与w ir l d o w s 的g u i 完全不同的 一种架构。w i n d o w s 的g u i 是通过应用程序直接调用w i n d o w s 底层的6 u i 函数。 或者说这是种垂直的关系。 而l i n u x 的( j u i 是应用程序通过s o c k e t 向x - w in d o ws e r v e r 发送请求实现 的,只有xs e r v e r 在真正的写屏幕。或者说这是一种平行的关系。l i n u x 的这 种方式带来更高的系统稳定性,因为图形最示系统崩溃,对于i ,i n u x 来说,只 不过是死掉一个进程而已,而对w i n d o w s 来说会导致整个系统的崩溃。但是, x w i n d o w 的开销要比w i n d o w s 的方式大,小过由于硬件的发展,x w in d o w 在稳 定性上的优点会将会弥补速度上微不足道的差异。相信随着l i n u x 应用程序存 桌而市场上的不断扩展,基于x - w i n d o w 的6 u i 在丌发中会体现出其自身的优势。 下图是一张xw jn d o w 下的截图,可以看到l i n u x 的图形用户界面丝毫不比 w i n d o w s 系统逊色。 第7 页 l i n u x 平台系统结构研究 图2 1l i n u x 图形用户界面 第四节l i n u x 应用开发环境 从目前的情况来分析,1 i d u gi 二的开发工具显得没有w i n d o w s 的容易入门, 这是一个事实。但是这并不代表l i i u x 上的开发环境比w i n d o w s 差。对于开发 人员来说,l i n u x 系统下的编程入门虽然较w i n d o w s 下慢,但是旦熟悉了,以 后就很少需要补充新的概念。1 与之相比,微软用一些很“简便”的编程概念吸引开发者群体。同时这些 概念的更新淘汰也非常快,这就使得开发人员面对个比较矛盾的选择:是紧 跟微软学习新的概念还是依然使用老的技术,这种选择就带来了开发成本及风 险的提升。广大企业及开发者往往要花费大量的时间跟踪、适应微软新技术。 而他们在这方面花费的时间远远超过去学习1i n u x 编程的时间。 另一方面,l i n u x 上i d e 的开发工具也在成长,如k y jx 、j b u i1d e r 、q t 第8 页 l i n u x 甲台系统结构研究 d e s i g n e r 等等,在开发方便程度和功能上正在越来越接近w i n d o w s 下的同类工 具。相信在这种趋势下,会吸引更多的应用开发工程师投入到g i n u x 开发阵营。 第五节l i n u x 技术发展潜力 w i n d o w s 系统的技术架构在现在的基础l 想要有架构上的创新,难度足相当 的。比较可行的方法提出一个完全不同的系统,然后在里面做个w i n 3 2 子系统, 以兼容现有的程序。这种方法类似于就像在w ir d o w sn t 系统上建造w i l 2 1 6 子系 统,这在空问及效率上都要付出比较高昂的代价。 对于1 ir l i x 来说,已经有一个很好的架构基础。再往下发展,生要工作重 点就是填充内容,丰富应用。从这一点上来说,在可以预见的时间内,w i m o w s 系统无法在架构上超过h i n u x 。并且,如果l i n u x 在嵌入式应用中取得了成功, 那么将来就会对台式机市场形成外围的压力。随着p c 机的控制与网络能力逐步 融合到家电和传统设备中去,这一天一定会出现。微软以下压上二的策略( 用 w i n d o w s 9 x 的市场优势推w i n d o w sn t ) 会在g i n u x 上重演,这样势必对w i n d o w s 系统提出了更强有力的竞争。h i n u x 和w i n d o w s 特点比较如下表所示; 表2 i 系统架构研究 比较内容 l i n u xw i n d o w s 内核弹性弹性佳。从桌面到服务器到更加适合台式机。 嵌入式系统都适合。 内核任务管理多任务环境下安全性佳,任 效率较低。 务调度效率高。 历史兼容性 各版本之间高度兼容。不同时代版本一致性较 低。 g u i 基于x s e r v e r x c ll e n t集成在内核中的g u i 系 结构的xw i n d o w 系统,开统,界面友好但稳定性稍 销大但稳定性佳。逊。 应用开发环境易用性稍著,但发展迅速。适合快速开发,概念更新 快。 技术发展潜力架构更新相对容易。架构上创新代价高昂。 第9 页 l i n u x 平台开发技术与方法 第三章l i n u x 平台开发技术与方法 对于软件设计人员来说,在l i n u x 和w i n d o w s 两种平台下进行软件开发是 有很多不同之处的。从事件驱动、消息处理、文件系统、配置管理、可执行文 件结构等方面来分析和比较两种操作系统下台的异同,对r 应用系统的设计开 发具有非常重要的意义。 第一节事件驱动与消息处理 3 1 ,1w i n d o w s 的消息机制 w i n d o w s 是一种面向对象的体系结构,w i n d o w s 环境和应用程序都是通过 消息来交互的。w i n d o w s 应用程序开始执行后,w i n d o w s 为该程序创建一个“消 息队歹0 ( m e s s a g eq u e u e ) ”,用以存放邮寄给该程序可能创建的各种不同窗口的消 息。消息队列中消息的结构( v i s g ) 为: t y p e d e fs t r u c tt a g l 蛞g 燃嬲蕊绷缓媾燎黜薷景的窗晌柄 o p a r a mw p a r a m ;,和下面一个参数都同m e s s a g e 值有关,为消息参数 l p a r a h1 p a l a n : d w o r dl i m e ; ,后两个参数则分别表示邮寄鞘息的时间和光标位置 p o i h tp t ; h s 0 : 图3 1 消息队列结构 把消息传送到应用程序有两种方法:一种是由系统将消息“邮寄( p o s t ) ”刘 应用程序的“消息队列”中去,这是“进队消息”。而另一种则是由系统在直接 调用窗口函数时将消息“发送( s e n d ) ”给应用程序的窗口函数,属于“不进队消 息”。消息足在消息循环中被处理的。 大多数w i n d o w s 的应用程序都有自己的窗口,只要拖动鼠标,就能够改变 第1 0 页 l i n u x 平台刀发技术与方法 窗口的人小、位置,而这一结果的实现过程,正是w i n d o w s 的消息机制的体现。 这一过程中,当用户改变窗口人小时,w i n d o w s 给程序发送一条消息指出新窗 口的大小。然后程序根据这条消息,适当调整窗口的大小,以反映大小变化。 所谓的“w i n d o w s 给程序发送消息”,是指w i n d o w s 调用程序中的一个函数,该 函数的参数描述丫这个特定消息。这种位于w i n d o w s 程序中的函数被称为“钳 i 过程”。 程序创建的每一个窗口都会有相关的窗口过程。这个窗口过程是一个函数, w i n d o w s 是通过调用窗口过程来给应用程序发送消息的,应用程序就根据这 消息进行相应的处理,然后将控制返给w i n d o w s 。w i n d o w s 程序开始执行后, w i n d o w s 为该程序建立一个“消息队列”。这个消息队列用来存放应用程序可能 遇到的各种消息。程序中有一段代码,叫做“消息循环”,用来从“消息队列” 中取出消息,并发送给相应的窗口过程。 3 1 2l i n u x 的信号处理机制 l i n u x 是类u n i x 的内核,在事件驱动和消息处理等机制上于w i n d o w s 平台 上的系统完全不同。相对于w i n d o w s 系统的消息机制,l i n u x 系统使用信号机制 来处理系统中的一个或多个进程异步事件。比如,键盘卜某个键被按下,或者 计时器也下某个特定事件的时问。系统也用信号来处理某种严重的错误。比如, 一个进程试图向一块不存在的虚拟内存写入数据,或者某个进程试图执行一条 非法指令。 l i n u x 系统中的信导不但能从内核发往一个进程,也能从一个进程发往另一 个进程。信号还提供了向l i n u x 系统进程传送软中断的简单方法。信号可以中断 一个进程,而不管它正在做什么工作。由于信号的这些特点,一般用它来通知 进程发生了什么事件和处理非正常的情况,而不能片j 它来完成进程问的直接数 据传送。 收到信号的进程对各种信号有不同的处理方法。处理力法可以分为三类: 1 ) 忽略某个信号,对该信号不做任何处理,就像未发生过一样。 2 ) 类似中断的处理程序,对于需要处理的信号,进程可以指定处理函数,南该 函数来处理,即捕捉信号。 3 ) 对该信号的处理保留系统的默认值,这种默认操作,对大部分信号的默认操 第1 1 页 l , i n u x 平台开发技术与方法 作是使得进程终止。进程通过系统调用s i g n a l 来指定进程对某个信号的处理 行为。 关于信号的产生条件,宅要有以卜十五种情况: 1 ) 硬件异常会产生信号:比如被0 除,无效内存引用等。这些条件通常山硬何 检测到,并将其通知内核。然后内核为该条件发生时正在运行的进程产牛适 当的信号。例如,对执行一个无效存储访问的进程产生个s i g s e g v 信号。 2 ) 用户在按f 特定的键之后,将向该终端上的前台进程组发送信号。 3 ) k i n 0 ) 命令允许用户向进程发送任意信号。 4 ) k i l l ( 2 ) 系统渊用可允许进程向其他进程或进程组发送任意信号。前提是:发 送信号进程的所以者必须是超级用户,或者接收信号进程和发送信号进程的 所有者必须丰1 同。 5 ) 软件设置的条件,比如s i g a l a r m 。 l i n u x 系统的信号机制包括核心如何向一个进程发送信号、进程如何接收一 个信号、进程怎样控制自己对信号的反应、核心在什么时机处理和怎样处理进 程收到的信号等等一系列对信号进行处理的方法。【9 】【1 ” 前面提到的处理信号的三种与式:进程接收信号后退出;进程忽略该信号; 进程收到信号后执行用户设定用系统调用s i g n a l 的函数。当进程接收到一个它忽 略的信号时,进程丢弃该信号,就像没有收到该信号似的继续运行。如果进程 收到一个要捕捉的信号,那么进程从核心态返网用户态时执行用户定义的函数。 而且执行用户定义的函数的方法很巧妙,核心是在用、栈上创建一个新的层 该层中将返回地址的值设置成用户定义的处理函数的地址,这样进程从核心返 回弹出栈顶时就返回到用户定义的函数处,从函数返同再弹出栈顶时,才返网 原先进入核心的地方。这样做的原凶时用户定义的处理函数不能且,1 i 允许在核 心态下执行( o n 果用户定义的函数在核心态下运行,用j 、】就可以获得任何权限) 。 第二节文件系统与文件管理 l i n u x 和w i n d o w s 都支持多种文件系统。文件资源可以通过n e t b i o s 、丌p 或者其他协议与其他客户机共享。可以很灵活地对备个独立的文件系统进行j - 组 织,由管理员来决定它们在何处可以以何种方式被访问。 l i n u x 不使用文件名扩展来识别文什的类型。相反,l i n u x 根据文件的头内 第1 2 页 l i n u x 平台开发技术与方法 容来识别其类型。为了提高人类可读性用户仍可以使用文什名扩展,但这对 l i n u x 系统来说没有任何作用。不过,有。些应用程序,比如w e b 服务器,可 能使用命名约定来以别文件类型,但这只是特定的应用程序的要求而刁i 是l i n u x 系统本身的要求。 l i n u x 通过文件访问权限来判断文件足否为可执行文件。权限是对计算机系 统中的数据或用数据表示的其它资源进行访问的许r j j 。任何一个文件都可以赋 予可执行权限,这样程序和脚本的创建者或管理员可以将它们识别为可执行文 件。这样做有利于安全。保存到系统上的町执行的文件不能自动执行,这样就 可以防止许多脚本病毒。 在文件权限的设置和管理上,l i n u x 系统与w i n d o w sn t 2 0 0 0 存在着很大的 区别。对于w i n d o w sn t 2 0 0 0 ,_ 要对某个文件设置了所有人不可写的安全属性 ( 也就是文件权限) ,无论在哪个文件夹中都是不可以删除的,不管所在的文件 夹的安全属性是什么。然而在l i n u x 系统中,文件的权限可以分为读的权限、写 的权限和执行的权限三种,分别用r 、w 和x 表示。不同的用户具有不l 司的读、 写和执行的权限。i l “ l i n u x 与w i n d o w s 有着截然不同的分区及文件系统。首先,在l i n u x 皂边没 有盘符这个概念,用目录的形式进行管理。把每一个分区和某一个目录对j 衄, 以后对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理手段和 软件目录管理手段的统一。这个把分区和目录对应的过程叫做挂载( m o u n t ) 。这 种对应关系可以由用户随时中断和改变。其次,l i n u x 拥有- 一种特有的s w a p 交换分区格式。如果没有足够的内存,就不能运行某些大型的软件。解决的办 法是在硬盘上划出一个区域来当作临时的内存,就像增大了内存一样。w i n d o w s 操作系统把这个区域叫做虚拟内存,l i n u x 把它叫做交换分区s w a p 。虽然随着 硬件价格的下降,内存已经不大会受限制了,但是交换分区这个概念却保斟下 来。继续保留一卜去的原因还涉及到内核的问题。还有,在分区格式方面,l i n u x 也支持多种格式。l i n u x 是一个开放的操作系统,它最初使片je x t 2 格式,后来使 用e x t 3 格式,同时支持很多的分区格式,包括很多大型机上u n i x 使用的x f s 格式,也包括微软的那些f a t 及n t f s 格式。 第1 3 页 l i n u x 平台开发技术与方法 第三节操作系统配置管理机制 自w i n d o w s9 5 开始,微软所有版本的操作系统均采用了“注册表”机制。 注册表是w i n d o w s 内部个巨大的树状分层的数据库( w in d o w s 目录r 的 s y s t e m d a t 和u s e r d a t ) ,存放着各种参数,直接控制着w i n d o w s 的启动、硬 件驱动程序的装载以及一些w in d o w s 应用程序的运行,从而在整个系统中起着 核心作用。 l i n u x 中的配置文件是人类可读的文本文件,这与过去的w in d o w s 中的 i n i 文件类似,但与w i n d o w s 的注册表机制在思路上有本质的区别。每一个应 用程序都有其自己的配置文件,而且通常不与其他的配置文件放在一起。不过, 大部分的配置文件都存放于一个e 录树( e t c ) 下的单个地方,所以看起来它 们在逻辑上是在一起。文本文件的配置方式使得不通过特殊的系统工具就可以 完成配置文件的备份、检查和编辑工作。 在进行应用软件开发的时候,有些功能模块要涉及到让用户修改系统配置, 如设置数据源、设置串行端u 参数等等。在w i n d o w s 下一般的解决方案就是操 作注册表,保存结果然后重启计算机。在l i n u x 下则是直接修改配置文件,然 后重新启动服务即可。不仅操作简便,而且不用频繁重启计算机。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论