(模式识别与智能系统专业论文)嵌入式web服务器及设备驱动的研究.pdf_第1页
(模式识别与智能系统专业论文)嵌入式web服务器及设备驱动的研究.pdf_第2页
(模式识别与智能系统专业论文)嵌入式web服务器及设备驱动的研究.pdf_第3页
(模式识别与智能系统专业论文)嵌入式web服务器及设备驱动的研究.pdf_第4页
(模式识别与智能系统专业论文)嵌入式web服务器及设备驱动的研究.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(模式识别与智能系统专业论文)嵌入式web服务器及设备驱动的研究.pdf.pdf 免费下载

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

文档简介

硕士论文嵌入式w e b 服务器及设备驱动的研究 摘要 随着嵌入式系统的发展和i n t e r n e t 的酱及,越来越多的嵌入式系统将w e b 服务器引入其中。通过对l i n u x 内核的相关技术分析和动态链接的具体实现以及 设备驱动程序的研究,本文对将l i n u x 应用于嵌入式系统的若干问题提出了建 议,描述了定制嵌入式w e b 服务器及其设备驱动的基本流程。本文实现了支持基 本w e b 功能和动态解析的嵌入式w e b 服务器,主要由负责h t t p 协议的请求处理 模块和支持嵌入式标记的动态解析模块以及负责设备驱动的应用程序接口模块 组成。同时本文给出了嵌入式设备驱动程序设计的基本模型及其简单实现。 关键词:嵌入式w e b 服务器、动态解析、嵌入式设备驱动 硕上论文 嵌入式w e b 服务器及设备驱动的研究 a b s t r a c t w i t ht h ee v o l u t i o no fe m b e d d e d s y s t e ma n d t h ep o p u l a r i z a t i o no f i n t e r n e t ,m o r e a n dm o r ee m b e d d e ds y s t e mw i l li n c l u d et h ew e bs e r v e r i nt h i sp a p e r , w eh a v em a d e a l l a n a l y s i so f l i n u xk e r n e lt e c h n o l o g ya n dt h ei m p l e m e n t a t i o no fd y n a m i cl i n k i n g a n dt h er e s e a r c ho fe m b e d d e dd e v i c ed r i v e r , a n dw e p r o v i d es o m es u g g e s t i o n so n t h e c u s t o m i z i n go fu s i n gl i n u xi ne m b e d d e ds y s t e m ,a n dd e s c r i b et h ec u s t o m i z a t i o no f e m b e d d e dw e bs e r v e ra n di t sb a s i cf l o wo fd e v i c ed r i v e r t h e nw ei m p l e m e n tt h e e m b e d d e dw e bs e r v e r ,w h i c hi sc o m p o s e do fr e q u e s td i s p o s a lm o d u l ea n dd y n a m i c r e s o l v em o d u l ea n da p p l i c a t i o ni n t e r f a c em o d u l e ,r e q u e s td i s p o s a lm o d u l ei st od e a l w i t ht h eh t t p r e q u e s tf r o mc l i e n t ;d y n a m i cr e s o l v em o d u l ei s t or e s o l v ee m b e d d e d s i g na n da p p l i c a t i o n i n t e r f a c em o d u l eo f f e ra ni n t e r f a c ei ne m b e d d e dw e bs e r v e ra n d t h ed e v i c ed r i v e rp r o g r a m t h i sp a p e rp r o v i d e sab a s i cm o d e lo fe m b e d d e dd e v i c e d r i v e ra n da w a y t oi m p l e m e n ti t k e y w o r d s :e m b e d d e dw e bs e r v e r 、d y n a m i cr e s o l v i n g 、e m b e d d e d d e v i c ed r i v e r 2 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 已在论文中作了明确的说明。 研究生签名:猫矗蕉砌够年莎月c 7 日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅 或上网公布本学位论文的全部或部分内容,可以向有关部门或机构送 交并授权其保存、借阅或上网公布本学位论文的全部或部分内容。对 于保密论文,按保密的有关规定和程序处理。 研究生签名: j 侔石月9 日 ! 生丝苎 堂垒壅坠! ! ! 笠堡墨堡墨翌垫塑塑塞 1 。1 背景介绍 第一章绪论 后p c 时代的到来,使得人们开始越来越多地接触到一个新的概念嵌入 式产品。像手机、p d a ( 如商务通等) 均属于手持的嵌入式产品,v c d 机、机项 盒等也属于嵌入式产品,而像车载g p s 系统、数控机床、网络冰箱等同样都采用 嵌入式系统。形式多样的数字化设备正努力把i n t e r n e t 连接到人们生活各个角 落,也就是说中国数字化设备的潜在消费者数量将以亿为单位。嵌入式软件是数 字化产品的核心。如果说p c 机的发展带动了整个桌面软件的发展,那么数字化 产品的广泛普及必将为嵌入式软件产业的蓬勃发展提供无穷的推动力。 嵌入式系统e m b e d d e ds y s t e m s ) 被定义为:以应用为中心、以计算机技术为 基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格 要求的专用计算机系统。 嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的 外部设备中就包含了5 - i 0 个嵌入式微处理器,键盘、鼠标、软驱、硬盘、显示 卡、显示器、网卡、m o d e m 、声卡、打印机、扫描仪、数字相机、u s b 集线器等 均是由嵌入式处理器控制的。此外在制造工业、过程控制、通讯、仪器、仪表、 汽车、船舶、航空、航天、军事装备、消费类产品等方面均是嵌入式计算机的应 用领域“”。 嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具 体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高 度分散、不断创新的知识集成系统。 随着i n t e r n e t 的迅猛发展,传统的c 1 l e n t s e r v e r 体系结构( 客户机月务 器) ,渐渐的在某些方面显示出它的局限性,b r o w s e r s e r v e r 结构( 浏览器服 务器) 的出现恰恰弥补了这种缺陷,这就为嵌入式系统联入i n t e r n e t ,实现远 程控制、远程监控提供了条件,嵌入式w e b 服务器及设备驱动的研究就成为一个 很重要的课题。 1 2 研究范围 随着微处理器的产生,价格低廉、结构小巧的c p u 和外设连接提供了稳定可 靠的硬件架构,那么限制嵌入式系统发展的瓶颈就突出表现在了软件方面。尽管 从八十年代末开始,陆续出现了一些嵌入式操作系统,比较著名的有v x w o r k 、 硕士论文 嵌入式w e b 服务器及设备驱动的研究 p s o s 、n e c u l e u s 和w i n d o w sc e 。但这些专用操作系统都是商业化产品,其高昂 的价格使许多低端产品的小公司望而却步;而且,源代码封闭性也大大限制了开 发者的积极性。另外,结合国内实情,当前国家对自主操作系统的大力支持,也 为源码开放的l i n u x 的推广提供的广阔的发展前景。还有,对上层应用开发者而 言,嵌入式系统需要的是套高度简练、界面友善、质量可靠、应用广泛、易开 发、多任务,并且价格低廉的操作系统。在不久的将来,从冰箱到收音机都会内 置处理器。因为l i n u x 的开放性,许多人认为l i n u x 非常适合多数i n t e r n e t 设 备。他们认为l i n u x 可以支持不同的设备,支持不同的配置。l i n u x 对厂商不偏 不倚而且成本极低,能够很快成为用于各种设备的操作系统。如今,业界已经达 成共识:即嵌入式l i n u x 是大势所趋,其巨大的市场潜力与酝酿的无限商机必然 会吸引众多的厂商进入这领域“。 本课题正是在嵌入式l i n u x 的基础进行嵌入式w e b 服务器及设备驱动的研 究与开发,嵌入式w e b 服务器( e m b e d d e dw e bs e r v e r ,e w s ) 是指把w e b 服务器 引入到控制设备中,它以t c p i p 协议栈为基础构建,需要实现h t t p 、t c p 和u d p 等协议。它具有i p 地址,通过网络就可以将信息家电等设备接入i n t e r n e t 。任 何个客户机,都可以通过h t t p 协议与嵌入式w e b 服务器建立连接。嵌入式w e b 服务器在w e b 浏览器和各种设备之间提供了统一的g u i 接口,并且和所有的w e b 浏览器兼容,使得客户端可以象在本地一样透明地查询,控制各种信息家电。 1 3 论文内容及结构 1 3 1 论文内容 本文首先分析了嵌入式系统的应用前景以及各种实现方式,通过对l i n u x 内核与现有w e b 服务器的分析研究,设计了基于l i n u x 的嵌入式w e b 服务器及设 备驱动程序的模型,通过对其可行性进行分析,作者完成了简单的w e b 服务器的 实现及设备驱动程序接口的开发工作。在此基础上,只需对现有的家庭设备或其 它需要进行远程控制的设备进行适当的改动,就可以实现远程监控。 1 3 2 论文结构 本论文共分五章 第一章;绪论。简要阐述了课题的研究背景及内容,绘出了论文的结构。 2 硕士论文 嵌入式w e b 服务器及设备驱动的研究 第二二章:嵌入式系统和嵌入式l i n u x 以及嵌入式i n t e r n e t 技术。首先介绍 了嵌入式系统发展的历史、现状和趋势,给出了嵌入式产品软硬件的特征;分析 l i n u x 操作系统本身的特点及嵌入式系统发展的需要,引入嵌入式l i n u x 及嵌入 式w e b 服务器的概念,说明实现嵌入式w e b 服务器及设备驱动的可能性。 第三章:l i n u x 内核分析及剪裁。详细分析基于l i n u x 的嵌入式i n t e r n e t 服务系统研究,主要阐述了内存管理、进程调度、系统调用、中断处理等,然后 根据嵌入式系统的要求对内核进行了相应的精简。 第四章:嵌入式w e b 服务器的开发与实现。讨论嵌入式w e b 服务器的功能及 原理,在x 8 6 平台下模拟嵌入式l i n u x 环境实现一个具有基本功能的w e b 服务器。 第五章:基于嵌入式w e b 服务器下驱动程序的研究及实现。 结束语:总结全文,给出作者的心得体会及论文需要进一步研究的方向。 里生塑壁l 一 堂塞竺竺壁堑墅墨墨鱼墅垫塑竺窒 第二章嵌入式系统及嵌入式技术 2 1 嵌入式系统 有人将嵌入式系统定义为:以应用为中心、以计算机技术为基础、软件硬 件可裁剪、适应具体应用、对功能、可靠性、成本、体积、功耗等严格要求的专 用计算机系统。一般嵌入式系统和具体应用是有机地结合在一起的,以前他们的 升级换代也是和具体产品同步进行,嵌入式系统产品旦进入市场,具有较长的 生命周期。嵌入式系统中的软件,一般都固化在只读存储器中,而不是以磁盘为 载体,可以随意更换,所以嵌入式系统的应用软件生命周期也和嵌入式产品一样 长。但是随着科技的发展和社会需求的变化,人们越来越要求,在部署应用后, 可以通过更换某些模块和更新软件来升级整个应用系统。在应用刚开通时,难免 有些问题,所以有升级的需求,而随着时间的流逝,原先的需求可能已经发生了 很大的变化,所以要通过更新软件等措施来更好地满足客户的需求【3 1 。 为了便于系统的升级和维护,需要建立一个嵌入式平台( 包括硬件和软件部 分) ,努力开发系列化的嵌入式产品。我们主要关注嵌入式软件平台。自然我们 想到了嵌入式操作系统。嵌入式操作系统( e m b e d e do p e r a t i n gs y s t e m ,e o s ) , 是指应用于嵌入式环境( 如智能化设备等) 的操作系统。她能对各任务和资源进 行合理调度;可以提供标准的应用程序开发接口( a p i ) 。 2 1 1 嵌入式应用的体系结构 一般中高端嵌入式应用系统的体系结构如图2 1 。 嵌入式应用软件 嵌入式操作系统 嵌入式硬件平台 ( 嵌入式处理器、外围设备) 图2 1 1 1 嵌入式应用体系结构 a 嵌入式处理器: 嵌入式系统的核心是各种类型的嵌入式处理器,嵌入式处理器与通用处理器 最大的不同点在于,嵌入式c p u 大多工作在为特定应用所专门设计的系统中, 它将通用c p u 中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式 系统在设计时趋于小型化,同时还具有很高的效率和可靠性。目前常用的嵌 硕士论文嵌入式w e b 服务器及设备驱动的研究 入式处理器可分为嵌入式微控制器( m i c r oc o n t r o l l e ru n i t ,m c u ) 、嵌入 式微处理器( e m b e d d e dm i c r op r o c e s s o ru n i t ,e m p u ) 、用于通信领域的嵌 入式d s p 处理器( e m b e d d e dd i g i t a ls i g n a lp r o c e s s o r ,e d s p ) 和高度集成 的嵌入式片上系统( s y s t e mo nc h i p ,s o c ) 。 b 嵌入式外围设备 在嵌入系统硬件中,除了处理器以外,用于完成存储、通信、调试、显示等 辅助功能的其他部件,事实上都可以算作嵌入式外围设备。目前常用的嵌入 式外围设备按功能可以分为存储设备、通信设备和显示设备三类。存储设备 主要用于各类数据的存储,常用的有静态易失型存储器( r a m 、s r a m ) 、动态 存储器( d r a m ) 和非易失型存储器( r o m 、e p r o m 、e e p r o m 、f l a s h ) 三种,其 中f l a s h 凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点, 在嵌入式领域内得到了广泛应用。i f l 前存在的绝大多数通信设备都可以直接 在嵌入式系统中应用,包括r s 一2 3 2 接口( 串行通信接口) 、s p i ( 串行外围 设备接口) 、i r d a ( 红外线接口) 、1 2 c ( 现场总线) 、u s 8 ( 通用串行总线 接口) 、e t h e r n e t ( 以太网接口) 等。由于嵌入式应用场合的特殊性,通常 使用的是液晶显示器( l c d ) 和触摸板( t o u c hp a n e l ) 等外围显示设备。 c 嵌入式操作系统: 根据应用场合可以分为两大类:一类是面向消费电子产品的非实时系统,这 类设备包括个人数字助理( p d a ) 、移动电话、机顶盒( s t b ) 等;另一类则 是面向控制、通信、医疗等领域的实时操作系统,如w i n d r i v e r 公司的 v x w o r k s 、q n x 系统软件公司的q n x 等。本课题在嵌入式l i n u x 的基础上进行 研究开发。 d 嵌入式应用软件 嵌入式应用软件是针对特定应用领域的应用软件,由于用户任务可能有时i 司 和精度上的要求,因此有些嵌入式应用软件需要特定嵌入式操作系统的支持a 嵌入式应用软件和普通应用软件有一定的区别,它不仅要求其准确性、安全 性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化, 以减少对系统资源的消耗,降低硬件成本和提高性能。 2 i 2 嵌入式系统的特点 ( 1 ) 嵌入式系统通常是面向特定应用的嵌入式c p u ,与通用型的最大不同就是 嵌入式c p u 大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积 ! 燮墨 堂垒壅兰壁墅墨堡墨堡鱼翌垫塑型塞 小、集成度高等特点,能够把通用c p u 中许多由板卡完成的任务集成在芯片内部, 从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越 来越紧密。 ( 2 ) 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业 的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、 高度分散、不断创新的知识集成系统。 ( 3 ) 嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余, 力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选 择更具有竞争力。 ( 4 ) 嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产 品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 ( 5 ) 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存 储器芯片或单片机本身中,而不是存贮于磁盘等载体中。 ( 6 ) 嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是 不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。 2 1 3 嵌入式系统具有的产品特征 嵌入式系统是面向用户、面向产品、面向应用的,如果独立于应用自行发展, 则会失去市场。嵌入式处理器的功耗、体积、成本、可靠性、速度、处理能力、 电磁兼容性等方面均受到应用要求的制约,这些也是各个半导体厂商之间竞争的 热点“”。 和通用计算机不同,嵌入式系统的硬件和软件都必须高效率地设计,量体裁 衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样刁能在具体应用 对处理器的选择面前更具有竞争力。嵌入式处理器要针对用户的具体需求,对芯 片配置进行裁剪和添加才能达到理想的性能;但同时还受用户订货量的制约。因 此不同的处理器面向的用户是不一样的,可能是一般用户,行业用户或单一用户。 嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同 步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。嵌入式系统 中的软件,一般都固化在只读存储器中,而不是以磁盘为载体,可以随意更换, 所以嵌入式系统的应用软件生命周期也和嵌入式产品一样长。另外,各个行业的 应用系统和产品,和通用计算机软件不同,很少发生突然性的跳跃,嵌入式系统 中的软件也因此更强调可继承性和技术衔接性,发展比较稳定”。 6 堡士论文嵌入式w e b 服务器及设各驱动的研究 2 1 4 嵌入式系统软件的特征 嵌入式处理器的应用软件是实现嵌入式系统功能的关键,对嵌入式处理器 系统软件和应用软件的要求也和通用计算机有所不同“。 ( 1 ) 软件要求固态化存储 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器 芯片或单片机本身中,而不是存贮于磁盘等载体中。 ( 2 ) 软件代码高质量、高可靠性 尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加, 但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。为此要求程 序编写和编译工具的质量要高,以减少程序二进制代码长度、提高执行速度。 ( 3 ) 系统软件( 0 s ) 的高实时性是基本要求 在多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调度 是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没有效 率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的高实时 性是基本要求。 ( 4 ) 多任务操作系统是知识集成的平台和走向工业标准化道路的基础 2 2 嵌入式i n t e r n e t 技术 2 2 1i n t e r n e t 的发展 i n t e m e t 带来了一个新时代。 第一阶段:1 9 8 0 年一1 9 9 0 年i n t e r n e t 发展的萌芽阶段。解决异种计算机的 联网和信息交换,采用t c p i p 协议交换文件和信息,主要解决专业领域如银行、 军用系统采用不同操作系统的大、中、小型计算机的联网问题,这时并不称之为 i n t e m e t ,t c p i p 网络仅是少数计算机专家的概念,这是i n t e m e t 发展的萌芽阶段。 第二阶段:1 9 9 0 年- - 2 0 0 0 年,p c 作为客户机,i n t e r n e t 席卷全球。在t c p i p 协议网络之上发明的e m a i l 和w 、f i r w 普遍应用,i n t e m e t 国际互联网被大众接受, 这时一个重要的条件是p c 普及的非常广泛,即形成了c l i e n t s e r v e r 体系结构( 客 户机服务器) ,进而发展为b r o w s e r s e r v e r 结构( 浏览器,服务器) ,这时的客户 机是已广泛普及的p c ,而服务器是相对复杂的,价格昂贵的超级计算机,即我 们所谓的“胖服务器”。i n t e r n e t 的发展使i t 界的老牌公司也没有料想到会产生 硕士论文 嵌入式w e b 服务器及设备驱动的研究 路由器的巨大需求,c i s c o 的成功在于此。另一方面,w w w 的应用又造就了一大 批以y a h o o 为代表的c o m 公司,以及电子商务公司,这时候所有的人不得不承 认i n t e r a c t 象一场革命改变了世界。 第三阶段:2 0 0 0 年2 0 1 0 年嵌入式i n t e r a c t 时代。地球将被披上“电子皮 肤”,嵌入式片上系统成为瘦服务器。预测未来i n t e r a c t 将向何处去,这是全世 界科学家关心的问题,包括美国贝尔实验室总裁a m nn e t r a v a l i 的一批科学家对 此做出了预测:在这阶段“将会产生比p c 时代多成百上千倍的瘦服务器和超级 嵌入式瘦服务器,这些瘦服务器将与我们这个世界你能想到的各种物理信息、生 物信息相联接,通过i n t e m e t 网自动的、实时的、方便的、简单的,提供给需要 这些信息的对象”。 由此可见,如何设计和制造嵌入式瘦服务器、嵌入式网关和嵌入式因特 网路由器已成为嵌入式i n t e r n e t 时代的关键和核心技术,嵌入式i n t e r n e t 广泛应 用将使我们这个世界变得更加自动化、智能化和人性化。 2 2 2 小设备挂到i n t e r n e t 网上的意义 将众多小设备挂到i n t e r n e t 网上有着伟大和深远的意义。过去通过专用通 信线在远方采集现场设备的数据进行远方显示和控制并不是没有,但是通信介质 要专用的,通信协议要自己写,配套的软件和硬件要自己设计。今天,嵌入式设 备的远方显示和控制只要能上网,就可以进行远程访问和控制。 不需要专用的通信线路,只需要连上现成的i n t c r n c t 网络。 传输速度速度非常快。 过去传的仅仅是数据信号,现在声音、图像、视频等都可以方便地传输。 协议是现成而公开的,任何一种w e b 浏览器都可以访问,大到1 0 m b y t e 的 完备桌面浏览器,小到6 0 0 k b y t e 的m o s a i c 浏览器,也无论是m i c r o s o f t 的浏览 器还是n e t s c a p e 浏览器都行。 信息直接反映在色彩丰富的网页上,形式可以是数据、文字、图象、表格或 语音,实时数据会自动更新,设备的操作会有及时可见的反馈。 传一次信息,所有想收到的用户机都可以按照各自的需要给予显现和操作, 如运行人员可以监视与控制、管理人员可以修改运行方式和执行重大决策、财务 和金融部门进行经济运作和收支交割等。 2 2 3 嵌入式设备如何接入i n t e r a e t 网 原则上讲,嵌入式设备只要转变为嵌入式w e b 服务器,再加上t c p i p 网络 堡主堡羔嵌入式w e b 服务器及设备驱动的研究 协议就可以连上i n t e m e t 网。具体实现的技术有多种样。下面介绍一些已经实现 的方案。 高档m p u 片上系统 o s i e o m 公司研发了n e t + a r m 的系统级芯片( s o c ) 要算是最正统的方案了。 它是使用r i s c 技术的4 0 m i p s 的a r m 7 微脑核( m i c r c o r e ) ,加上以太网 ( e t h e m e t ) ;使用下列网络协议:t c p ( 传输控制协议) 、u d p ( 用户数据报协议) 、 r a r p ( 反向地址转换协议) 、i c m p ( 网际控制报文协议) :还有下列关于i n t e m e t 网的高层软件协议:h t t p ( 超文本传输协议) 、s m t p ( 简单邮件传输协议) 、 f t p ( 文件传输协议) ;再包括p s o sr t o s ( 实时操作系统,i n t e g r a t e ds y s t e m 公 司的操作系统) 等组成的s o c 。 举例来说,上述s o c 嵌入一台打印机就可以上网成为网上打印机,使i n t e m e t 网上的任何一个客户机都可以用各自的浏览器在网页上使用、监视和控制这台打 印机。 3 2 6 4 位的嵌入式系统 它有足够的能力和资源按上述s o c 一样的思路,在操作系统和函数的支持 下毫不费力地实现。 8 1 6 位的嵌入式系统 实现的原则与上述并无不同,只是应当照顾到8 1 6 位系统速度不够快和内 存不够大,要想一些办法实现简化和保持最基本的东西,即嵌入式设备一定要转 变为w e b 服务器,一定要加上t c p i p 网络协议。 2 3 嵌入式l i n u x 系统 l i n u x 是一个操作系统。最初它是由在芬兰赫尔辛基大学念书的l i n u s t o r v a l d s 作为一种业余爱好开发出来的。l i n u s 对用于教学的一种小型的u n i x 操 作系统一m i n i x 很感兴趣,决定开发出超过m i n i x 的操作系统。在1 9 9 1 年, 他开始l i n u x 的开发,那时候的l i n u x 是o 0 2 版。到了1 9 9 4 年,l i n u x 内核的 1 0 版发布了。现在稳定的l i n u x 内核版本是2 2 版,开发工作还在继续进行。 因为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 ( 1 1 首先,它是免费的。 ( 2 ) l i n u x 内核的模块化设计使得开发者能够对其进行定制和裁剪。内核小, 9 堕堡壅嵌入式w e b 服务器及设备驱动的研究 但功能强大、运行稳定、系统健壮性强。 l i n u x 很少死机,你可以停止那些有问题的进程,而让操作系统正常地运行 下去。而且,l i n u x 用的是最先进的内存管理技术,不会让你的操作系统失去控 制,也根本不要经常重启操作系统。 如果需要安装的是一个服务器操作系统,那么l i n u x 是有很多优势的,特别 是比起其它操作系统,如w i n d o w s2 0 0 0 ,要便宜得多了。还有一个优点是:l i n u x 几乎不受病毒的攻击。因为遵循g p l 和开放源代码,基本上你可以获得操作系 统以及操作系统上所有软件的源代码。 ( 3 ) 实时性支持。实时性操作系统r t o s 和普通操作系统存在的区别主要是 “实时”二字上。在实时计算机中,系统的正确性不仅仅依赖于计算机的逻辑结 构而且依赖与结果产生的时间。从这个角度看,可以把实时系统定义为“一个能 实现在指定或确定的时间内完成系统功能和对外部或内部、同步或异步时间做出 相应的系统”。这个系统要求了两点:系统应该有在事先定义的时间范围内识别 和处理离散随机事件的能力;系统能够处理和存储控制所需要的大量数据。 l i n u x 继承了传统u n i 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 作为一个优先级最低的进程。这种方法的优点是可以提供象专用 的r t o s 一样的硬实时性,缺点是不能保证l i n u x 应用和设备驱动程序的完全兼 容,现有的代表产品是r t - l i n u x 。第二种方法是构造一个可抢占的l i n u x 内核, 这种可抢占的l i n u x 内核是使用s m p ( 对称多处理器) 技术在当x 8 6 、p p c 、 a r m 等r i s cc u p 系统中以补丁形式加在内核上。这种方法的优点是与任何 l i n u x 应用和设备驱动程序兼容;缺点是它不是严格意义上的硬实时。 ( 4 ) 最新的l i n u x 内核支持i n t e l x 8 6 、m o t o r o l a i b mp o w e r p c 、 c o m p a q ( d e c ) a l p h a 、i a6 4 、s 3 9 0 、s u p e r h 等多种微处理器体系结构,这种操 作系统的平台适应性可见一斑。l i n u x 的核心代码移植到新的微处理器上,基本 不用做什么修改。 l i n u x 自身具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉 运行环境,并且可以跨越嵌入式系统开发中的仿真工具( i c e ) 的障碍。内核的 完全开放使人们可以自己设计和开发出真正的硬实时系统,软实时系统在l i n u x 中也容易得到实现。强大的网络支持使得可以利用l i n u x 的网络协议栈将其开发 成为嵌入式的t c p i p 网络协议栈。 j 0 堕堂文嵌入式w e b 服务器及设备驱动的研究 ( s ) 内核网络功能完善,提供了对t c p i p 协议的全面支持,同时实现了对以 太网、令牌环网、光纤网一家无线网络等多种联网方式的支持。 ( 6 ) 系统功能、大小均可定制,具有内容丰富的开发环境,而且开发工具也 在不断发展。l i n u x 的系统界面和编程接口和传统的u n i x 类似,大量在u n i x 下的程序员可以很方便的从u n i x 环境转移到l i n u x 环境下来。在l i n u x 平台上 的应用软件也不断得到扩充。许多著名的商业软件都开始有了l i n u x 下的版本。 l i n u x 的开发遵循g n u 标准,能够获得众多第三方硬件厂商的支持。 l i n u x 提供了完成嵌入功能的基本内核和所需要的所有用户界面,它是多面 的。它能处理嵌入式任务和用户界面。 一个小型的嵌入式l i n u x 系统只需要下面三个基本元素: + 引导工具 + l i n u x 微内核,由内存管理、进程管理和事务处理构成 初始化进程 2 4 嵌入式w e b 服务器 本课题的嵌入式w e b 服务器就是嵌入式i n t e m e t 应用之一,她专注于给中高 端嵌入式设备提供w e b 服务器的一般功能和易与设备的其他部分进行集成的特 性。基于前面的阐述,本课题的嵌入式w e b 服务器不是直接基于硬件平台( 虽 然这样可以更节省资源) ,而是建立在软件平台之上。因此本课题按以下四方面 开展: a 1 i n u x 内核学习和分析 b 定制l i n u x 系统,使其适应嵌入式环境 c 嵌入式w e b 服务器的研究和开发 d 嵌入式设备驱动的研究开发 相比较于前面提到的几种嵌入式操作系统,l i n u x 以其特有的开放性、强 大的网络特性使其在嵌入式领域的应用具有极强的竞争力。所以需要对l i n u x 的 运行流程和内核的相关技术进行一定程度的深入学习和分析,这正是第三章的内 容。第四章在前面的基础上提出了嵌入式w e b 服务器的框架、与其他应用程 序的接口方式,并加以实现。第五章研究嵌入式l i n u x 下字符设备驱动程序的开 发模型,并给出实现方法。 硕士论文 嵌入式w e b 服务器及设各驱动的研究 第三章l i n u x 内核分析及剪裁 3 1 l i n u x 系统概述 “l i n u x 是一种u n i x 操作系统的克隆,它( 的内核) 由l i n u st o r v a l d s 以 及网络上组织松散的黑客队伍一起从零开始编写而成。l i n u x 的目标是保持和 p o s i x 的兼容。”l i n u x 具备一切功能完整的现代u n i x 系统所具备的全部特征, 其中包括真正的多任务、虚拟内存、共享库、需求装载、共享的写时复制程序执 行、优秀的内存管理以及t c p i p 网络支持等。l i n u x 的发行遵守g n u 的通用 公共许可证。l i n u x 起初为基于3 8 6 4 8 6 的p c 机开发,但现在,l i n u x 也可 以运行在d e ca l p h a 、s u ns p a r c 、m 6 8 0 0 0 ,以及m i p s 和p o w e r p c 等计算机上。 3 1 1l 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 内核源码是很具吸引力的,特别是当你弄懂了一个分析了好久 都没搞懂的问题;或者是被你修改过了的内核,顺利通过编译,切运行正常的 时候。而且,对内核的分析,除了出自对技术的追求之外,这种令人生畏的劳动 所带来的回报也是非常令人着迷的,这也正是它拥有众多追随者的主要原因。然 而,由于内核代码的冗长,和内核体系结构的庞杂,所以分析内核也是一个很艰 难,很需要毅力的事。 由于本文所进行的分析都是基于2 4 1 8 版本的内核;所以,如果没有特别说 明,以下分析都是基于i 3 8 6 单处理器的2 4 。】8 版本的l j n u x 内核。 l i n u x 内核主要由五个子系统组成:进程调度、内存管理、虚拟文件系统、 网络接口、进程间通信l l j 。 1 进程调度( s c h e d ) 控制进程对c p u 的访问。当需要选择下个进程运行时,由调度程序选择 最值得运行的进程。可运行进程实际上是仅等待c p u 资源的进程,如果某个进 程在等待其它资源,则该进程是不可运行进程。l i n u x 使用了比较简单的基于优 先级的进程调度算法选择新的进程。 2 内存管理( m m ) 2 硕士论文 嵌入式w e b 服务器及跛各驱动的研究 允许多个进程安全地共享主内存区域。l i n u x 的内存管理支持虚拟内存,即 在计算机中运行的程序,其代码、数据、堆栈的总量可以超过实际内存的大小, 操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘 中。必要时,操作系统负责在磁盘和内存间交换程序块。内存管理从逻辑上分为 硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对 换;硬件相关的部分为内存管理硬件提供了虚拟接口。 3 虚拟文件系统( v i r t u a lf i l es y s t e m v f s ) 隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,v f s 提供了 多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程 序。逻辑文件系统指l i n u x 所支持的文件系统,如e x t 2 ,f a t 3 2 等,设备驱动程 序指为每一种硬件控制器所编写的设备驱动程序模块。 4 网络接口( n e t ) 提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络 协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络 设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动 程序。 5 进程间通讯( i p c ) 支持进程间各种通信机制。 进程调度处于系统的中心位置,所有其它的子系统都依赖它,因为每个子系 统都需要挂起或恢复进程。一般情况下,当一个进程等待硬件操作完成时,它被 挂起;当操作真正完成时,迸程被恢复执行。例如,当一个进程通过网络发送一 条消息时,网络接口需要挂起发送进程,直到硬件成功地完成消息的发送,当消 息被成功的发送出去以后,网络接口给进程返回一个代码,表示操作的成功或失 败。其他子系统以相似的理由依赖于进程调度。 3 1 2 系统数据结构 结构化程序的设计思想认为:程序;数据结构+ 算法。数据结构体现了整个 系统的构架,所以数据结构通常都是代码分析的很好的着手点,对l i n u x 内核分 析尤其如此。比如,把进程控制块结构分析清楚了,就对进程有了基本的把握; 再比如,把页目录结构和页表结构弄懂了,两级虚存映射和内存管理也就掌握得 差不多了【1 l 。 里生型婪l 一 堂垒垫型塑墅叁塑墨塾鱼翌垫塑塑塞 在l i n u x 的内核的实现中,有些数据结构使用频度较高,他们是: t a s ks t r u c t l i n u x 内核利用一个数据结构( t a s k _ s t r u c t ) 代表一个进程,代表进程的数据 结构指针形成了一个t a s k 数组( l i n u x 中。任务耘进程是相同的术语 ,这种指针数 组有时也称为指针向量。这个数组的大小由n r默认为5 1 2 1 ,表明_ t a s k s ( l i n u x 系统中最多能同时运行的进程数目。当建立新进程的对候,l i n u x 为新进程分配 一个t a s k _ s t r u c t 结构,然后将指针保存在t a s k 数组中。调度程序一直维护着一个 c u r r e n t 指针,他指向当前正在运行的进程。 m m _ s t r u c t 每个进程的虚拟内存由一个a ms t r u c t 结构来代表,该结构实际上包含了当 前执行跌像的有关信息,并且包含了一组指向v i i ia r e as t r u c t 结构的指针, v m a r e a s t r u c t 结构描述了虚拟内存的一个区域。 i n o d e 虚拟文件系统( v f s ) 中的文件、目录等均由对应的索引节点( i n o d e ) 代表。每 个v f s 索引节点中的内容由文件系统专属的例程捉供。v f s 索引节点只存在于 内核内存中,实际保存于v f s 的索引节点高速缓存中。如果两个进程用相同的 进程打开,则可以共亭i n a d e 的数据结构,这种共享是通过两个进程中数据捷指 向相同的i n o d e 完成。 3 2l i n u x 内核分析 3 2 1 内存管理 l i n u x 采用了虚拟页式存储管理。为简化内存管理和提高可移植性,l i n u x 没有使用x 8 6 的段映射功能,但是x 8 6 舱硬件设计使得在该平台上使用分页机制 必须通过段映射,所以l i n u x 定义了基址为0 、段限为0 x f f f f f f f f 的段描述符, 来穿透段映射机制,使虚拟地址等价于线性地址。l i n u x 实际上只使用了四种段: k e r n e l _ c s 、 k e r n e ld s 、- u s e rc s 和u s e rd s 。其中- u s e r c s 和 u s e r d s 段都是被所有用户态下的进程共享的,通过使用不同的页表目录由分 页机制保证他们的进程空间( 用户空间部分) 是独立的”i 。 l i n u x 内核的映射机制设计成三层,页面目录( p g d ) ,中间目录( p m d ) 和 页表目录( p t ) ,p t 中的表项则称为p t e ,p g d 、p m d 、p t 、三者均为数组。相 硕士论文 嵌入式w e b 服务器及设备驱动的研究 应地,在逻辑上也把线性地址从高位到低位分成4 个位段,各占若干位,分别用 作在目录p g d 中的下标、中间目录p m d 中的下标、页面表中的下标以及物理 页面内的内存的位移。这样对线性地址的映射就分成下图所示的四步。 ( 1 ) 用线性地址中最高的那一个位段作为下标在p g d 中找到相应的表项, 该表项指向相应的中间目录p m d ( 2 ) 用线性地址中的第二个位段作为下标在此p m d 中找到相应的表项,该 表项指向相应页面表。 ( 3 ) 用线性地址中的第三个位段作为下标在页面表中找到相应的表项p t e , 该表项中存放的就是指向物理页面的指针。 ( 4 ) 线性地址中的最后位段为物理页面内的相对位移,将此位移量与目标物 理页面的起始地址相加便得到相应的物理地址。 对于i 3 8 6 来说,c p u 实际上不是按三层而是按两层的模型进行地址映射的, 这就要把虚拟的三层映射落实到实际的两层映射,跳过中间的p m d 层次,把线 性地址逻辑上的p m d 的长度设置为0 ,就可以达到此目的。 3 2 位的地址意味着4 g 字节的虚存空间,l i n u x 内核将这4

温馨提示

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

评论

0/150

提交评论