(计算机应用技术专业论文)linux操作系统运行过程可视化方法的探索与研究.pdf_第1页
(计算机应用技术专业论文)linux操作系统运行过程可视化方法的探索与研究.pdf_第2页
(计算机应用技术专业论文)linux操作系统运行过程可视化方法的探索与研究.pdf_第3页
(计算机应用技术专业论文)linux操作系统运行过程可视化方法的探索与研究.pdf_第4页
(计算机应用技术专业论文)linux操作系统运行过程可视化方法的探索与研究.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机应用技术专业论文)linux操作系统运行过程可视化方法的探索与研究.pdf.pdf 免费下载

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

文档简介

山东大学硕士学位论文 摘要 操作系统作为计算机系统中最基本的系统软件,管理和控制计算机系统中 的所有软、硬件资源,保证计算机系统的优异性能,为程序的开发和执行提供 良好的环境,是计算机系统的灵魂和核心。计算机理论知识的学习自然离不开 操作系统的学习,而操作系统系统的学习具有概念多、抽象和涉及面广的特点, 是计算机科学中最难学习和掌握的学科之一,所以在学习操作系统原理方面找 到一种便捷的易掌握的方法历来是操作系统学习者的追求目标。而深入学习操 作系统原理自然离不开对源码的学习。近年来开源操作系统的出现和软件可视 化理论的快速发展使这个目标的实现成为可能。本文的目的就是把软件可视化 应用于开源l i n i 】) ( 操作系统,通过对l m 慨操作系统的关键操作的过程可视化, 达到深入学习操作系统的目的。 l i n u x 操作系统是类u n i ) 【( u l l i x 1 i k e ) 操作系统大家族的一名成员。从2 0 世纪9 0 年代末开始,l i n u x 这位在操作系统届比较新的成员变得非常流行,并 且成为最成功的操作系统之一。l i n i 】) 【操作系统最大的优势就是它属于开源软 件,它的源码在g m 许可证下可以免费下载。这就解决了以前操作系统学习中 无源码尴尬局面。 软件可视化( s o r w a r e s u a l i z 蛐o n s ,s v ) 是研究如何利用交互式计算机图 形技术以及图形、动画、音频、视频等各种手段,增强软件中算法和程序理解 性及使用效率的学科。它属于信息可视化的范畴。操作系统作为基本的系统软 件当然也可以使用软件可视化技术对它进行深入研究。 本文把软件可视化理论应用于l i n l | ) 【操作系统,通过对一定时间段内l i i l u x 操作系统执行情况的监控,记录相关对象的执行状态变化,在所监测的时间段 结束后以数据驱动的方式可视化所监控时间段内的系统运行过程。本文的特点 在于把监控过程和可视化再现过程分离,通过事后数据驱动的方式来再现系统 的运行过程,克服了把监控与可视化并行所带来的技术难题,不仅提出了一种 内核运行中的数据获取机制和数据驱动中数据格式的定义方法与驱动实现方 法,还根据实际需要给出了跨平台数据的重建方法,以及可视化实现中所涉及 山东大学硕士学位论文 的对象和变量的形象表示方法。操作系统的功能是系统程序代码执行结果的直 接体现,所以程序可视化对于理解操作系统功能具有很好的帮助,本文提供了 程序可视化所必需的函数调用流程可视化的实现方法并给出了相应的实例,在 理解监控程序功能方面起到了良好的辅助作用。文章的最后通过缺页中断程序 的一个可视化实例进一步说明了本文所提出方法的可行性。 关键词:操作系统;l i n u x ;可视化;函数流程;数据驱动。 i i 山东大学硕士学位论文 a b s t r a c t a st l l eb 船i cs y s t e ms o f h v 缸e ,o p e r 撕n g 夥s t e mm a i l a g e sa l lm es o f n a r e 柏d h a r d 咄r e s o u r c e s0 nt h ec o m p u t e li te 1 1 s u r e 凼ee x c e 王l tp e b 加扭c eo ft l e c o i 印u t e rs y s t e m a n dp r o v i d ea9 0 0 d 锄v i r o n m e n tf o r d e v e l o p m e n ta i l d i m p l e m 即t a l j o no f p r o c e d l l r e s ni st l l es o u la 1 1 dc o r eo f t l l ec o m p u t e rs y s t e m i f y o u w 锄t t ob e f 砌l i a f 谢t i lc o m p u t e rs y s t e i i l o s i so n eo f m em o s t i m p o n a i l tp a r t s f o r y o u 屯ol e 啪a b o m e x c 鹃s i v ec o n c 印t s ,曲s 仃a c to b j e c 馏觚da 、丽d e 啪g eo ft t l e 0 i y a 聘i 招t i l r e en l a r k e dc h a r a c 衄st 量l a tm a k ei tb eo n eo f m em o s td i 伍c 1 1 l ts u b j e c tt 0 m a s t e ri i l c o m p i l t e rs c i e n c es p e d a l i 够s ot o 丘n daq l l i c k 锄de a 黟w 可t o c o r n p r e h e i l dt l ea b s 仃tm e o r i e si sa l w 够sag o a lf o rl e 枷e r so fo s l e 啪i n gm e n a n l r eo f0 s 谢m o u ti 乜s o u r c ec o d ei sn o tp r a c 五c a l w i t hm ee m e r g e n c eo f o p e n s o u r c eo ss o f h v a r e 锄dm er a p i dd 肼d o p m e l l to fs o 帅a r ev i s u a l i z a t i o n a c 王1 i e v i n gt 1 i sg o a li sp o s s i b l e t h ep u 。p o s eo f 吐l i sp a p e ri s 幻a p p i ys o f t 、v a r e v i s l l a l i 撕o nt 置l e o r y 幻o p e n - s o u r c el i n 慨o p e r 撕n gs y s t e m ,曲- o u 曲v j s u a l i 五n gt 1 1 e p f o c e s so ft l l ek e yo p e r a t i o nt oa c h i e v e 也eg o a lo fo p e r 鲥n gs y s t e m sd e p 吐l u n d e r s t a f l d i n g l i n u xi sam e l i l b e ro f 血eb 培f h r n i l yo fu n i x l i k eo p e 幽gs y s t e m s ,f r o mm e l a t e1 9 9 0 s ,鹪an e wm e m b e ro ft 1 1 e0 sf a f i 】i l ym el i n u xo p e m d n gs y s t e mh a s b e c o m ev e r yp o p l l l 缸a n dn o wb e c o i n eo n eo ft l l e1 1 1 0 s ts u c c e s s 伽o p e r 砒i n gs y s t e r r l o p 锄s o u r c ec h a r a c t e ri si 拓笋e a t e s ta d 、,a n t a g e i t ss o u r c ec 锄b ed o w 【1 l o a d e d 船eo f c h a r g e 吼d e rt i l eq 叮l i c s e t h i sr e s o l v e sm ep r e v i o u se m b a 订- 髑m g 讥撕o no f n o s o u r c eo p e r 蚰gs y s t e ms t i l d y s o 舟w 盯ev i s u a l i 撕o ni sas u b j e c tt os t u d yh o wt o 懈e 谊t e r a c d v ec o m p u t e r 黟a p h i ct e c h n o l o 彰舭d 黟a p h i c s ,锄j m a t i o n ,a u d i o ,v i d e 0 勰do t i l e rm e 锄st o e i l i l a l l c et l e 吼d e r s t a n d i n g 孤d 鲋i c i e n c y1 1 s i n go fa l g o r i t i l l n sa i l d p r o c e d u r e s n b e l o n g st o 协e 盯e ao fi i l f o m a t i o nv i s u a l l z a 矗o na sm eb a 甄cs o f h a r eo fm e c o n l p 眦e rs y s t 目1 l ,o so fc o u r s ei sm er e s e a r c hs u b j e c to fs o f c a r e 访s u a l i z a d o n t h i sp a p e r 印p l ys o f t w a r ev i s u a l i z a d o n 吐1 e o r yt ol i n u x o p e r 撕n gs y s t e ma i l d , i i i 山东大学硕士学位论文 t h r o u g hm o n i t o r i n g c e r t a i l l 伽n ep e n o d so si m p l e m e n t a 士i o na n dm e a i l w h i l e r e c o r d i n gt h er e l a t e do b j e c t ss 协c u sc h a n 昏n g ,e v e n 制l yu 辩t h er e c o r d e dd a t at o 啊s l l a l i z et 量l es e l e c t e do si n l p l e m e l l t 撕o np r o c e s s t h ef 毫a 眦o f 血i sp a p e ri st 量l e d i v i s i o no f 脚o i l i t o r i n gp r o c e s sa n d “s u a l i z 撕o np r o c 器s ;w ea d o p taw a yo fp o s t d a t a 矾啊n gm e t h o dt o 讥s u a l i z em ep r o c e s so fm e0 se x e c 面o na 1 1 ds oo v e r c o m e m ep r o b l e mb r o u 曲t b yp 删l e l m 觚a g e m e l l to fm o n i t o r i n go p e f a t i o n 孤d v i s u a l i z a d o n o p e r a t i o l l t 1 1 i sp 印e r n o t o n l yp r o 啊d e s ad a t a a c q l l i s m o n m e c h 肌i s mi i lm ep r o c e s so fr u n n i n gk e m e l ,m ed a t af o m ld e f h d 石o n 缸dd a t a 一“v e n m e t h o d ;b u ta l s o 垂v e sac f o s s p l a 在b r md a t ar e c o n s 由j c d o n l e t l l o db a s e do l l rn e e d a i l d 山eg r a p l l i cr 印r e s e n 枷o nm e m o df o rt l l ef e l a t e do b j e c t s 觚dv 耐a b l 嚣i nm e v i s u a l i z 撕o n o sf u i l c d o ni sad i r e c tr e f l e c 在o no fm er e s u l 忸“m ep r o g r a m s i m p l 锄e n t 撕o n ,s op r o g 啪v i s u a l i 捌o nd o e sa 鲈e a th e i p t ou n d e r s t 趾dm e f u n c d o no f0 s f u n c d o ni m p l e m e n t a t i o nf l o wv i s u a l i 谢o nm e m o dt h a ti su s 咖if o r p r o 黟a mv i s u a l i z 撕o na l s ob e 昏v e ni i lm i sp a p e ra i l dp 1 科sag o o ds u p p o r d n gr o l ei i l m e 吼d e r s 锄d i n go f f u n 甜o no f m em o n i t o r e dp r o c e d u r e h 1t l l e 锄d ,t h ep a p e r 百v e s a “s u a l i z a t i o ne x 锄p l e 如o mp a g ef 训ti m e r r i l p t i o n p r o c e d l l r e t op r o v e1 量l e f 色a s i b i l i t yo f 吐l em 烈h o d sf o ro sp r o c e d u r ev i s u a l i z a 虹o n 百v e ni i i “sp 印e r k yw o r d s :o p e r 确n gs y s t e m ;l i 咖x ;v i 鲫a i i 髓t i 蚰;f u n c 6 0 nn a 哪d a t a d v e 原创性声明和关于论文使用授权的说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本论 文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本 文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名:嫩 日 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意 学校保留或向国家有关部门或机构送交论文的复印件和电子版,允 许论文被查阅和借阅;本人授权山东大学可以将本学位论文的全部 或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他 复制手段保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:移犯导师签名:芡鲰日 期: 山东大学硕士学位论文 第一章绪论 1 1 操作系统可视化的研究意义 操作系统【i 2 l 是现代计算机系统中不可缺少的基本系统软件。操作系统管理 和控制计算机系统中的所有软、硬件资源,是计算机系统的灵魂和核心。除此 之外,它还为用户使用计算机提供一个方便灵活、安全可靠的工作环境。学习 并掌握计算机操作系统的基本原理和操作方法,不仅对计算机专业的学生和研 究人员是必要的,而且对一般计算机应用人员也是非常有益的。 操作系统是计算机系统的基础和核心,操作系统这一部分的学习具有概念 多、抽象、和涉及面广的特点,历来就是计算机专业知识学习的难点。而对于 学习者来说最大的困难并不在于内容的过多,而是概念过于抽象。书本上为了 介绍一个概念往往要使用大段枯燥的文字,而这样的实际效果可能并不理想, 而且这样使得操作系统的学习枯燥乏味,很多学生对操作系统的学习望而却步。 虽然在操作系统的学习过程中也间或做一些实验来检验一些理论和算法。但是 这些实验都是一些模拟实验,并不能很好的体现操作系统的实际运行过程。这 种现象出现的直接原因是现在还没有很好的用于教学的操作系统运行过程仿真 软件。当然没有相关仿真软件的原因是这方面的研究活动较少,其实真正的原 因是大部分的操作系统都是商业软件,源码并不对外公开,操作系统的核心知 识都在开发技术人员的掌握中,我们很难知道操作系统详细的设计过程。但这 些随着开源软件的问世开始转变。人们广为熟知的l i n u x 操作系统便是开源的, 它的源码在g n u 公共许可证下是开放的,我们得到它的源码后,不仅可以通 过分析源码来深入了解操作系统,而且可以对源码进行修改后重新编译l i n l l ) 【 内核,这大大方便了操作系统的学习以及辅助学习操作系统的仿真软件的设计。 本文就是想通过对操作系统内核运行的所选择过程的监控,通过将各种抽象数 据和概念转化为有意义好理解的图形图像,化抽象为形象,以动画的方式再现 这个过程以达到快速,直观地学习效果,使我们更加快捷、真实的了解操作系 统的运行机制和状态。 山东大学硕士学位论文 1 2 相关的研究工作 一直以来有不少基于操作系统学习的系统仿真软件,最早做这方面研究的 是法国的i n a p g 大学( 3 】,他们早在1 9 9 2 年就开始用一种名为s i m u l t a 的软件 在课堂上进行辅助教学操作,并取得良好的效果,软件运行时有两个基本窗口, 一个是“s t a t ew i n d o w ”记录当前全局状态,另一个是“r e p o r tw i n d o w ”报告 事件信息和当前进程的执行信息。当然基于当时的技术条件,它只是以文字的 形式模拟系统的一些概念和算法。 现在这方面较为成熟的软件是澳大利亚q u e 饥s l a n du n i v e r s 匆设计的 r c o s 【”,和o p e r s y s 公司研究的l i n u ) ( 的跟踪工具包u r 5 1 ( l i n u ) 【t r a c e 1 b o l k i t ) 。前者是一个为了演示一般的操作系统的原理所设计的一个袖珍型,多 任务的小型操作系统,可以根据需要对进程调度,内存管理,资源管理等过程 进行模拟,对于直观理解操作系统的原理有所帮助,但是缺点也很明显,就是 它的出发点是基于自己事先构造的数据来模拟场景,数据源不真实。由于预先 设计了系统的初态和执行序列,使其展示的过程真实性大打折扣。所以数据的 可信性限制了这套软件应用。而u r 虽然在通过在操作系统内核中添加自己的 钩子程序获得了系统运行的真实数据但是其对于一些过程的可视化效果又不太 理想,原因主要是它是一款面向程序设计人员的系统调试和监控软件。这导致 了其不太适合做为操作系统课程学习的辅助工具。 如果把上面的两套软件的优点,r c o s 的可视化效果和m 的数据真实性 结合起来设计一套辅助0 s 学习的软件,将无疑会大大有助于操作系统的学习 和理解,本文就是要在这方面作一些研究和设计工作。 1 3 论文的主要内容和章节安排 为了能够清晰、准确的了解操作系统的原理和实际运行的过程,本文将 在获得操作系统运行过程中的真实数据的基础上探索一种具有良好效果的0 s 可视化的方法。通过对操作系统某段时间内的执行情况的监测,首先记录过程 山东大学硕士学位论文 运行中必要的数据,然后把相关数据用形象地图形表示,最后透过所记录的数 据驱动文件以动画地方式再现所监测的时间段内系统的执行过程。此外本文还 着重提出了一种用于辅助了解操作系统执行过程的函数调用流程的可视化实现 方法。 本文第一章首先介绍了操作系统可视化的必要性以及相关研究工作,还有 当前研究工作中存在的一些缺点与不足,初步提出了本文的研究内容及方法特 点。 本文第二章将从可视化的基本理论和方法出发,介绍可视化在当前的应用 及发展情况,以及与操作系统可视化相关的软件可视化的理论知识。之后阐明 了把l i i i i | ) 【作为要可视化的目标的原因并提出了本文可视化中所需数据的采集 方法。 本文第三章主要给出了l i n u ) 【操作系统运行过程可视化密切相关的函数执 行流程的可视化的实现方法,包含了函数的获取及静态函数树的重建,还有函 数执行流程的再现算法,最后通过一个实例做了详细的分析。 本文第四章首先介绍了几种需要可视化的l i l l i d 【操作系统关键过程,接下 来重点讲解了内存分配和管理以及磁盘高速缓存和对换的原理知识及与相关的 数据结构及变量。然后提出了为可视化以上两个过程所记录的数据在w n d o 螂 平台下的重建方法,和可视化所需对象类的设计和数据获取方法等,最后通过 一个缺页中断过程中的实例给出了可视化效果图。 本文最后一章对自己所做的以上工作进行总结,分析其中的不足之处以及 对l i n u ) 【操作系统关键过程可视化的研究进行展望。 山东大学硕士学位论文 第二章操作系统过程可视化的研究方法和内容 2 1 可视化理论简介 可视化通常指的是科学计算可视化,是应用计算机图形学和图象处理技术, 将在科学计算过程中产生的数据和计算结果转换为图形或图象在屏幕上显示出 来,并进行交互处理的理论、方法和技术。科学计算可视化是发达国家在8 0 年 代后期提出并发展起来的一个新的研究领域。1 9 8 7 年2 月,美国国家科学基金 会在w a s h i n g t o n 召开了有关科学计算可视化的首次会议。与会者有来自计算机 图形学、图象处理以及从事不同领域研究的科学计算的专家。这次会议上 m c c o 咖i c k 等的报告【6 1 认为,“将图形图象技术应用于科学计算是一个全新的领 域”,并指出,“科学家不仅需要分析由计算机得出的计算数据,而且需要了解 在计算过程中数据的变化情况,而这些都需要借助于计算机图形学及图形图象 处理技术”。会议将这一涉及到多个学科的领域定名为”s u a l i z a t i o ni n s c i e 埘石cc o i n p i n i n g ”,简称为“s c i 朗五f i cc o m p 而n r 。这次会议以后,美国 和西欧及日本各著名大学、研究所超级计算中心以及大公司纷纷进行科学计算 可视化理论和方法的研究,并在重要的国际计算机图形学会议上发表论文。科 学计算可视化成为近年来国际学术会议讨论的一个热点问题。实际上,随着技 术的发展,科学计算可视化的含义已经大大扩展,它不仅包括科学计算数据的 可视化,而且包括工程计算数据的可视化,如有限元分析的结果等。 近年来,国际上提出了信息可视化 7 _ 1 0 1 问题。一般说来,科学计算可视化 是指空间数据场的可视化,而信息可视化则是指非空间数据的可视化。随着社 会信息化的推进和网络应用的日益广泛,信息源越来越庞大。除了需求对海量 数据进行存储、传输、检索及分类等外,更迫切需求了解数据之间的相互关系 及发展趋势。实际上,在激增的数据背后,隐藏着许多重要的信息,人们希望 能够对其进行更高层次的分析,以便更好地利用这些数据。信息可视化在商务、 金融和通信等领域,有着十分广阔的应用前景,而且也得到了较快的发展,这 其中软件可视化【l “】作为信息可视化的一个分支也得到了迅速的发展。而操作 4 山东大学硕士学位论文 系统是计算机最基本的软件,所以操作系统的可视化研究必然也属于软件可视 化的研究范畴。下面这一节就对软件可视化进行相关的介绍。 2 2 软件可视化理论 软件可视化( s o f t 、a r e s u a l iz a _ d o n s ,s v ) 是研究如何利用交互式计算机图 形技术以及图形、动画、音频、视频等各种手段,增强软件中算法和程序理解 性和使用效率的学科。广义来讲,在程序开发过程中,可视化编程和可视化软 件开发也在软件可视化的范畴里,这里不再考虑。软件可视化包括程序、映射、 图形三要素,其关键问题是如何将表明系统状态和行为的程序特征映射至图形 或者动画表示,主要问题包括:如何来表示程序的状态和行为,采用何种数据 格式;如何定义图形符号表示程序执行中相关的各种物理和逻辑元素,如何定 义恰当的标准来表达元素的各种状态和行为:如何定义程序特征到图形元素之 间的映射关系。通常研究的软件可视化的内容集中在程序的多种方面,例如源 程序代码、数据结构、实时程序状态、控制流或者算法等,大体分为定义在较 低层次的程序可视化和较高层次的算法可视化两部分,下面分别阐述。 程序可视化”1 ( p v ,p r o j f 锄s u a l i z 撕o n ) 指对程序代码或数据结构的静 态或动态特征进行的可视化。针对程序代码分为静态代码可视化、动态代码可 视化( 又称代码动画) ,前者通常打印出程序代码或者利用某种软件建立程序映 象实现静态观察;后者则在程序执行路径时着重展示执行中的代码。针对数据 结构可视化也分为静态数据可视化、动态数据可视化( 又称数据动画) ,前者从 静态角度图形化表示数据结构,后者则随着程序的执行动态展示图形化数据结 构的相应变化。 算法可视化【“”1 ( a v ,g o r i t h m s u a l i z 撕o n ) 一般以研究和教学为目的, 针对软件较高层次算法的可视化。它将程序的数据、操作和语义提取出来进行 动态演示,一般分为两类:静态算法可视化,通过一系列静止的图像来展示算 法的执行过程,最简单的例子如流程图、n - s 图等:动态算法可视化,将算法 的执行过程以动画的形式连续描述出。 山东大学硕士学位论文 2 3l i n u x 操作系统可视化 l i n u ) 【操作系统【驯是类u 1 1 i x ( u n i x 1 i k e ) 【2 l 】操作系统大家族的一名成员。 从2 0 世纪9 0 年代末开始,l i n l 】) 【这位在操作系统届比较新的成员变得非常流 行,并且跻身于那些有名的商用u n i x 操作系统之列,这些u n i x 操作系统包括 a t t 公司开发的s ( 现在由s c o 公司拥有) 、加利福尼亚大学伯克利分校 发布的44 b s d 、d e c 公司的d i 西t a lu n i x 、m 公司的a 、髓公司的h p u x 、 s 公司的s o l a r i s 以及a p p l e 公司的m 0 s x 。 现在流行的操作系统除了i 烈,i 血u ) 【外,还有d o s 腑n d o 、s 、o s 2 等不 同版本系统,以及在军事等特定领域使用的专门操作系统。它们逐步发展为多 线程、多任务为主、具有网络功能的操作系统。这些操作系统相比较,除了在 执行效率、对应的硬件平台、分布式计算环境、友好的用户界面以及网络功能 等方面有所不同,在c p u 管理、进程管理、内存管理、文件系统以及设备管理 等方面并无太多革命性的变化。所以如果能够深入了解一种操作系统,对于操 作系统的学习就足够了。 我们选择l m u x 作为可视化研究的操作系统,其中一个最重要的原因就是 l i n l 】) 【它不是商业操作系统,它的源码在g n u 【2 2 公共许可证下是开放的,任何 人都可以获得源码并研究它,只要你从其官方网站下载源码就可以由表及里的 探究这个最成功且又最现在的操作系统。而这恰恰是我们研究操作系统真实的 运行过程必须获得的最有价值的原材料。 2 3 1lin u x 操作系统运行过程的可视化方法 前面几节我们介绍了软件可视化目的以及选择l i n u ) 【操作系统软件作为研 究对象的原因。这一小节从整体框架上介绍一下本文的操作系统软件可视化的 研究思路及方法。 我们在提出自己操作系统可视化的方法之前必须先弄清楚几个问题,第一, 可视化的目的。第二,可视化的内容,究竟有哪些部分需要可视化。第三,如 何获得可视化内容的真实数据。第四,如何建立实体和其描述图像之间的对应 关系。第五,如何把连续的数据变化转化成动态的图像变化,也就是动画的数 山东大学硕士学位论文 据驱动问题。下面一一进行解答。 问题( 1 ) ,操作系统可视化的目的前面已经讲过,就是为了更好的理解操作系统 的运行原理及所涉及的概念和算法。 问题( 2 ) ,可视化的内容方面全面持久监控操作系统的各个组成部分的工作状态 和运行情况显然是不现实的,那无疑是复制了一个操作系统。我们按功能把操 作系统分为很多部分,通过在设定时间段内对这些部分的单独监控所得的数据 来重现这一时间段内的这些部分功能的实现过程。可视化内容就是与这些部分 相关的逻辑实体( 进程,页表,线性区等) 和物理实体( c p u 、物理内存、外 部设备等) ,对应到代码中就是那些与实体相关的数据结构和变量。 问题( 3 ) ,获得可视化内容真实数据的方法就是通过在操作系统内核中相应的采 集点插入自己钩子程序,同过执行这些程序来提取所需可视化的内容的数据信 息。 问题( 4 ) ,实体与其描述图像之间的对应关系,也就是比如线性区用何种图像来 表示更加形象。我们的基本原则就是选择尽可能简单但大家都较为熟悉的图形。 如线性区结构用多行单列的表格表示,既简单又直观,在第四章最后一节由相 关图像的表示。 问题( 5 ) ,动画的数据驱动问题,我们事先定义好数据驱动文件,文件的记录具 有满足需要的特定格式,而且记录是按程序执行的时间序列写入的,对文件的 记录的读取顺序读取,然后根据数据变化改变相应的图像便完成了动画的生成。 到此给出l i n u x 操作系统可视化的整体设计思路。( 所谓的过程就是定时 间段内l i n u x 操作系统的运行) 。如下图 2 1l i n u x 操作系统可视化整体思路图 山东大学硕士学位论文 2 3 2 操作系统运行过程中数据的采集方法 本文的实现方法介绍如下:l i n u ) 【下的每个进程的地址空间被分为内核空 间和和用户空间,一般情况下用户进程不能直接访问内核空间数据,内核也只 能通过特殊的方式才能访问用户空间。我们定义的采集点都在内核空间,需要 实现内核和用户空间之间双向数据通信:从用户空间向内核传送控制数据以灵 活地控制采集点的状态:而内核要将采集到的数据传送到用户空间并保存到文 件里。 用户空间向内核发送控制信息,可利用可加载模块技术【珏矧( l o a d a b l e k 锄dm o d e l ,l k m ) 。l k m 是l 血u x 内核的扩展机制,模块程序运行在内核空 间,能访问内核空间数据,具有f o o t 权限的用户通过使用命令i n s m o d 和蛳o d 加载和卸载模块。每个模块至少包括两个函数,用来初始化和清除模块的 i i l i tm o d u l e ( ) 和c l e a l l u pm o d u l e o ,分别在加载和卸载时调用。利用模块可以访 问内核空间数据的特性,在初始化函数中向采集点传送控制信息,加载模块时 激活采集点;用卸载模块时,屏蔽所有采集点,恢复内核的正常运行。 内核向用户空间输送数据可借鉴日志原理。从内存中划出一块缓冲循环专 门存储采集数据,通过内核文件操作最终保存数据到磁盘。设总数据量q 、缓 冲区大小n 、磁盘操作次数f ,q n 盯,为保证跟踪时间上的精确,需最小化f ; 为减小干扰内核使用内存对,需控制n ,凸现了空间和时间的矛盾。使用口血t k 的日志方法在内存稀缺情况下减小缓冲以节省空间,事实上l i n u x 系统若不运 行x w i n d o w ,仅8 船内存就可以正常工作 “,况且现有内存在容量和价格上 均可满足需要,考虑以空间换时间,开辟较大的循环缓冲存放数据,既保证数 据不会丢失,又减少了磁盘操作,在一定程度上使数据较精确。 数据采集的实现流程:1 ) r o o t 用户利用i l l s m o d 命令加载模块,激活t s 时 刻采集点:2 4 ) 执行到t s 时刻,描述数据被写入缓冲区并最终写入文件,屏蔽 t s 时刻采集点:5 ) 激活所有动态采集点;6 - 7 ) 执行到动态采集点,记录数据到 缓冲区,缓冲区满则跟踪暂停,追加数据到指定文件后继续跟踪,至t e 时刻目 标活动执行完,屏蔽动态采集点,跟踪结束:8 ) r 0 0 t 用户使用兀n m o d 命令卸载 模块。 2 山东大学硕士学位论文 图22 内核数据采集流程 9 山东大学硕士学位论文 第三章函数调用树的重建及函数调用流程的可视化 在可视化l i m 内核运行状态的过程中,函数调用流程的可视化又是一个必 不可少的部分,它能够以时间顺序清晰的展示整个关键状态运行过程中l i n u x 的系统函数的调用执行过程。以往我们描述这种过程只是简单的把状态运行过 程中调用到的函数输出到终端或者一个文件中,便于查看,但是这种方法不能 够体现各个调用函数之间的整体关系,如父子调用关系,使本来调用的层次性 无法很好的体现,而且如果记录的函数比较多就会使自己的查看带来很大困 难,使这种方法的辅助作用大打折扣。 本文采用构建一棵内核运行过程静态可视化树的方法,通过旌,c 中的t m e c o l 帅l 控件和l i m 下运行过程中函数调用的记录文件还有l i n u x 中所有函数以及 函数之间的调用关系的数据库共同来构建出这棵可视化的函数树,然后再利用 函数调用的记录文件在这棵静态树上动态展示内核运行过程中函数调用的执行 过程。 构建函数静态树所需做的前期工作 ( 1 ) :通过对l i m 源代码的扫描,从中筛选出所有的函数和函数调用关系, 建立一个名为f 甜o n 的数据库,包含两个表,一个是记录所有函数的表a l l f u n c , 另一个是记录函数之间调用关系的表f l l i l c 曲n 。 ( 2 ) :在l i r m x 内核中所要跟踪的过程的源码部分插入函数调用检测点,以用 于生成函数调用流程的记录文件。 3 1 函数声明和函数调用关系的提取 3 1 1 函数声明的提取方法 在l i n u ,【的源文件中提取所有的函数是项烦杂的任务,本文中所使用的 l i n u ) 【操作系统是261 541 3 8 6 版本“,它共有大约有9 3 4 5 个源文件,占用空 间约1 5 0 m 。本文中所采用的方法是首先读取所有+ h 文件,从中筛选出所有的 1 0 山东大学硕士学位论文 函数声明,即所有的函数名及其参数,返回值。因为按照代码编写规范所有使 用的函数都会在$ h 文件中声明。这样就可以保证能够得到所有的函数。方法 思路如下: 注:在从2 到3 的过程中还要进行一次剔除操作,因为在h 文件中有可能有i n l i n e 函数的函数体,而函 数体内有可能有i f 判断语句和对于其他函数的调用语句,为了去棘这种情况,还有进行i 匹配。屏蔽大 括号内的内容。在第6 步中为何要剔除宏函数,在下面的在源码中插入检测点一节将有详细介绍。 完成了从所有h 文件中读取函数声明并且把它们存入相应的数据库表中之 后,接下来就要在源文件中查找函数体内部的函数之间的调用关系。 3 1 2 函数静态调用关系的提取 函数调用关系有个明显的特点,那就是必定在函数体内,我们只要找到一 个函数然后再在其函数体内查找对其它函数调用。然后把该函数名和其调用的 山东大学硕士学位论文 函数存入数据库表f u n c r e l a n o n 中。查找思路如下: 注l :一般情况下函数体在$ c 中但内嵌函数比较特殊,它的声明和函数体一般在h 文件中,所以这里 山东大学硕士学位论文 对+ c 和 h 都要扫描。 注2 :“紧豫”的含义是右小括号和左大括号之同除了空格和回车换行符外没有其它字符。这是为了保证 找的的大括号之间的代码为函数体。 注3 :这里舍弃的读入内容有可能是一行也有可能是数行不确定。 注4 :f u n c m l 撕表的每一条记录由记录号i d ,主调用函数名c 甜l n 蛐e ,被调用的函数名n 锄c ,以及主函 数所在的文件路径及文件名呻l l i 四个字段组成。一个主调用函数在函数体内如果调用了n 个函数。那么 搜索这个函数体后就会产生l h 帅c 一致的n 条记录。 以上是扫描函数声明和函数调用关系的基本思路,实际程序算法比较复杂, 由于篇幅的原因不便展开。 3 2 函数声明和函数调用关系的存储 我们所记录的函数声明和函数调用关系等信息的数据量比较庞大,仅函数 关系大约近7 0 多万条,而且我们在后续的操作中经常会进行查询操作,为了使 程序更加简洁高效,所以建立一个名为f 吼c t i o n 的数据库来存取函数信息显得 尤为必要。 3 。2 1 数据库的优点及d b 髂的选择 数据库的主要功能旨在组织和管理很庞大或复杂的信息和基于w e b 的库存 查询请求,不仅仅为客户提供信息,而且还可以为您自己使用数据库可以提供 如下功能: ( 1 ) 减少记录编档的时间;( 2 ) 减小记录检索时间:( 3 ) 灵活的查找序 列:( 4 ) 灵活的输出格式;( 5 ) 多个用户同时访问记录。 h 母s q l 冽是现在流行的关系数据库中其中的一种,相比其它的数据库 管理系统( d b 豁) 来说,h 匆s q l 除了具有小巧、功能齐全、查询迅捷等优点外, 另外册s q l 是开源软件,因为是开源的,所以支持任意修改,可以去除自己不 需要的功能,从而简化埘s q l ,提高速度。还有h 母s q l 适用于所有平台,非常 适合于跨平台开发。而本文所采用的实现方法正是基于跨平台的开发。所以我 们选择了h 母s q l 。 山东大学硕士学位论文 3 2 2 数据库中表的设计 上面也简单提到过,建立的数据库f u n “o n 有两个表组成。一个是a 1 1 f 吼c 表,它的记录格式由记录号d ,函数声明( 函数名,返回值类型,参数) n 锄e 和函数声明所在的路径p a 血组成。下面是一条记录实例: 6 3 6 0 v o i d v c c 一伸i e a 鞯一a 8 y n “s 叽c t 蚰一v v c c ,m t m p l y ) d :、l i i i u 静261 54 、i l l l d e 、i i n u 蛐d e v h 另一个是f u i l c r e l 撕o n 表,它每一条记录由记录号d ,主调用函数( 函数名, 返回值类型,参数) c a l l i l 锄e ,被调用的函数名n 锄e ,以及主函数所在的文件路 径及文件名p a t i l 四个字段组成。下面是一条记录实例: 1 4 0 6 2 5 $ 嘶ci n td o e n d _ j “s 咖nm u m p a t l l + m ,s n u nb i o b i o 。i n t 盯t a 咖u c tm p a t i l j o + m p i o ) s p h 岫l o c ki f 甲瑚枷喊m - l o c kn 8 9 摹) d :、l j l i u 2 61 54 、d d v c 巧、m 小d m - m p a t h c 3 3l i 九u x 内核中监测点的设置及函数调用信息的采集 数据采集的基本方法是在源码中嵌入程序代码,为保证数据真实,采集方 法应以最小化对系统的干扰为基本原则,在内核里采集数据,各种方法在时间 空间上都会干扰系统,只能权衡后最小化这种干扰。 3 3 1 常用的内核数据采集方法 采集l i i l u ) 【内核数据广泛应用于入侵检测、安全审计及监控系统中,也可 以调试内核、分析源代码、编写驱动等。常用方法有:利用日志记录函数p 血咄 和系统日志、利用可加载内核模块技术劫持系统调用l 等。 日志记录函数p 血咄和系统日志多用于调试内核,原理是用p r i m k 将数据 写到固定长度的循环缓冲区,一旦它满了,回到开始处填写后续数据。当大量 的数据源源而至时数据可能丢失,而且每次打印消息都会引起磁盘操作,数据 源源而至时将频繁写磁盘降低系统性能,影响数据真实性。因此从数据量和真 实性要求方面否定它。 利用可加载内核模块劫持系统调用广泛应用于安全领域,不需重编译内核。 利用系统调用劫持技术截获与安全相关的某些系统调用,在相应内核处理函数 里添加采集点获取数据,通过提取数据特征,发现异常事件。而我们需要多粒 度( 添加注释) 的跟踪内核的执行路径,关注所有与特定内核活动相关的函数, 山东大学硕士学位论文 仅提供劫持系统调用的功能不合要求。 3 3 2 实际采用的方法 本文中谈到的l i n u ) 【内核运行数据的采集方法在2 3 2 节中已经做了详细介 绍,现在只简单介绍一下函数调用数据的采集方法和过程。 函数数据采集的实现流程:1 ) r o o t 用户利用i n s r n o d 命令加载模块,在t s 时刻,激活所有动态采集点;3 4 ) 执行到动态采集点,记录数据到缓冲区,缓 冲区满则跟踪暂停,追加数据到指定文件后继续跟踪,至t e 时刻目标活动执行 完,屏蔽动态采集点,跟踪结束;5 ) r 0 0 t 用户使用蝴o d 命令卸载模块。 图31 函数数据采集实现流程图 3 3 3 函数内检测点的设置 函数内设置检测点,一个函数内设置两个检测点,检测点记录函数名和 函数进入标志;检测点记录函数名和函数退出标志。 其模型如下所示: 函数名( 参数) ( 检测点:记录函数名和函数进入标志; 函数体; 检测点:记录函数名和函数退出标志: ) 实际设置检测点要复杂的多( 这里涉及篇幅,不便展开) ,但总归能够设置成 山东大学硕士学位论文 如上形式,设置完毕后因为已经对源代码进行了修改,所以要重新编译l i n u x 内核。 3 4 静态函数树的构建及调用流程的可视化 3 4 1 静态函数树的构建 函数树的构建需要两个基本条件,一个是实际的函数调用记录文件f l 】i l c t i o n , 这个已经在插入检测点后通过3 3 2 中介绍的方法得到。文件格式如下: 进入退出标志( i no ro l i t ) 函数名。 示例文件的部分内容如下: i l l d o j ) a g 曲u l t i l lr e a dc r 2 o u tr e a dc r 2 i 1 1 n o n 向d i e o m n o t i

温馨提示

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

评论

0/150

提交评论