已阅读5页,还剩66页未读, 继续免费阅读
(计算机应用技术专业论文)增强linux内核安全性若干技术.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕十学位论文摘要 摘要 随着i n t e m e t 网络的普及,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 内核中功能模块自身的保护,也 就是说,主要功能都在模块里完成,如果该功能模块被入侵者发现,被卸载掉, 系统将变得不安全,所以论文通过隐藏功能模块的措施来进行保护。其次,监控 特权命令c h a t t r 。文件系统的隐藏属性对于提高文件系统的安全性和保障文件系 统的完整性有很大的作用,如果r o o t 用户去掉对文件进行保护的隐藏属性,就可 以对该文件进行任意的删除、修改等操作。c h a t t r 正是设置文件系统属性的用户 接口命令,因此监控特权命令c h a t t r 不失为保护系统重要文件的一项有效措施。 论文研究了特权命令c h a t t r 的实现机理,针对性的提出并实现了保护技术。另外, 日志系统是l i n u x 操作系统安全机制的重要组成部分,深入分析和研究日志系统, 可以帮助我们审计和监测,还可以实时地监测系统状态,监测和追踪侵入者等。 论文最后详细分析l i n u x 日志系统框架,给出并讨论完全清除用户连接同志的方 法。 全文分为六章。第一章是绪论,阐述网络安全现状,计算机信息安全和安全 操作系统。第二章深入分析l i n u x 内核,介绍与硕士论文研究内容相关的那部分 l i n u x 内核实现机制,包括动态可加载内核模块、系统调用和文件系统。第三章 介绍隐藏功能模块的方法。第四章提出一种替换系统调用的方法;用替换后的系 浙江大学硕士学位论文摘要 统调用,监控特权命令的使用,并且以c h a t t r 命令为例进行讨论。第五章详细分 析l i n u x 的日志系统,给出并讨论完全清除用户连接同志的方法,从而主动保障 日志系统的安全。第六章总结本文所做的工作。 关键词:l i n u x ,l k m ,内核,安全,日志系统 a b s t r a c t a si n t e m e ti ss p r e a d i n gw i d e l y , l i n u xo p e r a t i n gs y s t e mi su s e di nm o r ea n dm o r ef i e l d s l i n u xh a s o c c u p i e dv e r yl a r g es h a r e si nw e b s e r v e r sa n de m b e d d e ds y s t e m s ,a n di ti su s e dm o r eo f t e nt h a nb e f o r e i i lp c s o t h es e c u r i t yo fl i n u xs y s t e mh a sb e e np a i dm o r ea t t e n t i o n st h a nb e f o r e a sw ea l lk n o w , l i n u xi sa no p e ns o u r c es y s t e m ,t h a ti sm e a n ,p e o p l ew h ou s ei tc a nr e a di t sc o d e sa n da n a l y z ei t s m e c h a n i s m b u tp e o p l ew h ow a n tt oe n t e ro t h e rp e o p l e ss y s t e mi l l e g a l l yc a l la l s og e ti t sc o d ea n d a n a l y z ei t sl e a k s s o ,t h e r ei sn e e dt or e a dl i n u xs o u r c ec o d e sa n da n a l y z ei t ss e c u r i t ym e c h a n i s mi n d e t a i l m u c hm o r eb e t t e ri fw ec a ng i v em e t h o d st os o l v ei t sl e a k s t h ea i mo ft h i st h e s i si st os t u d yt h es e c u r i t ym e c h a n i s mo nl i n u xk e r n e l ,a n dt oi m p l e m e n ts o m e m e t h o d st oe n h a n c ei t ss e c u r i t y f i r s t l y , p r o t e c tl k mf r o mb e i n gu n i n s t a l l e d i nt h i st h e s i s ,w eu s el y e 4 t op r o t e c tt h es y s t e m ,i ft h el k mi su n i n s t a l l e d ,t h es y s t e mi su n s a f e s e c o n d l y , m o n i t o rp r i v i l a g e c o m m a n d “c h a t t r f i l es y s t e ma t t r i b u t e sc a ne n h a n c ef i l es y s t e ms e c u r i t ya n de n s u r ef i l es y s t e m i n t e g r i t y i ft h ea t t r i b u t e st op r o t e c ti m p o r t a n tf i l ef r o mb e i n gd e s t r o y e da r ec a n c e l l e d ,i l l e g e lu s e rc a n d e l e t eo rm o d i f yf i l e se a s i l y t h ec h a t t rc o m m a n di st h e i n t e r f a c ec o m m a n dt os e tf i l ea t t r b u t e s t h i s t h e s i sp r o t e c t si m p o r t a n tf i l e sb ym o n i t o r i n gp r i v i l a g ec o m m a n dc h a t t r f i n a l l y , w ea n a l y z el o gs y s t e m a n dd i s c u s st h em e t h o d st oc l e a ns o m e o n e s sr e c o r d si ns y s t e mb e c a u s el o gs y s t e mi ss i g n i f i c a n tf o ru s t ot r a c ei n v a d e r sa n df i n dl e a k si nas y s t e m s i xc h a p t e r sa r ec o n t a i n e di nt h et h e s i s c h a p t e ro n ei sa ni n t r o d u c t i o n ,p r e s e n t i n gc u r r e n ts t a t u si n i n t e m e ts e c u r i t ya n ds o m et y p i c a ls e c u r i t yo p e r a t i n gs y s t e m s i nc h a p t e rt w o ,i td o e sr e s e a r c hd e e p l yi n t h ep r i n c i p l eo fl i n u xk e r n e l ,e s p e c i a l l yi nl k m ,s y s t e mc a l la n df i l es y s t e m s i nc h a p t e rt h r e es o m e w a y sw e r ed e f i n e di sf o u n do u tt op r o t e c tl k m i t s e l fw h i c hc a nm a k ei tw o r kl o n g e r al k mi su s e dt o m o n i t o rp r i v i l a g ec o m m a n db ys w i t c h i n gs y s t e mc a l l i nc h a p t e rf o u r t h i sm o u d l ec a np r o t e c tt h e i m p o r t a n t f i l e si nt h es y s t e mf r o mb e i n gd e s t r o y e da n dr e w r i t t e n i nc h a p t e rf i v e ,i ts t u d y st h e m e c h a n i s mo ft h el o gs y s t e mb e c a u s el o gs y s t e mi ss i g n i f i c a n tf o ru st ot r a c ei n v a d e r sa n df i n dl e a k si n s y s t e m a n dw a y sw e r ea l s op r o v i d e dt oc l e a ns o m e o n e s sr e c o r d si ns y s t e mi n t h i s c h a p t e r i n c h a p t e rs i xac o n c l u s i o n si sc o n d u c t e d k e y w o r d s : l i n u x ,l k m ,s e c u r i t y , k e r n e l ,l o gs y s t e m 浙江人学硕士学位论文 图目录 图目录 图2 1 模式切换1 3 图2 2 系统调用索引1 5 图2 3 执行系统调用时的寄存器变化情况1 6 图2 4 系统调用流程1 7 图2 5 虚拟文件系统开关18 图2 6 进程与v f s 的交互1 9 图3 1r m m o d 命令执行流程3l 图3 2 隐藏l k m 实验结果3 4 图4 1 具有a 属性的文件只能在文件末尾追加内容3 5 图4 2 对具有a 属性的文件改写失败3 6 图4 3 替换后的系统调用执行流程3 8 图4 4c h a t t r 命令执行流程4 0 图4 5 监控特权命令c h a t t r 执行结果4 4 图5 1 用户连接同志运行流程4 7 图5 2 错误同志子系统执行流程5 0 图5 3 修改u t m p 文件流程5 8 图5 4 清除u t m p 记录程序执行结果6 0 图5 5 清除w t m p 记录程序执行结果6 1 浙江大学硕上学位论文 表目录 表目录 表3 1 隐藏模块测试步骤3 3 表4 1e x t 2 文件系统属性3 7 表4 2 监控特权命令c h a t t r 测试步骤4 3 表5 1 用户连接同志相关文件及命令4 7 表5 2 进程统计日志相关文件及命令4 9 表5 3s y s l o gr 志文件格式说明5 2 i v 浙江大学硕上学位论文 第1 章绪论 第l 章绪论 1 1 网络安全现状 随着互联网络的高速发展,整个世界经济正在迅速地融为一体,人类开始进 入信息时代,计算机网络已经成为国家的经济基础和命脉。计算机网络在经济和 生活的各个领域正在迅速普及,整个社会对网络的依赖程度越来越大。众多的企 业、组织、政府部门与机构都在组建和发展自己的网络,并连接到i n t e m e t 上, 以充分共享、利用网络的信息和资源。计算机网络技术已经深入到当今社会的各 行各业,网络已经成为社会和经济发展强大动力,其地位越来越重要。 网络的发展方便了人们工作和生活的同时,也带来不可忽视的安全风险。网 络与信息安全越来越成为人们关注的重点。计算机系统遭受入侵攻击的风险急剧 增加,各种网络入侵事件层出不穷。在公安部2 0 0 8 年全国信息网络安全状况调 查分析报告中显示,2 0 0 7 年5 月至2 0 0 8 年5 月,信息网络安全事件发生比例 为6 2 7 。网络安全事件带给用户除了直接的经济损失外,还有如重要文件丢失、 系统瘫痪无法j 下常运作等无法弥补的损失。所以,加强计算机系统安全,是当前 这个信息系统环境下任何一个机构及个人的首要工作。了解网络面临的各种威 胁,防范和消除这些威胁,实现真正的网络安全已经成了网络发展中最重要的事 情。 1 2 网络信息安全 在网络出现以前信息安全指1 2 j 对信息的机密性、完整性和可获性的保护,即 面向数据的安全。互联网出现以后,信息安全除了上述概念以外,其内涵又扩展 到面向用户的安全,即鉴别、授权、访问控制、抗否认性和可服务性,以及在于 内容的个人隐私、知识产权等保护。这两者的结合就是现代的信息安全体系结构。 网络安全从其本质上讲就是网络上的信息安全,指网络系统的硬件、软件及 其系统中的数据安全。网络信息的传输、存储、处理和使用都要求处于安全的状 浙江大学硕上学位论文第l 章绪论 态。 网络信息安全根据其本质的界定,应具有以下的基本特征【2 】: ( 1 ) 保密性:保密性是指确保信息不泄漏给未授权的个人、实体和过程。 ( 2 ) 完整性:信息未经授权,不被修改、不被破坏、不被插入、不延迟、 不乱序和不丢失的特性。对网络信息安全进行攻击其最终目的就是破坏信息的完 整性。 ( 3 ) 可用性:合法用户访问并能按要求顺序使用信息的特性。即保证合法 用户在需要时可以访问到信息及相关资源。 ( 4 ) 可控性:授权机构对信息的内容及传播具有控制能力的特性。可以控 制授权范围内的信息流向以及方式。 ( 5 ) 可审查性:在信息交流过程结束后,通信双方不能抵赖曾经做出的行 为,也不能否认曾经接收到对方的信息。 安全工作的目的就是为了在安全法律、法规、政策的支持与指导下,通过采 用合适的安全技术与安全管理措施,维护计算机信息安全。我们应当保障计算机 及其相关的和配套的设备、设施( 含网络) 的安全,运行环境的安全,保障信息的 安全,保障计算机功能的正常发挥,以维护计算机信息系统的安全运行。 1 3 安全操作系统 根据实际的应用环境,计算机系统的安全主要由操作系统安全、应用软件安 全、数据库安全和网络安全等几大方面所决定。操作系统位于整个计算机系统的 最底层,支持和控制着全部的可用资源和系统的运行,是应用软件、数据库和网 络服务的基础。在一个缺少安全功能的操作系统上建立数据库安全、网络安全和 其它应用软件的安全犹如纸上谈兵,整个系统仍旧是不安全的。因此,操作系统 是构筑整个计算机信息系统安全的必要前提和基础。 1 3 1 安全操作系统的定义 安全操作系统是指经认证达到或相当于t c s e cb 1 级以上的操作系统。从学 术的角度来说,安全操作系统应具备以下功能【1 3 】: 2 浙江大学硕上学位论文第l 章绪论 ( 1 ) 用户的识别与判定 ( 2 ) 强制访问控制m a c 功能与d a c 功能 ( 3 ) 客体的再利用保护 ( 4 ) 完整的裁决 ( 5 ) 日志审计 ( 6 ) 可信路径 ( 7 ) 入侵检测 由于t c s e c 已废止,随着像s e l i n u x 那样实现非常细粒度的访问控制等操 作系统的出现,普遍称之为安全操作系统。 为了解决现有操作系统如u n i x 、l i n u x 、w i n d o w s 等的超级用户权限过大及 其在任意访问控制上的安全问题,现在的安全操作采用减少超级用户的特权,和 采用强制访问控制的方式来强化操作系统的安全性。 但实施方法及访问控制的粒度不同,很难对安全操作系统给以明确的定义。 在这罩把安全操作系统定义为“具有最小特权,以强制访问控制功能为核心的加 强安全性的操作系统”。 强制访问控制是一种多级访问控制策略,它的主要特点是系统对访问主体和 客体实行强制访问控制,系统事先给访问主体和客体分配不同的安全级别属性, 在实施访问控制时,系统先对访问主体和客体的安全级别属性进行比较,再决定 访问主体能否访问该客体。普通的操作系统采用任意访问控制,系统管理员可以 访问任何目录与文件。在安全操作系统里,访问控制策略由安全管理员制定,系 统管理员无权干预。 最小特权是对进程所访问的资源( 文件、设备、网络和接口等系统资源) 授 与必要的最小权限。对用户划分各种的角色,各个角色管理相应的资源。 1 3 2 安全操作系统的发展过程 正是由于操作系统在信息安全中的特殊地位,长久以来,人们试图寻找各种 切实有效的方法,开发出能够满足实际应用需要的安全操作系统。安全操作系统 浙江火学硕士学位论文第l 章绪论 的发展,根据研究与开发工作及其相应的技术成果的特点,大致分为四个阶段 【3 】【4 】: ( 1 ) 奠基时期:l e an d e r s o n 提出了引用监控机制、引用验证机制、安全内 核和安全建模等重要思想,为安全操作系统的开发奠定了基础。 ( 2 ) 食谱时期:开发以t c s e c 5 】为范型的安全操作系统,t c s e c 为安全系统 指定的是一个单一的系统安全策略,诸如强制访问控制和自主访问控制等。 ( 3 ) 多策略时期:随着分布式应用的迅速普及,单一安全策略与安全策略多 样性的需求产生矛盾,此时期主要解决分布式多策略问题。 ( 4 ) 动态策略时期:策略灵活性是动态策略时期的重要特征,因为安全策略通 常并不是静止的。1 9 9 9 年,f l a s k h 】系统的诞生是动态策略时期的开始。 安全操作系统发展的推动力是实际应用的需要,现实环境的变化促使用于解 决问题的手段必须进行适应性调整。 由于安全性是操作系统的重要性能,u n i x ,w i n d o w s 和其它操作系统都在不断 地提高自己的安全性能,比如s o l a r i s 中实现了基于角色访问控制,支持高级访问 控制策略的实施。近几年,由于l i n u x 的源码开放性,为安全操作系统的研究提 供了平台,国内外的研究机构提出了多种基于l i n u x 的安全框架,出现了多种安 全操作系统。 1 3 3 典型的l i n u x 安全操作系统 l i n u x 操作系统是u n i x 的继承和发展,是免费使用和自由传播的操作系统, 由全世界众多自由软件爱好者参与编写和维护。l i n u x 操作系统以其开源性、高 效性、稳定性和灵活性吸引了越来越多的用户。使用l i n u x 操作系统较多的领域 有:高性能集群计算、嵌入式系统、尖端设备( 如航天、火星探测) 、中高端w e b 服务器和数据库服务等领域。 目前,已有不少安全操作系统面世。典型的开源安全操作系统有s e l i n u x 、 r s b a c 和l i d s 。 ( 1 ) s e l i n u x ( s e c u r i t y - e n h a n c e dl i n u x ,安全增强l i n u x 系统) s e l i n u x t 7 j 【2 0 1 是由n s a 资助和主持,包括s c c 公司、m i t r e 公司、n a i 实验 4 浙江人学硕士学位论文第l 章绪论 室和犹他大学微内核结构研究组等参与开发的l i n u x 安全增强系统。该系统在 2 0 0 0 年底对外j 下式发布,目前已经成为l i n u x 2 6 内核的一部分。s e l i n u x 的研制 目标是对强制类访问控制策略提供统一的灵活支持,通过访问控制策略的灵活配 置实现不同领域内的安全需求和安全目标,及验证强制类访问控制在主流操作系 统中得到应用的可行性。对访问控制策略的灵活支持是s e l i n u x 的最大特点,可 以支持多个层次上的策略扩展和配置。 s e l i n u x 实现了f l a s k i 】安全体系结构,把访问控制策略的解释完全封装在独 立的安全服务器( s s ) 中,策略扩展性通过增减s s 来实现,策略配置通过启用 不同的s s 实现; s e l i n u x 实现了功能强大的e s s ( e x a m p l es e c u r i t ys e r v e r ) ,e s s 支持r b a c 的策略描述,角色与角色、角色与权限、角色与用户的关系可由安全管理员根据 具体的应用环境配置和指定,从而实现对不同访问控制策略的支持。此外, s e l i n u x 还实现了对m l s 和t e 策略的支持。 ( 2 ) r s b a c ( r u l es e tb a s e da c c e s sc o n t r o lf o rl i n u x ) r s b a c 8 】【1 9 】是德国汉堡大学等近年来在l i n u x 上实现的安全增强系统。该系 统通过g f a c ( g e n e r a l i z e df r a m e w o r ko f a c c e s sc o n t r 0 1 ) 框架来统一管理和组织所 支持的访问控制策略,利用l i n u x 的l k m 机制支持访问控制策略的动态扩展。 要支持新的安全策略,只要按接口规范实现相应的策略模块,把策略模块插入系 统并注册,该模块的访问判断立即发挥作用。该系统支持了很多常用的安全策略, 实现了多个管理员共同管理系统。此外,该系统还具有一定的入侵检测功能,可 以扫描出某些l i n u x 病毒,如b h s s a 等。 ( 3 ) l i d s ( l i n u xi n t r u s i o nd e t e c t i o ns y s t e m ) l i d s 9 】是中国人谢华刚开发的l i n u x 入侵检测系统。它是用来增强l i n u x 内 核级安全的一个内核补丁和一系列的管理工具。l i d s 是国内除了s e l i n u x 和 r s b a c 之外被了解比较多的一个l i n u x 内核级安全增强系统,主要是因为它的发 起人和核心开发者是中国人谢华刚。l i d s 在l i n u x 内核中实现了引用监控器和强 制访问控制。它的主要安全特性有:实现了文件的保护,包括r o o t 在内的所有用 户都无法修改l i d s 保护的文件,并且可以隐藏文件,实现了进程的保护,包括 5 浙江人学硕士学位论文第1 章绪论 r o o t 在内的所有用户都无法杀死l i d s 保护的进程,并且可以隐藏进程,以访问 控制链表的形式( a c l ) 实现了细粒度的访问控制,使用并且扩展了c a p a b i l i t y 来控 制整个系统,实现了内核级的安全报警,实现了内核级的端口扫描检测器,对网 络访问也有一定的限制。 1 4 论文的工作与目标 论文的最终目标有以下三个方面: ( 1 ) 深入研究l i n u x 内核安全实现机制。 本文在充分研究l i n u x 内核的实现机制的基础上,详细讨论包括l i n u x 内核 动态模块、系统调用、模块机制、文件系统、日志系统等与安全有关的内容。 ( 2 ) 发现现有l i n u x 系统在安全方面的不足,并加以安全增强。 分析现有l i n u x 系统存在的不足,通过l k m 实现增强系统安全,并通过替 换系统调用来实现监控特权命令使用并加以安全保护。 ( 3 ) 分析l i n u x 同志系统 l i n u x 日志系统负责记录整个系统运行过程,通过查看与分析日志,管理员 能发现系统漏洞,能察觉到系统运行正常与否。由于系统日志的重要,入侵者 为了能长期占有和利用目标机器,篡改与损坏日志是常有的事,所以本文的增 强系统安全实例,以系统同志为主,并在第5 章着重分析了l i n u x 的日志系统。 论文程序实现基于f e d o r ac o r e5 平台,出现的内核代码版本均是2 6 1 5 。 1 5 论文的组织结构 本文主要分析了l i n u x 系统的部分安全机制,并针对薄弱环节给出解决方案。 全文分为六章: 第一章是绪论,阐述网络安全现状,计算机信息安全和安全操作系统。 第二章深入分析l i n u x 内核,介绍与硕士论文研究内容相关的l i n u x 内核实 现机制,包括动态可加载内核模块、系统调用和文件系统。 第三章介绍隐藏功能模块的方法。 第四章提出一种替换系统调用的方法,并且用替换后的系统调用,监控特权 6 浙江人学硕上学位论文第1 章绪论 命令的使用,并且以c h a t t r 命令为例进行讨论。 第五章详细分析l i n u x 的同志系统,给出并讨论完全清除用户连接日志的方 法,从而主动保障日志系统的安全。 第六章总结论文所做工作。 7 浙江大学硕士学位论文第2 章l i n u x 内核实现机制 第2 章l i n u x 内核实现机制 2 1 动态可加载内核模块 2 1 1 什么是动态可加载内核模块 动态可加载内核模块( l k m ,l o a d a b l ek e r n e lm o d u l e ) ,一般简称为模块。 l i n u x 操作系统的内核是单一体系结构( m o n o l i t h i ck e r n e l ) 的n 引。也就是说, 整个内核是一个单独的非常大的程序。与单一体系结构相对的是微内核体系结构 ( m i c r ok e r n e l ) ,比如w i n d o w sn t 采用的就是微内核体系结构。对于微内核体系 结构特点,操作系统的核心部分是一个很小的内核,实现一些最基本的服务,如 创建和删除进程、内存管理、中断管理等等。而文件系统、网络协议等其它部分 都在微内核外的用户空问里运行。 这两种体系的内核各有优缺点。使用微内核的操作系统具有很好的可扩展性 而且内核非常的小,但这样的操作系统由于不同层次之间的消息传递要花费一定 的代价所以效率比较低。对单一体系结构的操作系统来说,所有的模块都集成在 一起,系统的速度和性能都很好,但是可扩展性和维护性就相对比较差。 为了改善单一体系结构的可扩展性、可维护性等,l i n u x 操作系统使用了一 种全新的内核模块机制,动态可加载内核模块。用户可以根据需要,在不需要对 内核重新编译的情况下,模块能动态地装入内核或从内核移出。 模块是在内核空间运行的程序,实际上是一种目标对象文件,没有链接,不 能独立运行,但是其代码可以在运行时链接到系统中作为内核的一部分运行或从 内核中取下,从而可以动态扩充内核的功能。这种目标代码通常由一组函数和数 据结构组成,用来实现一种文件系统,一个驱动程序,或其它内核上层的功能。 与运行在微内核体系操作系统的外部用户空间的进程不同,模块不是作为一个进 程执行的,而像其他静念连接的内核函数一样,它在内核态代表当前进程执行。 由于引入了模块机制,l i n u x 的内核可以达到最小,即内核中实现一些基本功能, 如从模块到内核的接口,内核管理所有模块的方式等等,而系统的可扩展性就留 给模块来完成。 8 浙江人学硕士学位论文 第2 章l i n u x 内核实现机制 2 1 2 内核模块的特点 使用模块的优点: ( 1 ) 使得内核更加紧凑和灵活。 ( 2 ) 修改内核时,不必全部重新编译整个内核,可节省不少时间,避免人工 操作的错误。系统中如果需要使用新模块,只要编译相应的模块然后使用特定用 户空间的程序将模块插入即可。 ( 3 ) 模块可以不依赖于某个固定的硬件平台。 模块的目标代码一旦被链接到内核,它的作用和静态链接的内核目标代码完 全等价。所以,当调用模块的函数时,无须显式的消息传递。 但是,内核模块的引入也带来一定的问题: ( 1 ) 由于内核所占用的内存是不会被换出的,所以链接进内核的模块会给整 个系统带来一定的性能和内存利用方面的损失。 ( 2 ) 装入内核的模块就成为内核的一部分,可以修改内核中的其他部分,因 此,模块的使用不当会导致系统崩溃。 ( 3 ) 为了让内核模块能访问所有内核资源,内核必须维护符号表,并在装入 和卸载模块时修改符号表。 ( 4 ) 模块会要求利用其它模块的功能,所以,内核要维护模块之间的依赖性。 模块是和内核在同样的地址空间运行的,模块编程在一定意义上说也就是内 核编程。但是并不是内核中所有的地方都可以使用模块。一般是在设备驱动程 序、文件系统等地方使用模块,而对l i n u x 内核中极为重要的地方,如进程管理 和内存管理等,仍难以通过模块来实现,通常必须直接对内核进行修改。 在l i n u x 内核源程序中,经常利用内核模块实现的功能有文件系统,s c s i 高级驱动程序,大多数的s c s i 驱动程序,多数c d r o m 驱动程序,以太网驱动 程序等等。 2 1 3 如何使用内核模块 一个非常简单的模块程序如下所示: 9 浙江大学硕十学位论文 第2 章l i n u x 内核实现机制 # d e f i n em o d u l e # i n c l u d e i n ti n i l m o d u l e ( v o i d ) p r i n t k ( “ h e l l ow o r l d ! k n ”) ; r e t u r no : ) v o i dc l e a n u p _ m o d u l e ( v o i d ) ( p r i n t k ( “ g o o d b y e ! ”) ; ) m o d u l e _ l i c e n s e ( “g p l ”) ; 说明: 代码的第一行# d e f i n em o d u l e 首先明确这是一个模块。任何模块程序的编 写都需要包含l i n u x m o d u l e h 这个头文件,这个文件包含了对模块的结构定义以 及模块的版本控制。 函数i n i t - m o d u l e ( ) 和函数c l e a n u p _ m o d u l e ( ) 是模块编程中最基本的也是必须 的两个函数。i n i t _ m o d u l e ( ) 向内核注册模块所提供的新功能;c l e a n u p _ m o d u l e ( ) 负 责注销所有由模块注册的功能。 p r i n t k ( ) i 函数是由l i n u x 内核定义的,功能与p r i n t f 相似。字符串 表示消息 的优先级,p r i n t k o 的一个特点就是它对于不同优先级的消息进行不同的处理,之 所以要在这儿使用高优先级,是因为默认优先级的消息可能不能显示在控制台 上。 要编译和加载模块需要超级用户权限。在编译内核模块前,先准备一个 m a k e f i l e 文件: t a r g e t = h e l l o w o r l d k d i r = u s r s r c l i n u x p w d = $ ( s h e l lp w d ) o b j m + = $ ( t a r g e t ) o d e f a u l t : 1 0 浙江大学硕十学位论文第2 章l i n u x 内核实现机制 m a k e c $ ( k d i r ) m = $ ( p w d ) m o d u l e s 编译内核模块,输入命令m a k e : # m a k e 可以看到生成文件“h e l l o w o r l d k o ”。然后执行内核模块的装入命令: # i n s m o dh e l l o w o r l d k o h e l l ow o r l d ! 这个时候,看到了打印在屏幕上的“h e l l ow o r l d ! ”,它是在i n i t _ m o d u l e o q b 定义的。由此说明,h e l l o w o r l d 模块已经加载到内核中了。我们可以使用l s m o d 命令查看。l s m o d 命令的作用是告诉我们所有在内核中运行的模块的信息,包括 模块的名称,占用空间的大小,使用计数以及当自 状态和依赖性。 r o o t # 1 s m o d m o d u l es i z eu s e d b y h e l l o w o r l d4 6 40 ( u n u s e d ) 最后,我们要卸载这个模块。 撑r m m o dh e l l o w o r l d k o g o o d b y e ! 看到了打印在屏幕上的“g o o d b y e ! ”,它是在c l e a n u p _ m o d u l e o q b 义的。由 此说明,h e l l o w o r l d 模块已经被删除。如果这时候我们再使用l s m o d 查看,会发 现h e l l o w o r l d 模块已经不在了。 i n s m o d 和r m m o d 这两个命令,是两个用于把模块插入内核和从内核移走模 块的实用程序。i n s m o d 的作用就是将需要插入的模块以目标代码的形式插入到内 核中。r m m o d 程序将已经插入内核的模块从内核中移出,r m m o d 会自动运行在内 核模块自己定义的出口函数。前面用到的i n s m o d ,r m m o d 和l s m o d 都属于m o d u l e i n i t t o o l s 模块实用程序。 浙江人学硕上学位论文第2 章l i n u x 内核实现机制 2 2 系统调用 系统调用是内核提供的,功能十分强大的一系列函数。它们在内核中实现, 然后通过一定的方式( 例如,软中断) 呈现给用户,是用户程序与内核交互的一 个接口。可以这么说,没有了系统调用,我们就不可能编写出十分强大的用户程 序,因为你失去了内核的支持。由此可见系统调用在一个系统中的重要性。 l i n u x 的系统调用的函数指针存放在系统调用符号表( s y sc a l lt a b l e ) 中。通 过一些特殊的手段,我们可以更改其中系统地址的指针将系统调用引导到自己的 程序代码中,从而实现特定功能。使用l k m 替换系统调用,我们可以在不重新 编译内核的情况下,为l i n u x 系统增加或完成一些特殊形式的功能。 2 2 1 系统调用的安全意义 l i n u x 运行在两个模式( m o d e ) 下:用户态( u s e rm o d e ,或用户模式) 和内核态 ( k e r n e lm o d e ,或内核模式) 。系统在内核态中可以运行一些特权指令,然后按照 内核的特权方式进行内存的读写检查,堆栈也切换到内核堆栈。区分用户态与内 核态的主要目的是出于安全的考虑,使得在用户念运行的程序不能“擅自”访问 某些敏感的内核变量,内核函数。用户态的程序只有通过中断门陷入到系统内核 中去,才能执行一些具有特权的内核函数。 系统调用是用户程序与内核的接口。通过系统调用,进程可由用户态转入内 核态,在内核态下完成相应的服务;之后,再返回到用户态。这种实现方式必然 跨越我们刚才提及的两个模式:内核态与用户态。用户程序在用户态调用系统调 用,通过门机制,系统进行模式切换( m o d es w i t c h ) ,进入内核态,执行相应的 系统调用代码,返回( m o d es w i t c h ) 用户态。图2 1 表示模式切换过程。 1 2 浙江大学硕士学位论文 第2 章l i n u x 内核实现机制 用户空间内核空间 图2 1 模式切换 2 2 2 系统调用源代码分析 a r c h i 3 8 6 k e m e l e n t r y s 文件的e n t r y ( s y s t e m _ c a l l ) 编代码段,是所有系 统调用向应程序的入口。 苎! ! 塾垒兰璺型塑! 里! 些! 璺! 垡:璺 e n t r y ( s y s t e m _ c a l l ) 2 3 0 p u s h l e a x 群s a v eo r i g _ e a x 2 31 s a v e a l l 2 3 2 g e r e a d _ i n f o ( e b p ) 2 3 3 群s y s t e mc a l lt r a c i n gi no p e r a t i o n e m u l a t i o n 2 3 4 产n o t e ,t i fs e c c o m pi sb i tn u m b e r8 a n ds oi tn e e d st e s t wa n dn o tt e s t b 2 3 5t e s t w $ ( j i f _ s y s c a l l _ e m u t i fs y s c a l l _ t r a c e l t i f _ s e c c o m p t i f s y s c a l l _ a u d i t ) ,t l f l a g s ( e b p ) 2 3 6 j n zs y s c a l l t r a c e _ e n t r y 2 3 7 c m p l $ ( n r s y s c a l l s ) ,e a x 2 3 8 j a es y s c a l i _ b a d s y s 2 3 9 s y s c a l l _ c a l l : 2 4 0 c a l l s y s _ c a l l _ t a b l e ( ,e a x , 4 ) 2 41 m o v l e a x , e a x ( e s p l 撑s t o r et h er e t u mv a l u e 2 4 2 s y s c a l l _ e x i t : 2 4 3 2 4 4 2 4 5 2 4 6 2 4 7 c l i群m a k es u r ew ed o n tm i s sa l li n t e r r u p t 群s e t t i n gn e e d _ r e s c h e do rs i g p e n d i n g 群b e t w e e ns a m p l i n ga n dt h ei r e t m o v lt i - n a g s ( e b p ) ,e c x t e s t w $ _ t i fa l l w o r k _ m a s k ,c x 存c u r r e n t 一 w o r k 1 3 浙江人学硕士学位论文第2 章l i n u x 内核实现机制 2 4 8 j n es y s c a l le x i 州o r k 2 4 9 2 5 0r e s t o r e a l l : 2 5lm o v le f l a g s ( e s p ) ,t a x# m i xe f l a g s ,s sa n dc s 2 5 2 撑w a r n i n g :o l d s s ( e s p lc o n t a i n st h ew r o n g r a n d o mv a l u e si fw e 2 5 3撑a r er e t u r n i n gt ot h ek e r n e l 2 5 4撑s e ec o m m e n t si np r o c e s s c :c o p y _ t h r e a d of o rd e t a i l s 2 5 5 m o v bo l d s s ( e s p ) ,a h 2 5 6m o v bc s ( e s p ) ,a l 2 5 7 a n d l $ ( v m m a s kl ( 4 8 ) l3 ) ,e a x 2 5 8 e m p l $ (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年淮南市惠粮外包岗位招聘考试参考试题及答案解析
- 2026年幼儿园大班开场白
- 2026年载波通信传输设备行业分析报告及未来发展趋势报告
- 2026年青霉素V钾胶囊行业分析报告及未来发展趋势报告
- 教师培训心得体会
- 吉安县两山转化生态控股有限公司2026年面向社会公开招聘考试参考试题及答案解析
- 2026年幼儿园中班汇报课课件
- 2026年餐厅家具行业分析报告及未来发展趋势报告
- 2026年环保氯化石蜡行业分析报告及未来发展趋势报告
- 2026年立体仓库设备行业分析报告及未来发展趋势报告
- 2022年新高考物理重庆卷试题真题及答案详解
- 《思想道德与法治》学习法治思想 提升法治素养-第六章
- GB/T 7025.1-2023电梯主参数及轿厢、井道、机房的型式与尺寸第1部分:Ⅰ、Ⅱ、Ⅲ、Ⅵ类电梯
- 青海省循化县谢坑铜金矿(二、四釆区)矿山地质环境保护与土地复垦方案
- Cpk 计算标准模板
- FANUC O加工中心编程说明书
- 中铁某局集团责任成本管理实施细则试行
- 滕王阁序注音全文打印版
- 有机肥市场推广方案模板PPT
- GB/T 9341-2008塑料弯曲性能的测定
- GB/T 6451-2015油浸式电力变压器技术参数和要求
评论
0/150
提交评论