已阅读5页,还剩68页未读, 继续免费阅读
(通信与信息系统专业论文)一种基于嵌入式linux的防火墙的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘篮摘要随着网络的j “泛应川干网络技术的凶及,网络安全问题日箍突出,并且引起了各利r 川j _ 的关注。防火墙技术足保护网络安全的重要手段,但是目前众多的防火墙都非常昂贵,严重限制了这利晴效手段的推广使用。本文立意于建立一利低成本商效率的防火墙。文章首先介绍了如何创建防火墙平台:一种嵌入式系统,并列嵌入式系统的原理和实现进行了基本的闸述。重点讨沦了嵌入式系统的选择,微内核的生成,文件系统的组成,在综合比较綦1 f i j | 上,选择l i n u x 系统作为出发点进行改进和裁剪,建立了系统运行的安全稳定平台。随后对于防火墙所使用的基本技术干原理做r 较全面的讲解,f :介绍了当前防火墙主要的体系结构。第三部分结合防火墙技术干嵌人式系统平台,详细谚 解了防火墙的各币l - 指令和参数,结合所作工作给出了一些实例。最后,通过将这套基于嵌入式系统的防火墙系统应j 1 j 于真实的网络环境,进行了实际环境的考验,取得了较好的效果。关键词嵌入式防火墙网络安全l i n u xa b s t a da b s l 。r a 0 l a st h en e t w o r ki sm o r ep o p u a rt h a nb e f o r e ,t h es e c u r i t yp r o b l e mo ft h en e t w o r ki sb e c o m jn gm o r ea n dm o r es e r i o u s t h ef i r e w a l li sa ne f f i c l e n tm e a s u r et op r o t e c tt h en e t w o r k 。b u tm a n yf i r e w a l lp r o d u c t sa r ev e r ye x p e n s i v e ,t hjsi n s t a n c ei i m i t e dt h eu s eo f i r e w a l l t h i sp a p e ri n t r o d u c ea nf i r e w a l 】w i t hl o wp r i c e ,b u th a sh i g he i f i c a c i o u sa tt h es a m et i m e a tf i r s t ,t h i sp a p e rt a l ka b o u th o wt oe s t a b l i s ht h eb a s eo ff i r e w a l l :t h ee m b e d d e ds y s t e m ,a n di n t r o d u c et h ep r i n c i p l eo fe m b e d d e ds y s t e ma n dh o wt or e a l i z ei t e m p h a s i z et h es e l e c t i o no fe m b e d d e ds y s t e m ,t h eb u i i do ft h em i c r ok e r n e l ,t h ec o m p o s jn go ft h ef i l es y s t e m ,a n dt h e ns e l e c tt h el i n u xo p e r a t i n gs y s t e m b a s et h ei m p r o v e dl i n u xo p e r a t i n gs y s t e m ,t h ee m b e d d e dc o u l dr u ns t e a d y i nt h es e c o n dp a r t ,t h i sp a p e re x p la i nt h et h e o r ya n dt h et e c h n o l o g yo ff i r e w a l l ,a sw e l la st h es t r u c t u r es y s t e m i nt h et h i r dp a r t ,s h o wt h es t a t e m e n ta n dp a r a m e t e rp a r t i c u l a r l y a tl a s t t h i sf i r e w a l ls y s t e mw a su s e di nt h er e a ln e t w o r ke n v i r o r m l e n t ,a n da t t a i n e dt h ei n it i a lo b j e c t k e yw o r d s :f i r e w a l l ,e m b e d d e ds y s t e m,n e t w o r ks e c u r i t y ,l i n u x2科研道德声明y6 8 3 1 5 8秉承研究所严谨的学风与优良的利学道德,本人声明所呈交的论文足我个人在导师指导下进行的研究i 作及取得的研究成果。论文q j 所引用的内容都已给予r 明确的注释和致谢。与我旧l 作的同志对奉研究所做的任何贡献均已在论文中作了明确的说明并表示厂致谢。申请学位论文与资拳4 若有小实之处,本人承担一切相关责任。论文作者签名:二蛰:赴一日期:呈丝垒! 星星知识产权声明本人完全了解中科院西安光学精密机械研究所有关保护知识产权的规定即:研究生在所攻读学位期间论文工作的知识产权单位系中科院西安光学精密机械研究所。本人保证离所后,发表基于研究生工作的论文或使用本论文工作成果时必须征得产权单位的同意,同意后发表的学术论文署名单位仍然为中科院西安光学精密机械研究所。产权单位有权保留送交论文的复印件,允许论文被查阅和借阅;产权单位可以公布论文的全部或部分内容,可以采用影印、缩印或其它复制手段保存论文。( 保密的论文在解密后应遵守此规定)论文作者签名:函:丛一一导师签名日期:兰! 璺:皇星日期z ;i;i引言信息足构成我们赖以生存的客观i 址界三火资源和要素之一,卡h对于物质、能源,信息对于人类的文明发展起着推动作用。随着人类进入知识经济时代,网络经济和信息经济成为社会发展的主流社会、经济和军事的发展都强烈的依赖于信息和网络。依赖和丰t l , t l j程度越高,则就越需要重视安全保护。上个世纪以来,计算机网络技术飞速发展,信息的处理和传递突破了时间和地域的限制,网络化与全球化成为不可抗拒的世界潮流,i n t e r n e t 已经进入社会生活的各个领域和环节。随着计算机的网络化和全球化,人们日常生活i i 一的 1 :多活动将逐步转移到网络f :来。由于网络交易的实时性,山便性,快捷性以及低成本,尤其是消除了地域上的障碍,使得地球上的缚一个人都能够方便的与另一端用户通讯。1 9 9 9 年末,全球个人i u 腑总数达到了4 4 亿台,i n t e r n e t 网使f i j 者达到了2 5 9 亿, j i ;预测,划2 0 0 5 年全球i n t e r n e t用户将达到7 6 5 亿,此外,越于i n t e r n e t 的i 包子i f 务迅速发展,到2 0 0 2 年末,全球通过门户网站达成的贸易额达到r5 万亿美元。信息技术的革命给人们的生活、- l 。i _ - j it :来了好处的同时,也会带来诸多危险和火难。某些人利朋信息技:术,非法入侵,窃取机密,篡改和破坏数据,在网上发布和传播有害的信息,给社会造成难以估计的巨大损失。拒美国f b i 统汁,关困每年因为网络安全问题所造成的经济损失高达7 5 亿美元,全球平均2 0 秒就发生一起i n t e r n e t上的计算机入侵事件。而据美蚓国防部的统汁,其管理的计算机系统一年来受到了超过3 0 万次攻击。更危险的是大多数进攻还没有被察觉。据我国媒体报道,中国9 5 的与i n t e r n e t 相连的网络管理中心都遭受过国内外的黑客攻击或者入侵,其中银行、金融、证券机构是被攻击的重点。当前政府上网工程启动和实施,电子商务、电子4货币、网i 二银行等新、j p 务的兴起羽l 发腰,使得网络安全问题更屁艰要。正是随着信息技术彳l :全球经济t | j 昕处地位的i i 益增强,同时也伴随着如此巨大的危险性,各国均将信息安全领域的的技术创新视为增强其国际竞争力的重要手段。信息安全技术和产品在发达国家迅速发展。很多固家将信息安全技术列为国防、科研和政府资助科研汁划的重点项目,并且已经形成了相当规模的信息安全产业。随着我国信息化进程的不断推进,i n t e r n e t 在我国的迅速发展和普及,信息安全问题变得日益突出。许多i s p 、i c p 、i d c 及其他网络信息服务组织,使用者均不同程度受到了攻击者的侵袭、攻击和破坏。如何实现安全信息系统这一问题成为了人们关注和关心的焦点问题。由于安全问题研究的特殊性,我囤必须独立自主,自行研制开发网络信息安全系统。现在解决网络安全问题的一个有效方法就是在内部网和外部网之间设置防火墙系统。因此,对于防火墙技术的研究和实践,无沦从理论上还是实际应用。i j 郝具有i 分重要的意义。目前,基于源代码开放系统的开发是计算机应用方向的热点之一。在国内外相关研究领域,除了已经产品化的企业级或者电信级防火墙产品外,很多的用户在使用一些自己开发或者免费的防火墙。本文正是在这样的大环境下,借鉴国内外经验,在对防火墙关键技术和结构体系分析的基础上,提出了罐于嵌人式的防火墙网络安全方案,构建了具有自主知识产权和较高性价比的防火墙系统。第一章嵌入式系统构建第一节l i n u x 简介l i n u x 是一种l j 以运行在p c 机上的免费的u n i x 操作系统。它是由芬兰赫尔辛基大学的学f 【ii j i n u st o l v a l d s 在19 9 1 年开发出来的。l i n u st o r v a l d s 把l i n u x 的源程序在i n t e r n e t 上公开,世界各地的编程爱好者自发组磐 起来列l i n u x 进行改进和编写各干1 t应用程序,今天l i n u x 已发展成一个功能强大的操作系统,成为操作系统领域最耀眼的明星。l i n u x 的丌发以及它的源代码足在公川许可址g n u ( g e n e r a lp u b l i cl i c e n s e 一般公共 1 :可) 的保护下的。它们对每个人都是完全免费的。但是这并不意味着l i n u x 和它的一砦周边软件发行版本也是免费的。l i n u x 有着广泛i f j j l t 途,包括网络,软件,l :发,用户平台等等,l i n u x 被认为足一剥,i 岛。陛能,低,i :支的i j j 以替换其他昂贵操作系统的系统。经过十多年的发展,l i n u x 形成了三大类别:标准的l i n u x 版本( d e s k t o pl i n u x ) ,如r e d h a tl i n u x ;小型化的、嵌人式的版本( e m b e d d e dl i n u x ) ,追求体积的最小化,如各剃i o n e - - f l o p p y - - d i s k ”系统;具有实时性扩展功能的l i n u x 版本( r e a l t i m el i n u x ) 。它们使用的基本模块都相同,如l i n u x 内核,s h e l l 命令以及许多系统工具,不同的是各种服务应用程序、面向应用的驱动程序、对启动进程的处理等等。l i n u x 作为嵌入式操作系统的崛起成了i t 界的一个新热点,它所倡导的f r e e & o p e n 的思想打破了计算机软件业中的传统游戏规则,并以其他独有的魅力,迅速成为这一领域重的重要角色。种垡j 谳八l i n u x 系统的阶火埔的f i i f2 j 宴珊第二节当前嵌入式系统主要的体系结构所谢嵌人式,就是以应川为t n b ,以计算机技术为基础,软硬件町裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用汁算机系统。嵌人式系统山嵌入式处理器,相关支撑硬件和软件组成。相关支撑硬件主要包括显示设备,存储没备和各利-接口等。软件是实现应用目标的关键。随着功能变得越来越复杂,操作系统也成为嵌八式系统中的一个基本部件”1 。经过多年发展,嵌入式操作系统已经产生r 几种主要类型:表l操作系统特点v x w o r k s支持p o s i x l 0 0 3 i b 实时扩展,a n s ic ( 浮点支持)和t c p i p 网络协议,具有一个高效内核。p s o s y s t e m完全可扩展的嵌入式实时操作系统,支持多种类型处理器,多种文件系统,目前销售额世界第二,在我国市场占有率最高,主要缺点在于其上下文切换时间长,实时性不强。q n xq n x 是唯一可以将实h jp o s i x 环境外加一个完全的窗口系统安装在l m 以下电子盘或者只读存储器上的操作系统,真正的微内核,具有完全可伸缩性,在符合p o s i x 之外,还为w i n 3 2 ,微软c i f s 阱议提供移植工具,高性能,健壮,可靠性好,可以实现到桌面的元缝连接。l y n x o s具有u n i x 兼容,复核p o s i x 标准,支持多进程和多线程等特性,是专为r 快速,确定响应的复杂的实于应用设计的操作系统,符合p o s i x l 0 0 3 1 的系统调用接口标准,同事实现p o s i x 的p o s i x l 0 0 3 i b 标准规定的实施扩展和1 0 0 3 1 从标准规定的线程扩展,l y n x o s 包括4 4 b s d 系统调用接口和库函数,能为任何一个u h l x 的平台q 应川抛供川。级水、卜上的兼容。w i n d o w s c e微软产- 嵌人仇不够实时,属于软;w i n d o w s 兼容,小内核,j 伸缩实时掳大部分嵌入式和非嵌人式应用的需求。从上表可以看出,各种嵌入式操作系统需要具备的一些基本特点就是体积小,具有微内核,符合p o s i x 标准,支持多种c p u ,支持网络环境,有较好的开发调试环境,有的其洧较好的实时性。但是需要知道,以二这些系统的共同问题就是价格特别昂贵,单客户价格就已经很高,更大系统收取的费用更高,一些系统版本升级也需要费用,这些都妨碍了技术的发展和应用的扩展。而l i n u x的免费特性与它们相比较就具有了突出的优势,获得了众多片j 户的青睐,在近几年得到了很大的发展。第三节选择所采用的嵌入式l i n u x 系统的依据和理由”“采用l i n u x ,首先是因为这是一个完全开放免费的软件,在很多方面功能强大,尤其是在网络方面很出色。l i n u x 具有很多非常有吸引力的特征:源码公开,免费使用,呵以大幅度降低产品成本;对硬件要求不高,对于多利,c p u 都有很好的支持,而且对于驱动程序的管理有独到之处;非常注重效率,速度快,多任务系统:稳定性高( 代码质量离,精简) ,有非常好的可移植性,支持多种硬件平台,支持很多其他操作系统平台下的文件系统;可以用内核配置程很小的系统( 整个系统能够建立在软盘上) ;内核健壮,精简,可裁剪,并且具备部分微内核机制和强大的网络功能,一定的实时性。内核各部分功能明确,可扩展性强,容易裁剪,在内核模块中,进程管理,内存管理和文件系统是三个最种壁r 嵌人式i m u x 系统自0 防火埔n 0l 键c f 。,实现綦本的子系统,用户程序”f 以直接通过系统渊川或f , - 函数库来访n l内核的资源。支持多种网络协议( 如t c p i p ,x 2 5 等等) ,b i n u x 天生就足个网络操作系统,几乎所有的踟议和网络接l j 都被定制在其中,这一点是别的嵌入式操作系统所不具备的。有多种免费的开发和测试工具,提供c ,c + + 。j a v a 以及其他很多的,l :发工具,这些工具- f f 以免费使j | j ,而且这螳工具在设汁的时候就考虑了支持各种不同的微处理器结构和凋试环境。拥有丰富的网络资源,通过i n t e r n e t 能够得到及h 于,有效雨】丰富的技术支持。l i n u x 开发者遍布全球,为完善它而工作,其技术文档非常丰富,大量的文档可以轻松的获得,这对于我们的l j 作非常有利,可以从很多地方得到资源。嵌入式l i n u x 存在的问题:嵌入式l i n u x 的发展叫问短暂,而且绝大多数,i :发商采用标准l i n u x 改进丽来,这样的模式下,存在着一些问题:1 开发者大多数是个体行为,使得开发的方法和过程不,“密,而且对于方法没有很好的提炼。2 对文件系统不断进行改进,但是没有从操作系统本身出发提出修改的依据和方法,不能给后续开发者提供便利。3 对于虚拟存储机制一般采用那个关闭交换区的办法,而没有考虑从内核中删除的方法,以便更好的满足实时性。4 实时性不强是l i n u x 用于实时环境时的主要问题,除r 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 爱好者的经验,开拓了思路,也节省了非常多的时问。4采j f 】桌面l i n u x 川于嵌入式h :境仃n :n 0 m 题:虽然l i n u x 在门j 于嵌入式环境力l f u 有着l 兰大的优势,但是将其直接用于嵌入式环境还是 i 行的。比如,嵌入式环境一般都没有硬盘,只有电子盘,嵌入式环境划于实时性要求比较高,渚如此类的的嵌入式系统特点使得普通桌i 酊l i n u x 直接i j 于嵌人式环境的确存在很多不足,具体表现如下:1 系统过于庞大。安装一个桌j 亘i 的b i n u x 操作系统至少电要数百兆空间,系统越向后发展,需要的空问就越大,在一般情况下,只有几兆大小的电子盘是无法装下的,这些郁需要采用必要的方法和技巧来解决。2 内核需要裁剪,嵌入式产品的可用资源比较少,不需要太多的考虑兼容性,所以桌面系统的内核丰f 别各利t 具体的嵌入式系统来说,就显得过大,要让它很好的适川于环境,就需要裁剪其内核到适用的大小。3 在实时领域内,l i n u x 实时性存在问题。l i n u x 是一个分时系统,虽然实现了软实时性,在很多的情况下还足无法满足实时需求。对于一些实时性要求强的环境冠然还需要改进。4 对于具体的应用还需要开发具体的应用程序和设备驱动程序,这些程序不具备通用性,需要专门开发。这些问题是将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 i i u x 。一个特定的l i n u x 可以是从一个只有内存管理、任务调度、定时器服务的精简的微内核系统,到能支持各种文件系统和多种网络服务的完整的服务器。种祭j i 挝八式l i n u x 系统的防火j 珊n 0 泄汁1 0 步;j 地最小的l i n u x 系统,包j i i :引导程序;最小化的l i n u x 内核,配置成仪仪支持内存、进程管理服务;i n i t 程序,作为初始用户进程。基本的h i n u x 系统:在最小l i n u x 系统的基础上,还需要加上:硬件设备驱动程序,包括c o n s o l e 等;一个或者几个应用程序,提供必要的应用效能,实现具体的应用目标。实用的l i n u x 系统:在前述基础上还要加i :根文件系统,网络能力,如t c p i p 协 义栈等。定制后嵌入式l i n u x 组成部分:桌面l i n u x 的嵌人式应用实际上是l i n u x 小型化的过程。一个桌面系统一般需要很大的磁盘空间来存储系统本身,数以百计的驱动程序和庞大的应用程序。这不可能安装在一个只有几m 空间的f l a s h 上,但是l i n u x 本身是一个非常灵活的系统,可以提供完成嵌入功能的基本内核和用户需要的界面。通常来说,一个经过小型化的嵌入式l i n u x 只要具备一些基本的组成部分就可以用于一般的嵌入式环境了:适当的引导工具,比如在普通的p c 机上,用l i l o 或者g r u b引导装载系统;精简的l i n u x 微内核,只留下包括内存管理,进程管理,以及事务处理和一定需要的一些功能部分。初始化进程,与系统的硬件环境相关,c p u ,体系结构等等不同,初始化进程就不同。这三项是最基本的部分,但是只有这三项,并不能做什莫事情,6筇章崩入式系绒构建它只是操f :系统的搪本桐架,j i 能代表操作系统n 已能够运行m l 二。如果要使系统能够有) j ,必须添加以下部分:设备驱动程序。没有驱动程序的系统儿乎不存在,有的设备j :有爿i 同的硬件模块,这就可能需要加载多个驱动程序。驱动程j 一旦加载,就会运行在l i n u x 内核中。应用程序。这些程序用来完成系统特定应用领域的功能,满足不同用户的特殊需求。一般来说,还需要文件系统,通常放在f l a s h 一 | ,文件系统可以完全自主开发,也叮以采用现有的e x t 2 或者m s - - d o s 等。对于一个可以通过网络连接的系统而言,有时还需要加入t c p i p 的网络堆栈。如果将系统用在特定的工业网络或者交换机,则需要增加相关的协 义支持嗣5 分。第四节构建微系统实现过程:实现一个我们所需要的微系统,首先要从系统引导开始人手,进行分析和研究。1 启动过程系统加电启动后,基本启动过程如下:b i o s 斗o d e r l 掣e r n e l s b i n i n it所有的p c 机在加电之后,b i o s 会寻找到启动盘第一个扇区,并将其复制到r a m 巾来执行它,对于两利t 不同的启动方式”“,这个扇区通常含有两种不同的代码:a 引导程序( 比如l i l o 或g r u b 等) 的代码,引导程序会帮助定位内核的位置;b 内核的代码,这通常是从软盘启动时使用的引导的方式。对于前者,通常需要内核支持i n i t r d 。如果是后者,使用的b o o tl o a d e r 就是a r c h i 3 8 6 b o o t b o o t s e c t s 。当内核被编译的时候,这段执行代码就被链接到内核i m a g e 的最开始的地方。这样只要把内核复制到起始位置为第一个扇区的软盘上就能得到可自启动一一种基1 _ _ 嵌入j i n u x 系统n 0 防火埔n 0 没i 5o 宴现的软盘。内核会初始化没备驱动i 乖【l i j 鄢的数妣结构,之后它会寻找一个特定的 l 核参数r o o t :u 参数”,来获得根文件系统的位置。内核必须知道去那里寻找这个根文什系统,否则它将停机。1 1 1c 在使用软盘启动或有意使用r a m d i s k 的时候,内核可以把一个压缩的文件系统释放到r a m 中,称之为r a m d i s k ,这是一个内存区域,但内核会把它当作磁盘一样使用。系统内核会在儿个地方奄找i n jt9 1 二7 1 二始执行第一个发现的i n i t ,由i n i t 来执行e t c i n i t t a b ,在执行了一系列相应操作以后,接着运行r c s y s i n i t ,i n i t 执行所有默认运行级别脚本下面的脚本程序( 默认的运行级别1 1 1 e t c j n i t t a b 控制) ,最后i n i t 执行r c 1 0 c a l 。由于在系统制作过程。i j 需要不断的涧试,l 司时,还需要在各个不同硬件平台上使用,为了便于操控,实验过程巾选用了g r u b 作为引导程序,其方便和灵活带来了很大便利。g r u b 足继l i l o 之后的一种系统引导程序,其全称是g r a n du n i f i e db o o t l o a d e r 。g r u b不但可以通过配置文件进行引导,还可以在选择引导前动态改变引导参数,动态加载各种设备。例如,在l i n u x f 编译了一个新的核心,但不能确定它能不能工作,就可以在引导时动态改变g r u b 的参数,此时即使g r u b 菜单配置不正确,f 吼仍可以引导系统。g r u b 的命令行有非常强大的功能,而且支持如b a s h 一样的历史功能,可以用上下键来寻找以前的命令。当系统完全确定后,可以舍弃这种引导方式,采用l i n u x 直接引导,可以节省1 0 0 k 左右的空间。下面是举一个g r u b 文件的示例,来说明g r u b 的参数含义。# g r u b c o n fa 内核参数r o o t :”参数nt i t l ex ) ( x # 标题r o o t ( h d x ,x ) # 这m 指安装g n 】 ) 的分k e r n e l ( h d x ,0 ) b z i m a g er o o t 一”参数u 如d e v h d a l # 义件系统的根。i n i t r d ( h d x ,0 ) x x g z# 文件系统的初始化磁盘镜像,在此我们也可以不指定文件系统压缩镜像,系统将商接到r o o t 指定的根上去初始化。i ) ,内核首先判断是否有i n i t r d g z ,如果有,则在解压后捧载到r a m d i s k 中,接下来判断是否有l i n u x r c ,有则执行之。接着检测到r o o t 参数为d e v h d a l ,与已挂载的根d e v r a m o ( 既r a m d i s k )不一致。因此内核将挂载d e v h d a l ,将其转变为系统的根。紧接奄找s b i n i n i t 有则执行之,无则报错k e r n e lp a n i c 。i i ) 当r o o t = d e v r a m o 时,当内核判断到当前要和r o o t 参数指定根相同,所以不再执行挂载动作,e 【接向下进行s b i n i n i tb 内核参数i n i t :”参数“# 指定内核启动到最后所执行的 l u 始化程序。对于以下情况k e r n e l ( h d x ,0 ) b z i m a g er o o t = d e v h d a lr wi n i t = b i n s hi n i t r d ( h d x ,0 ) x x g z在系统启动后就直接进入s h ,这样就可以卣接在s h 下对系统进行修改,修复密码等。需要注意的是,磁盘参数也要随着硬盘和分区的不同而改变,如从第二个硬盘的第一个分区引导则用h d b l ,最后敲人b o o t 就可以启动系统了。在不能确定命令或者命令的参数时,都可以按“t a b ”获得相关的帮助;用上下键可以获得命令的历史记录,这些就像在l i n u x 中使用b a s h 一样简单。也可以键入启动命令,然后b o o t 就可以引导系统了。如果是在l i n u x 系统下用g r u b 生成引导软盘,需要先在软盘上有s t a g e l ,s t a g e 2 ,g r u b c o n f 文件,然后采取如下操作:9种蛙1 : | _ j :入,i i f l ) x 系统州协火墙的没汁i 寅盹g r u b r o o t ( f d o )g r u b s e t u p f d 0 )g r u b q u i t如果要把g r u b 装到硬盘上,电干l - i f 豇$ t 似。如果安装到m b r 则可以指定整个磁般而不必指定分区,如f ( 剥于h d a ) :g r u b s e t u pl h d o )如果要将g r u b 安装至1 d e v h d a 7 的引导记录中,则应输入:g r u b s e t u p ( h d o ,6 )2 内核l i n u x 开放源码,能够根据应用系统需要对l i n u x 内核源代码进行适当的修改,裁剪,以及编译。l i n u x 标准内核是一个整体式结构,由内存管理,文件系统,进程通信,进程凋度,网络胁议等组成,其巾进程调度部分是核心。图l当前很多嵌入式都采用微内核与可配置的功能模块栩结合的体0系结构。在这些系统- hje 内核只保蹦j 必须的j i i ;水功能。很多服务从内核转移到了进程层次。这种结构任t 定程度上增加了运行j 1 :销,降低了效率。普通版本l i n u x 的内核为r 取得刈硬件平台的广泛支持,往往包括了很多繁杂的模块,这些不必要的模块,不仅占用系统的存储资源,而且会影像系统性能,降低系统对于事件的u 向应速度和处理速度,因此有必要对原有系统进行压缩,删除不必要的模块。嵌入式系统是针对具体应用的专用系统,在设计时,其硬件平台和软件设计的目标已经t l ;, g 明确,而且不会轻易变动,所以可以很好的根据软硬件的实际情况对内核进行定制。要想得到一个小的l i n u x 内核,可以通过选用专门的针对嵌人式应用的内核来实现。裁剪内核主要通过两个途径:1 ) 在获取内核源代码后,在源代码目录下执行m a k em e n u c o n f i g ( 或者xw i n d o w s 下执行m a k ex c o n f i g ) ,根据你的实际情况选择系统所需要的功能,去掉不必要的模块”。l i n u x 内核编译的m a k e f i l e 中定义了内核映象的编译命令,其内核映像v m l i n u x 由m a i n o ,v e r s i o n o ,文件系统模块,网络支撑模块,设备驱动模块,以及一些库函数链接而成。这些模块所包含的具体内容由k e r n e l c o n f i g 中定义的一些宏来决定。通过m a k em e n u c o n f i g 来配置内核时,l i n u x 内核中可供选择的选项主要如下:内核特性,比如是否支持以模块力式装载驱动程序;对具体设备支持,如对p c i 没备,各种硬盘,光驱等等;对网络支持,包括各种特殊的网络没备和通讯协议,以及过滤支持;对各种文件系统的支持,如j f f s ,m i n i x ,e x t 2 ,e x t 3 等;在我们选择过程中,被选中选项在k e r n e l c o n f i g 中被标记为y e s ,然后在编译内核的时候,这些选项设编译成o 目标文件链接到内核中。在对内核中各个选项进行驭舍时,应该充分考虑到所构建的系统的软硬件环境。比如嵌入式系统巾一般没有光驱,软驱,种照j f 置八,l i l u x 系统的断火j 尚n 0 世川。,史则多余的硬舷等没衙那未眦嚣内核时j , j 以将艾持这螳波衙的选项虫掉。2 ) 修改内核源代码。这种力。式适合需要划内核进行深度裁剪的情况。比如通过m a k e m e n u c o n f i g 配置内核 j 寸,对于进程间通讯( i p c )这一功能,只有一个选项,但是在实际的内核源代码中,它有三种实现i p c 的途径:共享内存、信号景、消息队列。此可以在修改源代码的时候,只保留系统需要的机制,从i n i 更加明显得缩小系统内核。在改动内核的源代码时,必须注意各个子系统之间的协凋。比如要修改l i n u x 的文件系统的代码的时候,至少要考虑到每个进程都可能要打开文件列表进程创建,运行和结束这一系列过程都矛文件系统相关联,凶此相应的代码都要修改。另外内存管理和交换文件有关,执行交换功能的内存子系统函数出需要改动。对l i n u x 内核源代码的分析可以从两利t 途径人手:从系统的引导和初始化,即从机器加点到系统核心的运行:从系统调用人手,系统调用是用户程序和操作调用核心所提供功能的接口。一般来说,对于硬件熟悉的可以从系统引导人手进行分析,而对操作系统理论和c 语言熟悉的可以从系统调用入手。根据程序流程为线索,需要理解程序的执行流程,把程序执行过程中所涉及的代码分析清楚,如应用程序执行过程中的程序装载、运行、调用、退出。严格来说,l i n u x 就是以内核为主,同编译器、编辑器、图形化界面等组合在一起形成的操作系统。由于这些附加软件的不同,使碍多种发行版本的各具特色,使用户有了非常多的选择。但是所有发行版的内核是相同的,都是针对适合大部分计+ 算机系统而设汁的,由于硬件的多样性导致系统支持各种常见设备,符合用户的特定灵活偏好。这样的结果是大大增加了内核规模并降低了执行效率。针对我们的需要,重新配置和编译l i n u xk e r n e l ,把内核配铘- 章嵌人- 乐缆缃让髓成一个最,j 、系统,只保翩必要没衙的驱动,去掉多余的内核模块和组件,睹如p c m c i a 之类的模块以及彳:川的二进制执行格式埘ia o u t 等。对于一个特定的l i n u x 嵌入系统来蜕硬什往往固定,f 且山于嵌入式系统的特定性对于系统的大小要求严格,所以需要对l i n u x内核进行裁剪,去掉其中不需要的内核模块。对内核修改后要重新编译才可生效,下面介绍内核编译过程中需要用到的命令和其作1 i i :各个版本的编译命令有一砦差别,常1 l _ j 命令如下”5 :m a k ec o n f i g核心配置,调川s c r i p t s c 。n f i g u r e按照a r c h i 3 8 6 c o n f i g i n 进行配置。命令执行完毕后将产生c o n f i g 文件,其中保存着配置信息。下一次在执行m a k ec o n f i g 将产生新的c o n f i g 文件。原c o n f i g 被改名为c o n f i g o l d 。也1 叮以使用m a k em e n u c o n f i g 和m a k ex c o n f i g ,后两者主要足针刘i 刘形界面的。m a k ed e p寻找依存关系。产生两个文件:d e p e n d 和h d e p e n d 。其中后者者表示每个h 文件都包含其它那些嵌入文件。而日口者有多个,在每个会产生目标文件( o ) 文件的目录下均有,它表示每个目标文件都依赖哪些文件( h ) 。m a k ec l e a n清除以前编 犟内核时产生的所确目标文件、模块文件以及一些临时文件,以免后面的工作受到以前配置的二i :扰;m a k er m p o r p e r删除以前所有因为编译内核过程中产生的文件,即除了m a k ec l e a n 外,还要删除c o n f i ,d e p e n d 等文件,把核心源码恢复到最初始的状态。m a k e ,m a k ez i m a g e 或者m a k eb z l m a g em a k e 编泽生成内核。通过各个目录下的m a k e f i l e 文件进行。种蚺j 嵌人式 i i l u x 系统的胁火埔的l 鼍j i j 实现会在各个 = = i 录下产生很多f i = i 标文什。虮粜核心代码没有错淡,将产生v m l i n u x ,这就足所生成的内核。映射文件s y s t e m m a p 通过各i j录的m a k e f i l e 文件产生。v e r s i o n 文件l | j 的数加1 表示版本号,即已经对内核进行多少次改动了”。m a k ez l m a g e 足在m a k e 的基础上产生较小的经过压缩的核心映像文件a r c h $ ( a r c h ) b o o t z l r r a g e ,并且会同时在a r c h $ ( a r c h ) b o o t c c r c o r e s e d 日录1 孓叫 些脚d 文f ,士om a k eb z i m a g e :在m a k e 的基础j :产生压缩比例更大的核心映像文件a r c h $ ( a r c h ) b o o t b z i m a g e,同时会在a r e h $ ( a r c h ) b o o t c o m p r e s e d 目录下产生一些临时文件,在核心太大时候使用这种方法。m a k em o d u l e s编译模块文件。在m a k ec o n f i g 时所配置的所有模块将在这叫编译,形成模块目标文件,并且把这些文件放在m o d u l e s 目录中。m a k em o d u l e s i n s t a l l把上面编译好的模块目标文件存放到i i b m o d u l e s $ k e r n e lv e r s i o n 中。这样一个根据特定需要定制的内核就已经完成。这期间如果发生错误,基本上都是内核选项有了错误,需要重新选择。在配置内核过程中,尤其要注意与网络有关的选项,因为这个内核是要服务于后面的防火墙系统的,所以在对各种网络协议的支持上要针对实际需要有所取舍,同u 寸需要包括n e t f i l t e r 等相关选项。由于系统的硬件平台也已经确定,所以只需要一些特定的设备的驱动程序,对于其他的驱动都要舍弃掉,以缩小内核体积。最后获得的内核2 4 版本的一般在7 0 0 k 上下,会由于具体配置和所选用针对平台的驱动不同而有一些差别。2 6 版本内核体积会稍微大一些,接近l m ,但是新的内核驱动更加丰富,对嵌入式系统也有更强的支持。43 文件系统在现代汁算机系统中,程序和数据都需要比较大的容量。 “于硬件的限制,这些内容不可能全部放在内仔当中,同时存放在内存当中的数据存在掉电丢失的问题,所以总是把这些程序和数据以文件的形式存放在外存当中,在需要的时候将其调入i 存使用。如果用户要直接对外存啪q 文件进行管理,则需要j = h 户熟悉外存特性,了解各种文件的结构,知道他们在外存当中的位置。此外,在多用户的环境下,还必须能够保证数据的安全性和一致性,这不是普通用户所能够做好的事情,于足文件系统便应运而生了。文件系统负责在外存上管理文件,并把文件的存墩、共享和保护等手段提供给操作系统和用户。它不仅方便。f j d o 使i j ,保证r 文件的安全性,还可以大大提高系统资源的利用率。文件是数据的一种组织形式,j f i f j 文件系统则是文件和对文件进行操作管理的团建集合。根据文件系统的概念,可以把数据区分为数据项、记录和文件三个级别。数据项是描述对象的某种属性的字符集以及由这些字符集组成的集合,表征一个实体在数据项上的数据称为值。记录是一组相关数据项的集合,而文件是具有文件名的一组相关信息的集合。文件在文件系统巾是一个高级的数据单位,它描述一个对象集。下面的图表示了文件、记录以及数据项的关系:图2l i n u x 使用一种称为虚拟文件系统( v f sv i r t u a lf i l e s y s t e m种雄j 嵌人j l = l i u x 系统的防火埔的l 芷i | 1 j 实现s w i t c h ) 的技术,v ls 足一种外放的接机制,川以支持多达儿j利i 的不同的文纠:系统,如e x r 2 ,m s d o s ,v a l ,n r f s 等等,并允许这些文件系统之问相互访问。e x7 1 2 足l i n u xj 的( 专川) 标准文件系统,通常作为根文件系统。它自儿个重要的数据结构,一个是超级块,用来描述目录和文什在磁盘i t 的物理位嚣、文件大小和结构等信息。i n o d e 也足一个重要的数据结构,文件系统中的每个目录和文件均由一个i n o d e 描述。它包含文件模式( 类型和存取权限) 、数据块位置等信息。l i n u x 内核代码鼬qn c u d e i n u x e x t 2 一f s h 、i n c l u d e i i n u x e x t 2 一f s s b h 等文件详细描述了e x t 2 文件系统”。图3文件系统可以建立在传统的磁盘上,也可以建立在f l a s hm e m o r y 中。在l i n u x 当中,普通文件和目录文件保存在被称为“块物理设备”的磁盘或者其他物理介质上。一套l i n u x 系统支持若干个物理盘,每个物理盘可以定义一个或者多个文件系统。每个文件系统均由逻辑块的序列组成,一般来说,一个逻辑盘可以划分为儿6个用途各不棚同的部分:t j l 导块、超级块、j n o d ej k 以及数据区。引导块位于文件系统,f :头,通常为第一个扇区,其小存放引导程序,用于读人,f 启动操作系统。超级块用于记录文件系统的管删信息。特定的文件系统定义了特定的超级块。”i n o d e 区:一个文件( 或h 泶) f 峙据一个索引节点。第一个索引节点是该文件系统的根结点。文件目录通常存放在磁盘上,而且要占用大量的盘块。在检索目录文件的过程t | ,只用到了文件名。只有在找到的文件名与指定文件名相匹配的目录项时,才需要从f j录项当中读出该文件的物理地址;i f i i 在检索目录的时候,一般用不着该文件的描述信息。针对这种情况,不少成功的操作系统采用将文件描述信息单独存放形成一个称为索引节点的数据结构,既i 节点;而在文件目录巾的每个口录项,则仅山文件名以及指向该文什所对应i 节点的指针共同构成。数据区用于存放文件数据或者管理数据。前面讲述了文件系统基本概念,实际上l i n u x 文件系统包含了l i n u x 系统运行所必须的目录和没备文件、应用软件的集合。普通l i n u x 的文件系统十分庞大,多达数百兆,包含了丰富的应用软件,说明文档,帮助信息,示例文件等等。嵌入式系统中的存储空间有限,往往只有儿兆左右,其根文件系统通常是利用l i n u x 的r a n d i s k技术在内存中模拟出来的。因此有必要钳对具体应用,通过裁减来构建一个紧凑的文件系统,获得所需要的功能的最小合集:嵌入式系统巾不需要保留文档文件,示例文件,帮助说明文档等,可以在系统中去掉这些部分;1将根文件系统尽可能精简。在l i n u x 根文件系统中必须保留的目录是b i n ,s h i n ,d e v ,e t c ,p r o v ,1 i b ,其功能如下:b i n 目录下面放置了系统最基本的应用程序,主要有c h m o d ,d a t e ,l o g i n ,m o u n t ,u m o u n t ,c p ,i s 等;种基下嵌人一 i n u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年拘留所安全管理工作计划
- 2026年数学学科教研活动计划
- 2026年小学生扎染活动方案设计
- 2026年口语教学常用教学方法
- 2025年省级行业企业职业技能竞赛(加油站操作工)仿真试题及答案
- 2025年监理工程师案例分析交通运输工程真题卷及答案
- 2025年福建莆田一级建造师考试(公共课程)题库含答案
- 百龙创园投资价值分析报告:高成长的功能性食品配料龙头
- DB32/T53822026国有企业干部教育培训服务规范
- 2026年秋季统编版初中语文一升二分班摸底考试模拟试卷附参考答案
- 数字人民币培训课件
- 2024北京重点校七年级(下)期末生物汇编:人体内废物的排出章节综合
- 武汉市2024-2025学年七年级下学期期末考试数学试卷及答案
- 样板示范工程管理制度
- 家电卖场卫生管理制度
- 施工项目机械租赁服务方案
- 海外出国劳务合同8篇
- 大数据与人工智能营销(南昌大学)知到智慧树章节答案
- 大话机器人智慧树知到期末考试答案章节答案2024年青海大学
- 食品保藏探秘智慧树知到期末考试答案章节答案2024年中国海洋大学
- 商务英语专业四级
评论
0/150
提交评论