




已阅读5页,还剩68页未读, 继续免费阅读
(计算机应用技术专业论文)基于ml的防火墙和入侵检测支持环境的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士论文 基于m l 的防火墙和入侵检测支持环境的研究 摘要 随着目前安全性问题目益突出,针对l i n u x 平台的防火墙和入侵检测系统正 在逐步推向市场,伴随着这些安全产品的推出,其运行环境也成了很多软件开发 者关注的焦点。为了能防止防火墙和入侵检测系统不被恶意软件挂起,致使这些 安全产品失效,必须保证它们在每次调度时刻最先得到调度,同时增强内核的突 发响应能力,让实时应用程序以指定的周期,可预知的方式运行。针对这样的目 的,本论文将提出e l i n u x 的解决方案,实现硬实时控制。 然而,把l i f l u x 用作为硬实时系统还存在几个问题,本着这样的问题,论文将 对通用l i n u x 的内核作要点分析,然后对e l i n u x 解决方案的设计与实现进行更为 详细的描述,最终目的是为了让系统成为开放的、标准的、可良好支持的、有效 的和经济的、具有硬实时控制的多任务系统,最后总结并展望未来。 关键词:l i n u xe 1 i n u x 硬实时控制t s c 硬中断软中断内核 硕士论文基于札的防火墙和入侵检测支持环境的研究 a b s t r a c t n o w d a y s ,a st h es e c u r i t yp r o b l e mb e c o m i n gm o r ea n dm o r ep r o m i n e n t , f i r e w a l l a n di d sb a s e do nl i n u xb e c o m em o r ea n dm o r ei nt h em a r k e t ,s ot h e i rr u n n i n g s y s t e m a l s ob e c o m eh o t p o t so f m a n ys o f t w a r e e x p l o r e s i no r d e r t oa v e r tf i r e w a l la n d d s b e i n g s u s p e n d e db ym a l i c i o u ss o f t w a r e sa n dd i s a b l e d ,w em u s te n s u r et h a tt h e ya r ee x e c u t e d f i r s te a c ht i m e ,a n dt h ed e l a yo ft h ek e r n e li st h es h o r t e s t ,s ot h a tr e a lt i m ep r o g r a mc a n b ee x e c u t e da ts p e c i f i ct i m e i no r d e rt oa c h i e v et h i se f f e c t , t h i sp a p e r p u tf o r w a r dt h e p l a no f e l i n u xt or e a l i z eh a r d r e a l t i m ec o n t r 0 1 h o w e v e 5t h e r ea r es t i l ls e v e r a lp r o b l e m sw h e nw eu s i n gl i n u x 墨sh a r d - r e a l t i m e s y s t e m t or e s o l v et h e m ,t h i sp a p e rw i l la n a l y z el i n u xk e r n e la n dt h e nm a k em o r e d e t a i l e dd e s c r i p t i o na b o u tt h ep l a n n i n ga n dr e a l i z a t i o no fe l i n u x ,t h ep u r p o s eo f w h i c hi st om a k et h e s y s t e mm o r eo p e n ,n o r m a l ,f r i e n d l y ,e f f e c t i v ea n db e c o m ea m u l t i t a s ks y s t e mh a v i n gh a r dm a l t i m ec o n t r 0 1 a tt h ee n do ft h ep a p e r , im a k ea c o n c l u s i o na n da l s ot h ee x p e c t a t i o no f t h ef u t u r e k e y w o r d s :l i n u x e l i n u xh a r dr e a l - t i m et s c h a r di n t e r r u p ts o f ti n t e r r u p t k e r n e i y 6 2 t2 6 4 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 已在论文中作了明确的说明。 研究生签名:鱼3 塾鱼 啤年6 月j 日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅 或上网公布本学位论文的全部或部分内容,可以向有关部门或机构送 交并授权其保存、借阅或上网公布本学位论文的全部或部分内容。对 于保密论文,按保密的有关规定和程序处理。 研究生签名:壹i 量整 工。d 库年6 月f 日 硕士论文基于札的防火墙和入侵检测支持环境的研究 1 1 引言 第一章绪论 随着目前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 源代码,如剖析应用程序的核心代码像防火墙、入 侵检测系统等,发现系统存在的漏洞,写个病毒或程序屏蔽掉防火墙和入侵检测 提供的安全保护功能已成为可能,同时也可对那些尚未进行修补工作的系统进行 攻击。诸如这此攻击,使得备受关注的l i n u x 操作系统安全性受到了使用者的质 疑。 为了从根本上提高系统的安全性能,同时又不能影响到通用l i n u x 内核的设 计,必须提高防火墙和入侵检测系统的时间性要求,让支持环境的设计者完全控 制它们的运行,给整个系统提供一个非常完全的保护壳。目前大部分计算机系统 都提出了加入实时性控制,那就是说它们的操作都有个时间性因素,对这种因 素的要求目前也正越来越高。但是l i n u x 通用的内核设计带来了诸多不确定的因 素,确定和消除导致内核操作不确定性的所有因素是不可行的。 基于此思想,本论文提出了e l i n u x 的实时性解决方案,目的主要是实现硬件级的 实时控制本论文将详细描述如何将这个思想和相应技术付诸应用去建立e 1 i n u x 。 1 2 国内外研究现状 为了提高l i n u x 的实时性能,目前已有两种不同的方法: 1 高l i n u x 内核抢占式调度的性能。 2 在内核的底层增加一个新的软件层完全控制中断和处理器关键特征操作。 针对这两种方法,都有相应的工作小组从事研究。t i m e s y s 和l i n u xk e r n e l p r e e m p t i o np r o j e c t 采取第一种方案,两个工作小组目前并行开发,不过部将得 到相似的结果。第二种方法由r t l i n u x 和r t a i 来支持和实现。他们所提出的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 的运行。这种机 硕士论文基于m l 的防火墙和入侵检测支持环境的研究 制使得用软件来模拟中断去控制硬件变得有可能。通过在内核空间执行实时任务 可以从本质上部分实现实时性,它具有下列特点: 实时线程在内核空间运行,内存空间不允许被换出,也不允许使用t l b 。 执行于超级模式的线程( 在i 3 8 6 体系为0 级) 有访问底层硬件的所有权限。 因为r t o s 和应用都运行于同一地址空间,所以系统调用机制可以通过一 个简单的函数调用来实现( 并不用使用软件中断,因为这样会产生必要的负担) 1 3 论文的研究内容 本文在阅读大量国内外文献、资料的基础上,对目前通用l i n u x 操作系统内核 进行了深入的分析,剖析了通用l i n u x 内核不能满足实时应用的原因,提出了 e 1 i n u x 的解决方案,即通过内核模块的优势提供一个外挂的实时插件,l i n u x 内核 和其他实时线程都受实时调度程序的调度,保证防火墙和入侵检测内核线程部分 的最先调度,同时减少系统的响应时间,能在系统指定的时间得到运行,在设计 时,实时模块将接管l i n u x 对硬件中断的管理,同时对l i n u x 提供一个变量开关, 控制是否接受来自实时控制模块传递来的中断信号,在论文后面的章节中,将对 实时模块进行具体的设计和实现。 1 4 论文结构 全文共分六章,各章内容如下: 第一章:绪论,介绍论文的背景,国内外研究概况及本论文的主要研究内容 和结构。 第二章:通用l i n u x 内核分析。结合具体问题简要地分析通用l i n u x 内核的设 计。 第三章:e 1 i n u x 的基本思想,针对通用l i n u x 内核的分析,指出通用l i n u x 内 核不能作为实时应用的具体原因,提出e l i n u x 的鳃决方案。 第四章:e 1 i n u x 的详细设计,本章详细设计e 1 i n u x ,包括中断、时钟、调度 算法等。 第五章:e l i n u x 的实现,针对第四章的详细设计,讲述e 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 内核的设计涵盖存储管理、中断异常和系统调用、进程与进程调度、 文件系统、传统的u n i x 进程间通信、s o c k e t 套接字通信、设备驱动等内容。本章 将从支持环境的设计角度着重分析以下相关内容:l i n u x 分时调度,l i n u x 时钟, 内核非抢占式运行,中断屏蔽和虚拟内存。相信对这些内容作了分析后,便可对 任务执行的不可预知性有了一定的了解。 2 1l i n u x 体系结构图 用户进程 il 7 i l系统调用 、i 设备驱动程序l u 。“操作系统内核 , 千千 ii 硬件中断 硬件资源 图2 1l i n u x 系统结构简图 图2 1 显示了没有硬实时支持的l i n u x 通用内核的设计。可看到内核把用户 层的任务与底层硬件进行了分离。旦任务运行的时间超过了c p u 分配的时间片, 内核将负责挂起用户层任何一个任务。 操作系统支持和组织系统中所有任务的执行,同时还要负责中断的处理,必 须提供: 硕士论文 基于札的防火墙和入侵检测支持环境的研究 1 、调度的算法。调度算法是整个操作系统运转的核心,它决定了以什么样的 方式来选定下一步待运行的进程。通用l i n u x 内核的设计考虑到了系统中所有任 务的公平性,提供了可使系统达到最大化吞吐量的算法。 2 、进程间的通信机制。图2 1 1 中所示的用户进程间可以通过系统提供的专 用i p c 调用进行进程问通信。l i n u x 系统继承了早期u n i x 提供的通信手段,如管 道、信号、跟踪等,后来又增设了一种新的管道,即命名管道。在a t & t 的系统中, 增加了三种进程间通信手段,即报文队列、共享内存、信号量。b s d 系统也对此作 了重要的扩充。增设了插口,即套接字通信。这些通信手段l i n u x 基本上都“兼 容并蓄”地继承了下来。 3 、中断的处理。用户程序最终都要流向到对底层硬件的调用,往往这部分对 用户应用是透明的,2 4 以前版本内核都是提供底半技术,将关键部分代码保留在 系统空间中进行处理,而非关键性代码进行由调度程序进行调度。在用户空间中 进行处理,但是这样的方法只能处理3 2 个中断,自2 4 内核版本以来已引入软中 断,解决了这个问题。 4 、在每个周期到时激活相应的任务。在每一滴答时刻,l i n u x 都会判断当前 进程的时间片是否已用完,是否有待运行的任务需要切换,或者是否需要激活相 应的睡眠进程。 2 2l i n u x 分时调度 调度是内建于操作系统的一套策略和机制,它控制计算机系统内任务完成的 顺序。在多进程的操作系统中,进程调度是一个全局性的、关键性的问题,它对 系统的总体设计、系统的实现、功能设置以及各方面的性能都有着决定性的影响。 根据调度结果所作的进程切换的速度,也是衡量一个操作系统性能的重要指标。 进程调度机制的设计,还对系统复杂性有着极大的影响,常常会由于实现的复杂 程度而在功能与性能方面作出必要的权衡和让步。一个好的系统的进程调度机制, 要兼顾三种不同应用的需要: 交互式应用。在这种应用中,着重于系统的响应速度,使共用一个系统的 各个用户( 以及各个应用程序) 都能感觉到自己是在独占地使用一个系统。特别是, 当系统中有大量进程共存时,仍要能保证每个用户都有可以接受的响应速度而并 不感到明显的延迟。根据测定,当这种延迟超过1 5 0 毫秒时,使用者就会明显地 感觉到。 批处理应用。批处理应用往往是作为“后台作业”运行的,所以对响应速 度并无要求,但是完成一个作业所需的时间仍是一个重要的因素。考虑的是“平 均速度”。 硕士论文基于m l 的防火墙和入侵检测支持环境的研究 实时应用。这是时间性最强的应用不但要考虑进程执行的平均速度,还要 考虑“即时速度”:不但要考虑响应速度( 即从某个事件发生到系统对此作出反 应并开始执行有关程序之间所需的时间) ,还要考虑有关程序( 常常在用户空间) 能 否在规定时间内执行完。在实时应用中,注重的是对程序执行的“可预测性”。 另外,进程调度的机制还要考虑到“公正性”,让系统中的所有进程都有机会 向前推进,尽管其进度各有不同,并最终受到c p u 速度和负载的影响。更重要的 是,还要防止“死锁”的发生,以及防止对c p u 能力的不合理使用,也就是说要 防止c p u 尚有能力且有进程等着执行,却由于某种原因而长时间得不到执行的情 况。一旦这些情况发生时,调度机制还应能识别与化解。可以说,关于进程调度 的研究是整个操作系统理论的核心。 为了满足上述的目标,在设计一个进程调度机制时要考虑的具体问题主要有: ( 1 ) 调度的时机:在什么情况下、什么时候进行调度。 ( 2 ) 调度的“政策”( p o l i c y ) :根据什么准则挑选下一个进入运行的进程。 ( 3 ) 调度的方式:是“可剥夺”( p r e e m p t i r e ) 还是“不可剥夺” ( n o n p r e e m p t i v e ) 。当正在运行的进程并不自愿暂时放弃对c p u 的“使用权”时, 是否可以强制性地暂时剥夺其使用权,停止其运行而给其他的进程一个机会。如 果是可剥夺,那么是否在任何条件下都可剥夺,有没有“例外”。 首先,自愿的调度随时都可以进行。在内核里面,一个进程可以通过s c h e d u l e 启动一次调度,当然也可以在调用s c h e d u l e 0 之前,将进程的状态设置成为 t a s k i n t e r r u p t i b l e 或t a s k u n i n t e r r u p t i b l e ,暂时放弃运行而进入睡眠。在用 户空间中,则可以通过系统调用p a u s e 0 来达到同样的目的。也可以为这种自愿的 暂时放弃运行加上时间限制。在内核中有s c h e d u l et i m e o u t 0 用于此目的;相应 的,在用户空间则可以通过系统n a n o s l e e p 0 而达到目的( 注意,s l e e p 0 是库函数, 不是系统调用,但最终要通过系统调用来完成) 。这里要指出:从应用的角度看, 只有在用户空间自愿放弃运行这一举动是可见的;而在内核中自愿放弃运行则是 不可见的,它隐藏在其他可能受阻的系统调用中。几乎所有涉及到外调的系统调 用,如o p e n 0 、r e a d 0 、w r i t e 0 、s e l e c t 0 等,都是可能受阻的。 除此之外,调度还可以非自愿地,即强制地发生在每次从系统调用返回的前 夕,以及每次从中断或异常处理返回到用户空间的前夕。注意,这里“返回到用 户空间”几个字是关键性的,因为这意味着只有在用户空间( 当c p u 在用户空间运 行时) 发生的中断或异常才会引起调度。 至于调度政策,基本上是从u n i x 继承下来的以优先级为基础的调度。绝大数 u n i x 操作系统,特别是l i n u x 都这样设计调度器,平衡响应时间和吞吐量来保证 c p u 时间片在进程间的公平分配。每一个进程都有不同的优先级别,这个优先级别 硕士论文基于札的防火墙和入侵检测支持环境的研究 主要由进程所消耗的c p u 时间,输入输出的数据量,和其它因素来决定。 内核为系统中的每个进程计算出一个反映其运行“资格”的权值,然后挑选 权值最高的进程投入运行。在运行过程中,当前进程的资格随时间而递减,从而 在下一次调度的时候原来资格较低的进程可能就更有资格运行了。到所有进程的 资格都变成了0 时,就重新计算一次所有进程的资格。资格的计算主要是以优先 级为基础的,所以说是以优先级为基础的调度。 但是,为了适应各种不同应用的需要,内核在此基础上实现了三种不同的政 策:s c h e d _ f i f o 、s c h e dr r 以及s c h e do t h e r 。每个进程都有自己的适用的调度 政策,并且,进程还可以通过系统调用s c h e d s e t s c h e d u l e r 0 指定己适用的调度 政策。其中s c h e d f i f o 适合于时间性要求比较强、但每次运行所需的时间比较短 的进程,实时的应用大都具有这样的特点。s c h e d r r 中的“r r ”表示“r o u n dr o b i n ”, 是轮流的意思,这种政策适合比较大、也就是每次运行需时较长的进程。而除此 二者之外的s c h e d ,则为传统的调度政策,比较适合于交互式的分时应用。_other 不管是进程或线程,l i n u x 调度器都同等对待他们。这里我们暂且认为进程和 线程是可以互换的。l i n u x 调度器可以调度线程运行于两种模式:公平的分时模式 和软实时模式。l i n u x 调度器是可抢占的、多任务的、基于优先级的,设计主要考 虑的是优化系统吞吐量,给具有不同的c p u 时间要求的线程一个良好的响应时间。 分时模式的调度算法处理常规的分时线程。l i n u x 用一个静态的优先权值 ( n i c e 值) 来计算动态优先权的初始值( g o o d n e s s 值) ,这个值将成为指定线程的优 先权的值。每次线程被赋予c p u 得到运行时,这个g o o d n e s s 值将不断的减少。当 所有线程的优先权值都达0 时,所有线程的动态优先值将会重新计算。这种算法 保证每个线程都会得到运行,但是没有考虑到任何时间性需要。 既然每个进程都有自己的适用调度政策,内核怎样在适用不同调度政策的进 程之间决定取舍昵? 实际上最后还是都归结到各个进程的权值,只不过是在计算资 格时把适用政策也考虑进去,就好像考大学时符合某些特殊条件的考生可以获得 加分一样。同时,对于适用不同政策的进程的优先级别也加了限制。 再看调度的方式,l i n u x 内核的调度方式可以说是“有条件的可剥夺”方式。 当进程在用户空间运行时,不管自愿不自愿,一旦有必要( 例如已经运行了足够长 的时间) ,内核就可以暂时剥夺其运行而调度其他进程进入运行。可是,一旦进程 进入了内核空间,或者说进入了“长官( s u p e r v i s o r ) 模式,这时候,尽管内核知 道应该要调度了,但实际上却不会发生,一直要到该进程即将“下台”,也就是回 到用户空间的前夕才能剥夺其运行。所以,l i n u x 的调度方式从原则上来说是可剥 夺的,可是在实际运行中由于调度时机的限制而变成了有条件的。总结归纳如下 图2 2 。 硕士论文基于虬的防火墙和入侵检测支持环境的研究 但是,在实时的应用中,某个中断的发生可能不但要求迅速的中断服务,还 要求迅速地调度有关进程进入运行,以便在较高的层次上,也就是在用户空间中 i 返回w e i g h t i 图2 2l i n u x 调度程序 对事件进行及时的处理。可是,如果这样的中断发生在内核中时,本次中断返回 是不会引起调度的,而要到最初c p u 从用户空间进入内核的那次系统调用或中断 ( 或异常) 返回时才会发生调度。倘若内核中的这段代码恰好需要较长时间完成的 话,或者连续又发生几次中断的话,就可能将调度过分地推迟。良好的内核代码 可以减轻这个问题,但并不能从根本上解决问题。所以这是个设计问题而不是实 现问题。只是,随着c p u 速度变得越来越快,这个问题渐渐地变得不那么重要了。 2 3l i n u x 时钟 在通用的l i n u x 内核中,与时间相关的讨论可以概括如下几个方面: 内核以全局变量j i f f i e s 进行时间计数 时钟的中断频率以常量h z 定义 默认值为l o m s 内核每l o m s 中断次 通用的l i n u x 内核中,一个硬件时钟芯片可以被重新编程,让c p u 以指定的 频率中断。每次c p u 中断时,内核都将更新它的软件时钟,指示过去了一个时钟 滴答,同时检查是否有调度事件等待处理的。两次软件时钟滴答之间的长度值可 硕士论文基于m l 的防火墙和入侵检测支持环境的研究 以用j i f f y 来引用。一些内核仅在每次时钟中断时检查它的时钟链表。两次中断 的间隔便于调度程序工作的最小单位。 在所有的外部中断中,时钟中断起着特殊的作用,其作用远非单纯的计时所 能相比。当然,即使是单纯的计时也足够重要了。别的不说,没有正确的时间关 系,你用来重建内核的工具m a k e 就不能正常运行了,因为m a k e 是靠时间标记来 确定是否需要重新编译以及连接的。可是时钟中断的重要性还远不止于此。 读者将会看到进程调度发生在两种情况下。一种是“自愿”的,通过像s l e e p 0 之类的系统调用实现;或者是在通过其他系统调用进入内核以后因某种原因受阻 需要等待,而“自愿”让内核调度其他进程先来运行。另一种是“强制”的当 一个进程连续运行的时间超过一定限度时,内核就会强制地调度其他进程来运行。 如果没有了时钟,内核就失去了时间有关的强制强度的依据和时机,而只能依赖 于各个进程的“思想觉悟”了。试想,如果有一个进程在用户空间中陷入了死循 环,而在循环体内也没有作任何系统调用,并且也没有发生外设中断那么,要 是没有时间中断,整个系统就在原地打转什么事也不能做了。这是因为,在这种 情况下永远不会有调度,而死抓住c p u 不放的进程则陷在死循环中。退一步讲, 即使我们还有其他的准则( 例如进程的优先级) 来决定是否应该调度,那也得要有 中断、异常或系统调用使c p u 进入内核运行才能发生调度。而惟一可以预测在一 定的时间内必定会发生的,就是“时钟中断”。所以。对于像l i n u x 这样的“分时 系统”来说,时钟中断是维护“生命”的必要条件。 从历史的角度来讲仅1 秒解析度的警报信号和s l e e p 系统调用是提供给用户进 程的接口。这样粗糙的时钟并不能满足大多数实时处理的需要。现代的版本提供 了一种更高解析度的时钟。但是这种时钟的实现限制了真正的时钟精度。 时间的精确性对调度器的正确操作非常有必要。执行调度的时候经常需要在 指定的时刻完成任务间的切换。不精确的时钟会引起调度预知行为的偏差,导致 所谓的”任务切换抖动”。在大部分应用程序中,这种抖动会带来不希望有的结果。 减少这种抖动非常重要。 操作系统中低时钟解析度的原因是周期性时钟中断的使用。系统的设计者必 须在时钟的解析度与消耗在时钟中断里的时钟作一权衡。实时系统有时需要一种 时钟但是这种时钟对于周期性时钟几乎很难达到所需的时钟。 对于这条规则l i n u x 也不例外。在绝大多数i b mp c 兼容机里,都是对硬件时钟 进行编程让系统可以以大约i o o h z 的频率产生时钟中断。这样,任务间的调度仅有 1 0 毫秒的精确度。虽然一些系统允许用户更改时钟中断频率,但是绝大部分商用 实时操作系统如v x w o r k s 和r e a l i x 也是使用周期性时钟中断。 硕士论文基于m l 的防火墙和入侵检测支持环境的研究 2 4l i n u x 非抢占式内核 假设一个用户任务控制一个机器人的手臂,标准l i n u x 内核可能会抢占这个 任务,并把c p u 交给非关键性的任务( 例如运行n e t s c a g e 的任务) 。结果,手臂将 不能满足严格的定时要求。然而本着对所有任务公平的原则,内核可以阻止关键 性事件的发生。 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 的内核非抢占性 对于使用l i n u x 作为实时控制系统来说是一个实质性的阻碍。我们在p e n t i u mi i i 处理器上对l i n u x 内核非抢占运行路径进行了测试,发现非抢占路径的运行时间超 过1 3 0 毫秒,这个时间值对于实时系统来说是不可接受的。 与内核不可抢占式调度密切相关主要是同步问题。为了保护可能要被异步访 问的数据,如中断处理程序,系统设计经常在关键代码段选择关闭中断。这是一 个非常简单的技术,经常比用信号量或自旋锁要更有效。然而关闭中断将使系统 即刻响应外部事件的能力大打折扣。这种方法也不能解决在多处理机平台的同步 的问题。 2 5 l i n u x 虚拟内存 对于一个多进程的操作系统来说,每个进程都要占据自己惟一的内存地址空 间。我们不能因为物理内存的限制而禁止更多的进程并发运行,从而大量浪费其 他资源。一种方法是扩展物理内存。但内存的成本很高,难以大规模扩展,所以 扩展物理内存不是根本的解决之道。另外一种策略就是考虑虚拟内存了。由于外 存的空间比内存要大得多,并且成本低廉,可以任意扩充,所以可以将内存中一 部分近期不需要的内容移出到外存上,从而让出一块内存空间,以供其他需要的 进程使用。这就是虚拟内存的基本原理。当要访问到那些已经被调出到外存的数 据时,存储管理需要将内存中一部分不常被访问的数据调出,让出一块空间以供 需要的数据调入内存。 时间局部性和空间局部性原理是虚拟内存效率的重要保证。内存的访问速度 硕士论文基于m l 的防火墙和入侵检测支持环境的研究 远远超过外存的访问速度,所以人们希望访问尽可能集中在对内存的访问上,而 不要总是从外存调入数据。这时,时间局部性和空间局部性原理起到了重要的保 证作用。所谓时间局部性原理,指在存储访问中,人们对最近访问过的数据进行 再次访问的概率非常大。这个原理确保了我们不用频繁地将数据在主存与外存之 间换入换出,因为这些数据很可能在未来被再次访问到。所谓空间局部性原理, 指在存储访问中人们时常会访问到最近访问过的地址附近的数据。这个原理给 人们的启示是将内存划分成一定长度的数据段,从而每次换入换出时,将整个数 据段一起操作,这样可以减少访问失效的次数。 作为操作系统的核心,l i n u x 必须能够克服物理内存的局限,使用户进程在透 明方式下,拥有比实际物理内存大得多的内存。l i n u x 成功地实现了以虚拟内存为 核心的内存管理策略,强大的分页机制,公平的交换方式,各类有效的高速缓存, 以及以页保护为主的保护措施等。内存管理的目的是要尽可能地方便用户。同时 l i n u x 系统通过对用户进程虚存的有效管理,作到了虚存对一般用户和l i n u x 程序 员的透明。 大多数u n i x l i n u x 系统使用页式虚拟内存管理系统。虚拟内存仅通过在内存 中维持每个程序的工作集使同时在系统中运行程序的可使用的内存大小远超过了 可用的物理内存r a m 成为可能。这种模式对于分时系统工作得非常好。但是对于 实时系统,虚拟内存却提高了不可预知级别。 l i n u x 系统使用虚拟内存管理的目的是为了提高多任务处理能力,即同时运行 的进程更多一些,但是同时可以运行的进程越多,每个待运行的进程所能分配的 c p u 时间片就受限制,操作系统理论证明c p u 控制权的切换越快,资源的使用效率 越低,而实时任务往往要求c p u 具有很高的突发处理能力,即在有些时候需要极 高的处理效率。因此屏蔽内核的虚拟内存管理机制最能改善其实时性。 硕士论文基于m l 的防火墙和入侵检测支持环境的研究 第三章e l i n u x 的解决方案 近来,随着对实时各种各样复杂的定义,l i n u x 是否满足实时应用程序的需要 以及能和怎么去实现一直是诸多争论的焦点。我们经常看到这样几个术语“硬”、 “坚固”、“软实时”、“保证”、“决定性的”、“抢占性的”、“完全抢占的”、 “延迟时间”充斥着这些讨论。 可靠的实时系统都是差不多的,每个不可靠的实时系统也因它们的实现方式 而有所不同。在一个实时系统中,假如你错过了太多的d e a d l i n e ,你将会碰到性 能问题。有许多方式可以出错,但仅一个方式可以做对。 论文中,我们回顾目前满足要求的几种解决方案。我们将看到,尽管精确性 要求应用与应用之间有所不同,但是仍有大量最基本的技术。因为多数开发商提 供了不同的方法,但是事实上,没有一种解决方案可以满足所有应用的要求。 3 1 基本思想 近年来,安装了标准操作系统的桌面计算机正逐渐被用于软硬实时任务的应 用。由于通用l i n u x 系统设计的特征,在一个不可抢占的操作系统内并行运行的 用户任务可能会引起等待延时,致使任务不能按预期行为运作,也即导致了程序 运行的不可预测性。这些特征使l i n u x 用作实时应用的平台不尽合理:( 1 ) 不可预 知的调度一主要信赖于系统负载。( 2 ) 粗糙的时钟解析度( 1 0 m s ) :( 3 ) 不可抢占性 内核:( 4 ) 用作同步机制的中断屏蔽:( 5 ) 虚拟内存的使用:( 6 ) 为效率而设计的请求 重新排序( 如硬盘i 0 ) 。另外,l i n u x 进程是重量级进程,它可能会消耗几百个微 秒完成上下文切换,使每1 0 0 微秒调度一个任务不太可能。 由于满足实时应用的系统出现许多商用版本,不但需要用户更多的投资,而 且如果对相关系统不熟悉的话,还要花费很多精力去熟悉和使用,因为大部分满 足实时性能的系统并不是采用通用的l i n u x 内核设计。 论文的主要思想在于使用通用l i n u x 内核,同时最小化内核的变动并在此基 础上提出自己的方案,让系统成为开放的、标准的、可良好支持的、有效的和经 济的具有硬实时控制的多任务系统。由于整个程序编制是用内核模块来实现,这 样系统的可扩展性,可伸缩性很大。更明显的特征便是只要不需要实时性能的要 求,便可以从内核中卸载,不影响内核的正常运行路线。 硕士论文 基于m l 的防火墙和入侵检测支持环境的研究 3 2 现有典型方案 你可能已意识到目前为止在l i n u x 系统中加入实时能力有许多方法。当然, 一种方法是丢弃有问题的或是慢速硬件,考虑使用更快速的处理器或部署专用的 硬件。例如。专用的周边设备控制器和d s p 能够转移主系统c p u 处理关键实时任 务的系统负载。考虑到经济性,实际是想充分利用现有资源,让主系统处理器去 管理实时系统事件。目前已出现许多实时l i n u x 商业发行版本,如u l i n u x 、b l u e c a t r t 、r e d h a w k 、r e d i c e l i n u x 等等。考虑代码的开源性,我们将不对这些相关产品 做深入讨论,下面主要对开源系统进行概述。 3 2 1p o s i x 扩展l 生标准 p o s i x 的标准倾向于在源代码级别上达到软件的可移植性。换句话说,一个具 有p o s i x 兼容标准的程序可以编译和运行于任何一个支持p o s i x 的平台。p o s i x 对 实时性的扩展可由图3 1 来说明。与通用操作系统的结构图相比,此标准增添了 线程库,可以在用户层创建实时任务,然后通过提供的线程库进入到内核。这种 方案在一定的程序上满足了一些实时应用的需要,因为它在实现时不需要分配自 己的用户空间,可以借用上一个被调度出去的进程或是直接借用父进程。 用户进程 k,。一, 7 l 系统调用瞄。x i 、 l 设备驱动程序l i n u x 操作系统内核 tt ll 硬件中断 硬件资源 3 2 2r t l i f l u x 图3 1p o s i x 的实时性扩展标准 r t l i n u x 是一个微型实时内核与类p o s i xl i n u x 内核共存的操作系统。目 的主要是利用标准分时应用计算机系统提供的成熟服务和最优化的通用行为,同 时允许实时函数操作于可预知年低延迟环境。曾经,实时操作系统提供的功能是 非常的粗糙,仅是一段简单的可执行文件,除了提供了一个例行库。但是现在实 硕士论文基于虬的防火墙和入侵检测支持环境的研究 时应用例行公事地要求对t c p i p 网络协议栈、图形显示、窗口系统、文件、数据 库系统以及其他服务的访问。一种解决方案中将这些非实时服务加入到基本的实 时内核,如v x w o r k s 就是这样做的,q n x 也是这样做的,但是与v x w o r k s 采用的方 法有所不同。第二种方法是更改标准l i n u x 内核,使它变得完成可抢占的。这是 r t i x 开发商所采用的方法。r t l i n u x 基于另一种方法,它使用虚拟机层使标准 l if l u x 内核完全可抢占的。在当前的系统中实时任务与l i n u x 任务通过l o c k f r e e 和共享内存进行通信。从应用程序编程的角度来看,这个队列看起来与标准l i n u x 字符设备相似,可借助于p o s i x 的r e a d w r i t e o p e n i o c t l 系统调用进行访问。 共享内存当前可以借助于p o s i x 的m m a p 系统调用进行访问。r t - l i n u x 启动的时候 依赖于l i n u x ,如大部分设备驱动、网络、文件系统、l i i u x 进程控制和可装载内 核。实时应用由装载进内核的模块的实时任务和l i n u x u n i x 进程( 负责数据记录、 显示、网络访问等函数) 构成。 实际上,r t l i n u x 方法已证明是非常成功的。在4 8 6 3 3 m h z 的p c 机上最差中 断延迟经测试在3 0 微秒以内,基本上接近于硬件的限制。大部分应用程序都得益 于这种实时系统与标准系统之间的合作。例如数据请求应用程序通常都是一个简 单的p o l l i n g 或中断驱动的实时任务,它将数据通过管道传输到l i n u x 负责记录 和显示的进程。这样的话,当实时任务碰到严格的d e a d l i n e 时,由l i n u x 实现的 i o 缓冲和聚集体将提供了一个高层的最佳性能。 r t l i n u x 可以按照两个有点冲突的设计前提进行扩展。第一设计前提是真正 的实时应用时间受限部件与动态的资源分配、复杂的同步。r t l i n u x 最广泛使用 的配置提供了使用静态内存分配、无地址空间保护、较简单的固定优先级调度程 序、硬中断关闭、共享内存以及在连接着实时和l i n u x 进程的f i f o 队列上有限的 操作的p r i m i t i v e 任务。这个环境实际上并没有所说的那样严格。因为由非实时 内核提供的诸多服务容易被l i n u x 用户任务访问。非实时应用部件移植到l i n u x 中去。我们希望能更深入研究的领域是q o s ,这里将应用分解成收集和分发时问敏 感性数据的硬实时部件是可能的,l i n u x 进程或线程监视数据速率,协商处理时间, 调整算法。 第二个设计前提很少被人所知晓,即实时系统应该如何被组织和操作系统应 该考虑到在实时任务的特性、通信和同步方面的很大的灵活性。内核设计为可替 换模块,实际在前面所描述的环境非常容易提高。l i n u x 使可安装模块提供的服务 成为可能,同时实时内核基本的操作也成为r u n t i m e 可重新配置的。也可能开发 r t l i n u x 下的任务,用e d f 调度程序测试系统,卸载e d f 调度模块,安装其它调 度模块,继续测试。虽后使用内存保护进程模式也是可能的,来测试不同的i p c 的实现和修补系统直到发现合适的服务集。 硕士论文基于虬的防火墙和入侵检测支持环境的研究 3 2 3r t a r t a i 是r e a l t i m ea p p l i c a t i o ni n t e r f a c e 的缩写。顾名思义知道它是一 套可以用来写实时应用程序的界面。大致而言,r t a i 和r t l i n u x 是相同的东西。 它同样的架空了l i n u x ,而直接用可加载式核心模块( 1 0 a d a b l ek e r n e lm o d u l e ) 运作实时线程,每一个实时线程实际上就是一个可加载式核心模块。 r t a i 和r t l i n u x 最大的不同地方在于它非常小心的在l i n u x 上定义了一 组r t h a l ( r e a l t i m eh a r d w a r ea b s t r a c t i o nl a y e r ) 。r t h a l 将r t a i 需要在l i n u x 中修改的部份定义成一组程序界面,r t a l 只使用这组界面和l i n u x 沟通。这样做 的好处在于我们可以将直接修改l i n u x 核心的程序代码减至最小,也使得将r t h a l 移植到新版l i n u x 的工作量减至最低。 r t a i 能动态装入卸载,实时任务在r t a i 装入之后再载入。r t a i 的任务调度 程序提供硬实时能力,采用基于固定优先级的抢占调度策略。全部调度可根据定 时器函数、实时事件或者异步事件来管理。r t a i 在p e n t i u m 类c p i j 上既支持单发 定时器也支持周期定时器,但不能同时使用,不过可以在同一个应用中交替使用。 实时任务可使用浮点单元,当使用f p u 的任务装入时将被打上特殊的标志, 并切换f p u 的上下文。这种方法既允许实时任务和非实时任务同时使用浮点单元 又减少了不必要的上下文切换时间。与r t l i n u x 一样,r t a i 也提供直接高效的硬 件存取调用,而不必通过标准l i n u x 的中断管理层。 r t a i 采取这种途径最大的原因在于n m tr t - l i n u x 在由2 0 版移植至2 2 版的过程中遇到了问题,使得基于2 2 版核心的r t - l i n u x 一直无法完成,所以 r t a i 的开发团体就决定自行做移植的工作,但由r t - l i n u x 的困境,他们认识到必 须采取上述的途径以解决将来可能再度面临的兼容性问题。 于是r t a i 便诞生了,它是一个比n m tr t - l i n u x 更好的n m tr t l i n u x ,虽 然后来n m tr t l i n u x 也随后完成移植的工作,但那已经是r t a i 诞生半年以后 的事了。 3 3 方案测评 l i n u x 的实时版本依赖于他们对实时问题解决的程度和方法而有所不同。它们 所能保证的响应时间和性能都将有所差异。不过这些方案都关注一类特殊的任务, 这类任务禁止被过度的延时,也即我们所称的实时任务。 一些开发商让他们的应用程序运行在用户空间,而不是内核空间,一些实时 解决方案也需要你自己编写运行于内核的代码。与运行于用户空间的代码相比, 运行于内核空间的代码是很难调试的,更有可能崩溃或是系统挂起,与用户空间 硕士论文基于札的防火墙和入侵检测支持环境的研究 通信也不是很方便。不过更多的选择还是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业用电安全培训
- 企业春节安全培训课件
- 热压模具清理管理办法
- 网络发票管理办法试行
- 老实征兵测试题及答案2025
- 2025年中医针灸学子午流注应用测试卷及答案解析
- 出纳银行结算业务课件
- 2025合同范本广告代理合同模板
- 出口退税课件原理
- 党员集中培训考试题目及答案
- 2025浙江省知识产权研究与服务中心编外招聘12人笔试模拟试题及答案解析
- 2025国资国企穿透式监管白皮书
- 肺中下叶恶性肿瘤的个案护理
- 小学法制课教学课件下载
- 年产8万吨DN900-DN1600mm球墨铸管项目可行性研究报告
- 商家智能体产品手册和操作指南
- 幼儿园手工介绍课件
- 电力营销考试题库及答案
- 监察法专题培训课件
- 人证网约车考试题目及答案
- 人教版五年级数学上册第三单元小数除法教学设计(表格式)和单元测试题
评论
0/150
提交评论