(计算机应用技术专业论文)嵌入式web服务器的设计与实现.pdf_第1页
(计算机应用技术专业论文)嵌入式web服务器的设计与实现.pdf_第2页
(计算机应用技术专业论文)嵌入式web服务器的设计与实现.pdf_第3页
(计算机应用技术专业论文)嵌入式web服务器的设计与实现.pdf_第4页
(计算机应用技术专业论文)嵌入式web服务器的设计与实现.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机应用技术专业论文)嵌入式web服务器的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 嵌入式w e b 服务器是嵌入式技术和网络技术结合的产物,是嵌入式技术网 络化的一项重要应用。嵌入式w e b 服务器主要应用在远程监测和控制方面,将 w e b 服务器移植到接入网络的嵌入式设备后,客户端可借助浏览器对远端的嵌 入式设备进行监测和控制。基于t c p i p 标准协议的w e b 服务器实现,基于h t t p 协议的b s 通信模式,基于h t m l 标准的用户控制界面,这些都为嵌入式w e b 服务器的实现提供了便利。 嵌入式w e b 服务器不同于传统的w e b 服务器。传统w e b 服务器主要用于处 理较大的客户量同时并发访问,在硬件方面有强大的处理器和内存支持,在软 件方面有商业数据库支持。而嵌入式设各处理器能力,存储容量有限,传统w e b 服务器一般不能在嵌入式设备上面运行,对其进行裁减来适应嵌入式环境也比 较困难。针对上述问题,本文详细论述了w e b 服务器的设计方法,并在此基础 上实现了一个嵌入式多线程w e b 服务器。 本文首先论述嵌入式系统的概念、发展趋势以及嵌入式系统软硬件平台, 研究了u c l i n u x 的特点和小型化的方法,并对两个嵌入式系统软件模拟器 a r _ m u l a t o r 和s k y e y e 各自的特点进行了分析比较。其次,在对多个现有w e b 服 务器源代码分析的基础上归纳总结出四种w e b 服务器设计方法,用多线程方法 实现了一个通用的嵌入式w e b 服务器,并详细论述了其实现细节。最后,研究 了将自行设计的嵌入式w e b 服务器移植到嵌入式系统模拟器s k y e y e 的方法,并 用网络协议分析软件对w e b 服务器实现的正确性进行了验证。 关键宇:嵌入式w e b 服务器 超文本传输协议t c p i p s k y e y e a b s t r a c t e m b e d d e dw e bs e r v e ri sap r o d u c tc o m b i n e de m b e d d e dt e c h n o l o g yw i t hn e t w o r k t e c h n o l o g y i ti so n eo fa ni m p o r t a n ta p p l i e so fe m b e d d e dt e c h n o l o g yw i t hd e v e l o po f i n t e r n e t w i t ht h ee m b e d d e dw e bs e r v e ro nt h ee m b e d d e de q u i p m e n ta n dw i t ht h e b r o w s e ro nt h ec l i e n te n d ,e m b e d d e dw e bs e r v e rc a nb eu s e dt or e m o t em o n i t o ra n d c o n t r 0 1 n ed e v e l o p m e n to fw e bs e r v e ri sb a s e do nt h es t a n d a r dt c 脚p r o t o c 0 1 t h e b sc o m m u n i c a t i o nm o d e li sb a s eo ns t a n d a r dh t t pp r o t o c 0 1 t h eu s e ri n t e r f a c ei s b a s e do nt h es t a n d a r dh t m ll a n g u a g e a l lo f t h e s em a k et h ed e s i g no f e m b e d d e dw e b s e r v e rc o n v e n i e n c e e m b e d d e dw e bs e r v e ri sd i f f e r e n tf r o mt r a d i t i o n a lw e bs e r v e r s u r p o r t e db yt h es t r o n g a b i l i t i e so f h a r d w a r e sa n dc o m m e r c i a ld a t a b a s es o t t w a r e s 。t r a d i t i o n a lw e bs e r v e ri su s e d t oh a n d l em i l l i o n so f c l i e n tr e q u e s t s o nt h eo t h e rh a n d ,d u et ot h e1 i m i t i o no f e m b e d d e d p r o c e s sa n dm e m o r y , i t i sn o ts u i t a b l ef o rt r a d i t i o n a lw e bs e r v e rt ob eu s e do ne m b e d d e d s y s t e m ,a n di ti sa l s od i f f i c u l tt op o r ti tt oe m b e d d e ds y s t e m b e c a u s eo fs u c hp r o b l e m s , t h i sp a p e rd e v e l o p sam u l t i - t h r e a de m b e d d e dw e bs e r v e rb a s e do na n a l y z i n gt h e m e t h o d so f w 曲s e r v e rd e s i g n t h i sp a p e rd i s c u s s e dt h ed e f i n e ,d e v e l o p m e n t ,h a r d w a r ea n ds o f t w a r ep l a t f o r mo ft h e e m b e d d e ds y s t e m ,s t u d i e dt h ec h a r a c t e r i s t i co ft h eu c l i n u xa n di t sm i n i a t u r i z e d m e t h o d s ,a n dc o m p a r e da r m u l a t o rw i t hs k y e y e ,w h i c ha r et w os o f t w a r es i m u l a t o r so f e m b e d d e ds y s t e m t h e nd e v e l o p e dam u l t i - t h r e a de m b e d d e dw e bs e r v e rb a s e do n a n a l y z i n gt h em e t h o d so f w e bs e r v e rd e s i g n ,a n dg i v eg r e a d e t a i l so fi t sd e v e l o p m e n t s f i n a l l y , i n t r o d u c e dt h em e t h o do fp o r t m gt h ee m b e d d e dw e bs e r v e rt os o f t w a r e s i m u l a t o r , a n dt e s t e di t sc o d i n gc o r r e c tb yu s i n gt h en e t w o r kp r o t o c o la n a l y z e t o o l s k e y w o r d :e m b e d d e dw e b s e r v e rt c p i p s k y e y e 创新性声明 y s s s 6 6 7 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名: 亟! 孚 日期:! 受:! :丑 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本人签名 导师签名 丞! 妻 善纽l 日期 ! ! :兰二z 日期: 曼匹! ! :兰z 第1 章绪论 第1 章绪论 1 1 嵌入式系统概述 随着现代计算机技术的飞速发展和互联网技术的广泛应用,嵌入式系统开 发成为近年1 t 行业的技术热点。p c 时代逐步过渡到了以个人数字助理、手持个 人电脑和信息家电为代表的3 c 1 一体的后p c 时代。在后p c 时代里,嵌入式系统 广泛应用于移动计算平台,信息家电,无线通信设备,工业和商业控制,电子 商务平台,甚至军事应用等诸多领域。 嵌入式系统一般定义为“以应用为中心、以计算机技术为基础、软件硬件 可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计 算机系统。”i e e e ( 国际电气电子工程师协会) 将嵌入式系统定义为“用于控制, 监视或者辅助操作机器和设备的装置”。 嵌入式系统具有三个显著的特点: 嵌入性:由于嵌入式系统是嵌入到对象系统中的,必须满足对象系统的环 境要求,如物理环境、电气环境、成本等要求。 专用性:对软、硬件进行裁剪性使其满足对象要求的最小软、硬件配置。 计算机系统:嵌入式系统必须是能满足对象系统控制要求的计算机系统。 1 2 嵌入式系统的发展趋势 纵观嵌入式技术的发展,大致经历了以下4 个阶段: 第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、 伺服、指示设各相配合的功能。这种系统大部分应用于一些专业性极强的工业 控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控 制,运行结束后清除内存。这一阶段系统的主要特点是:系统结构和功能都相 对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式 系统使用简便、价格很低,以前在国内工业领域应用较为普遍,但是己经远远 不能适应高效的、需要大容量存储介质的现代化工业控制和新兴的信息家电等 领域的需求。 第二阶段是以嵌入式c p u 为基础、以简单操作系统为核心的嵌入式系统。 这一阶段系统的主要特点是:c p u 种类繁多,通用性比较弱;系统开销小,效 13 c :计算机( c o m p u t e r ) , 通讯( c o m m u n i c a t i o n ) , 消费类电子( c o n s u m c r e l c c t r i c s ) 。 2 d e v i l s u s e a :l t o 咖l m o n i t o r , o r a s s i s t t h e o p e r a t i o n o f e q u l p m e n t , m a c h i n e r y o f p + a n t s ” 2 嵌入式w e b 服务器的设计与实现 率高;操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够 友好;系统主要用来控制系统负载以及监控应用程序运行。 第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统的主要 特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操 作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录 管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能:具有大 量的应用程序接口,开发应用程序简单;嵌入式应用软件丰富。 第四阶段是以基于i n t e r n e t 为标志的嵌入式系统,这是个正在迅速发展的 阶段。目前大多数嵌入式系统还孤立于i n t e m e t 之外,但随着i n t e m e t 的发展以 及i n t e r n e t 技术与信息家电、工业控制等相关技术日益密切的结合,嵌入式设备 与i n t e m e t 的结合将代表着嵌入式技术的真正未来。 1 3 嵌入式w e b 服务器及其应用 在i n t e m e t 日益发展的今天,嵌入式设备与i n t e m e t 的结合代表着嵌入式技 术的真正未来。随着i p v 6 的应用,任何设备都可能获得一个全球唯一的i p 地址, 通过i p 地址和互联网相连成为一个网络设备;但传统的t c p i p 协议在实现实时 性方面做得不够好,它把大量的精力花在保证数据传送的可靠性以及数据流量 的控制上。在实时性要求比较高的嵌入式领域中,传统t c p i p 实现过于复杂, 需占用大量系统资源,不能满足实时要求,嵌入式t c p 1 p 协议族大多在不违背 协议标准的前提下对传统t c p i p 加以改进,使其实现性得到提高,占用的存储 空问尽可能少,以满足嵌入式应用的要求。 嵌入式w e b 服务器是嵌入式技术和网络技术结合的产物,是嵌入式技术网 络化的一项重要应用。嵌入式w e b 服务器主要应用在远程监测和控制方面。将 w e b 服务器移植到接入网络的嵌入式设备后,客户端借助浏览器对远端的嵌入 式设备进行监测和控制。基于t c p i p 标准协议的w e b 服务器实现,基于h r r p 协议的b s 通信模式,基于h t m l 标准的用户控制界面,这些都为嵌入式w e b 服务器的实现提供了便利。 1 4 本文研究内容及论文结构 目前存在许多传统的w e b 服务器,传统w e b 服务器主要用于处理较大的客 户量同时并发访问。在硬件方面有强大的处理器和内存支持,在软件方面有商 业数据库支持,典型的传统w e b 服务器如基于w i n d o w ss e r v e r 的l l s ,基于u n i x 的a p a c h ew e bs e r v e r 等。而嵌入式设备处理器能力,存储容量有限,这样的服 务器并不能用来在嵌入式设备上面运行,并且要对其进行裁减来适应嵌入式环 第1 章绪论 境也比较困难。针对上述问题,本文详细论述了嵌入式w e b 服务器的设计方法, 并在此基础上实现了一个嵌入式多线程h t t pw e b 服务器。 本文的内容组织如下; 第一章:绪论。简要介绍嵌入式系统的概念和发展趋势,嵌入式w e b 服务 器及其应用。在说明传统服务器嵌入式存在的问题的基础上,提出本论文要解 决的问题,并对研究的目的和意义进行了说明。 第二章:嵌入式系统软硬件平台。首先对嵌入式系统进行了模块划分;其 次对嵌入式系统操作系统模块,特别是l i n u x 操作系统进行了较为详细的介绍, 重点介绍了u c l i n u x 的特点和小型化的方法;最后介绍了两个嵌入式系统软件模 拟器a r m u l a t o r 和s k y e y e ,并对两者各自的特点进行了分析比较。 第三章:h 1 1 甲和t c p 1 p 相关协议分析。 首先介绍h t t p 协议相关内容:h t t p 协议的发展和特点;对h t l p 协议 的主要内容:客户端请求请求,服务器端响应,u r l 编解码,时间格式等方面 进行了重点分析;最后介绍c g i 相关内容。 其次介绍了t c p i p 协议相关内容:t c p i p 协议的结构:对l p 协议和t c p 协议进行了分析,重点讲解了t c p 协议中三次握手的建立以及整个通信过程的 状态转换;介绍s o c k e t 编程系统函数以及s o c k e t 通信过程流程。 第四章:嵌入式w e b 服务器设计方法分析。通过阅读源代码,详细分析了 h t t p d ,b o a ,m o n k e y 三种w e b 服务器的设计和实现。在此基础上,归纳出 四种服务器设计方法,它们分别是:i n e t d 超级服务器结构,多进程并发结构, s e l e c ti o 多路复用结构,多线程并发结构。 第五章:s m a r tw e bs e r v e r 的实现及测试。在分析了多个服务器设计方案的 基础上,详细介绍自行设计的s m a r t w e b s e r v e r 多线程w e b 服务器的实现细节, 主要包括:i o 函数,线程安全,时间函数,信号量,访问权限,u r l 解析等相 关问题;并详细介绍了将s m a r t w e b s e r v e r 移植到s 姆e y e 的方法;最后用网络 协议分析软件对s m a r tw e bs e r v e r 进行了抓包测试,验证了软件实现的正确性。 第2 章嵌入式系统软硬件平台 第2 章嵌入式系统软硬件平台 2 1 嵌入式系统体系结构 从整体来讲,嵌入式系统可分为:嵌入式微处理器、外围硬件设备、嵌入 式操作系统、用户的应用程序四个部分。 用户应用程序 嵌入式操作系统 微处理器 外围硬件 图2 - 1 嵌入式系统体系结构 从软件角度来讲,嵌入式系统可分为:引导加载程序,操作系统内核,文 件系统,用户应用程序四个层次。引导加载程序是系统加电后运行的第一段软 件代码。p c 机中的引导加载程序由b i o s 和位于硬盘m b r 中的o sb o o t l o a d e r 一起组成。b i o s 在完成硬件检测和资源分配后,将硬盘m b r 中的b o o t l o a d e r 读到系统的r a m 中,然后将控制权交给o sb o o tl o a d e r 。b o o tl o a d e r 的主要运行任务就是将内核映像从硬盘上读到r a m 中,然后跳转到内核的入 口点去运行。在嵌入式系统中,通常并没有像b i o s 那样的固件程序,因此整 个系统的加载启动任务就完全由b o o tl o a d e r 来完成。比如在一个基于a r m 7 嵌入式系统中,系统在上电或复位时通常都从地址0 x 0 0 0 0 0 0 0 0 处开始执行, 而在这个地址处安排的通常就是系统的b o o tl o a d e r 程序。 2 2 嵌入式操作系统的分类 嵌入式操作系统提供了嵌入式应用软件的运行基础和开发平台。嵌入式操 作系统对应用程序可以起到屏蔽的作用,将c p u 时间、中断、i o 、定时器等资 源封装起来,为开发人员提供标准的a p i 系统调用。使得应用程序员面向操作 系统级开发应用软件,并易于在不同的嵌入式处理器上移植。一个好的嵌入式 操作系统应该具有:可裁减性高,开发工具全,可移植性好,占用资源少,使 用成本低等特点。 目前,嵌入式操作系统大致分为以下几类: 1 专用的嵌入式操作系统。如c i s e o 路由操作系统i o s 。 2 商业嵌入式操作系统。如w i n d o w sm o b i l e ,v x w o r k s ,p a l m o s 等: 3 开放源代码操作系统。主要是l i n u x 及其派生物,嵌入式l i n u x 操作系 6 = = := :磊高磊:- 一以适应于诸如内存、处理器速度以及 统的主要挑战是把系统资源的需求减少,以通肚_ 昭州一”一 节能的限制。 篓熏曩一 篓竺篱篙季蕉燕篓黼惑雾 一 执行茎篓鬻嚣嚣篓,黧搿嚣翥 嵌入式l i n u x 蒯t c p a p 也是臼化7 。肚“”。 要进行定制的系统模块组成能兰固竺宝誓誓:亲薯釜蕞;还针对实时 i 有几百k b 左右,并且具有多任务、三:慧笔。冀兰:二二磊? 南户还可根据 特性进行了改进。这些功能足以解决普雩兰笔二主:薹薹釜萎二步完善操作 吕三的需要对内核进行进一步的处理 以增加葡矍州郦供“”“7 。 系统的功能。 第2 章嵌入式系统软硬件平台 2 4 嵌入式u c l i n t t x u c l i n u x 是l i n u x 版本的一个分支,一般用在微型控制应用领域。u c l i n u x 单词 中u 代表m i c r o ,c 代表c o n t r o l ,a c l i n u x 的含义就是m i c r o c o n t r o l l i n u x ,意思是 针对微控制领域而设计的l i n u x 系统。u c l i n u x 主要针对无m m u l 的处理器设计, 支持多任务,具有完备的t c p i p 协议栈并支持多种网络协议。u c l i n u x 还支持多 种文件系统,如r o m f s ,n f s ,e x t 2 ,f a t l 6 3 2 。u c l i n u x 已经成功应用于路 由器、网络摄像机、机顶盒、p d a 等诸多领域。 u c l i n u x 同标准l i n u x 的最大区别就在于内存管理。标准l i n u x 是针对有 m m u 的处理器设计的。在这种处理器上,虚拟地址被送到m m u ,m m u 把虚 拟地址映射为物理地址。通过赋予每个任务不同的虚拟一物理地址转换映射, 支持不同任务之间的保护。对于u c l i n u x 来说,其设计针对没有m m u 的处理器, 不能使用处理器的虚拟内存管理技术。u c l i n u x 系统对于内存的访问是直接的, 它对地址的访问不需要经过m m u ,而是直接送到地址线上输出,所有程序中访 问的地址都是实际的物理地址。操作系统对内存空间没有保护,各个进程实际 上共享一个运行空间,没有独立的地址转换表。 标准l i n u x 采用的小型化方法: 1 重新编译内核:l i n u x 内核采用模块化的设计,即很多功能块可以独立的 加上或卸下,开发人员在设计内核时把这些内核模块作为可选的选项,可 以在编译系统内核时指定。因此一种较通用的做法是对l i n u x 内核重新编 译,在编译时仔细的选择嵌入式设备所需要的功能支持模块,同时删除不 需要的功能。通过对内核的重新配置,使系统运行所需要的内核显著减小, 从而缩减资源使用量。 2 制作根文件系统映象:l i n u x 系统在启动时必须加载根文件系统,因此剪 裁系统同时包括根文件系统的剪裁。 u c l i n u x 采用的小型化方法: 1 u c l i n u x 的内核加载方式:u c l i n u x 的内核有两种可选的运行方式:可以在 f l a s h 上直接运行,也可以加载到内存中运行。f l a s h 运行方式是把内核的 可执行映象烧写到f l a s h 上,系统启动时从f l a s h 的某个地址开始逐句执 行。这种方法实际上是很多嵌入式系统采用的方法。内核加载方式是把内 核的压缩文件存放在f l a s h 上,系统启动时读取压缩文件在内存里解压, 然后开始执行,这种方式相对复杂一些,但是运行速度可能更快( r a m 的存取速率要比f l a s h 高) 。同时这也是标准l i n u x 系统采用的启动方式。 m e m o r ym a n a g e m e n tu n i t :内存管理单元。 嵌入式w e b 服务器的设计与实现 2 r o m f s 文件系统:u c l i n u x 系统采用r o m f s 文件系统,这种文件系统相 对于一般的e x t 2 文件系统要求更少的空间。空间的节约来自于两个方 面,首先内核支持r o m f s 文件系统比支持e x t 2 文件系统需要更少的代 码,其次r o m f s 文件系统相对简单,在建立文件系统超级块需要更少的 存储空间。r o m f s 文件系统不支持动态擦写保存,对于系统需要动态保 存的数据采用虚拟r a m 盘的方法进行处理。 3 u c l i b c 应用程序库:相对于越来越大且越来越全的g l i b c 库,u c l i b c 对其 做了精简。 4 f i a t 可执行文件格式:e l f 格式有很大的文件头。u c l i n u x 系统使用f l a t 可执行 文件格式,对e l f 格式的文件头和一些段信息做了简化,g c c 的编译器不能 直接形成这种文件格式,但是可以形成c o 铲或e l f 3 格式的可执行文件,这 两种文件需要c o f f 2 f l t 或e l f 2 f l t i 具进行格式转化,形成f l a t 文件。 2 5 嵌入式系统软件仿真环境 2 5 1 a r m u l a t o r 模拟器 a r m u l a t o r 是一个在a r m 公司推出的集成开发环境a d s 4 中提供的指令 集模拟器。它与运行在x 8 6 体系计算机上的调试器相连接,模拟a r m 微处理 器体系结构和指令集,提供了开发和调试a r m 程序的软件仿真环境。 a r m u l a t o r 不仅可以仿真a r m 处理器的体系结构和指令集,还可以仿真存储器 和处理器外围设备,例如中断控制器和定时器等,这样就模拟了个进行嵌入 式开发的最小子系统,另外使用者还可以扩展添加自己的外设。 a r m u l a t o r 在w i n d o w s 平台上实现为动态链接库文件,在l i n u x 或者 s o l a r i s 系统上实现为共享库文件。前者的使用一般是通过a r m 公司提供的图 形界顽调试器a x d 中,选择目标系统为a r m u l a t e d l l ,这样就设置了 a r m u l a t o r 作为调试代理。用户在进行调试开发时,对于底层使用的调试代理 是透明的。 2 5 2 s k y e y e 模拟器 s k y e y e 是一个开源软件项目,中文名字是“天目j j os k y e y e 的目标是在通用 2c o m m o b o b j e c t t i l e f o r m a t :一种通用的对象文件格式 3e x c u t l v el i n k e df i l e :一种为l i n u x 系统所采用的通用文件格式,支持动态连接 4a r m d e v e l o p e rs u i t e 第2 章嵌入式系统软硬件平台 9 的l i n u x 和w i n d o w s 平台实现一个纯软件仿真集成开发环境,模拟常见的嵌入式 计算机系统; s k y e y e 上可以运行类l i n u x 盼多种嵌入式操作系统和各种系统软 件,并可对它们进行源码级的分析和测试【。 s k y e y e 是一个指令级模拟器,可以模拟多种嵌入式开发板,可支持多种c p u 指令集,在s k y e y e 上运行的操作系统意识不到它是在一个虚拟的环境中运行, 而且开发人员可以通过s k y e y e 调试操作系统和系统软件。 s k y e y e 是一个建立在g d b 基础之上的模拟器,这使用户可以方便地使用 g d b 提供的各种调试手段对s k y e y e 仿真系统上的软件进行源码级的调试,还 可以进行各种分析,如执行热点分析、程序执行覆盖度分析等。并且,s k y e y e 提供了源代码和相关文档,使用户完全可以修改和扩充s k y e y e 来满足自己的需 求。 由于s k y e y e 的目标不是验证硬件逻辑,而是协助开发、调试和学习系统软 件,所以在实现上s k y e y e 与真实的硬件环境相比还是有一定差别的。s k y e y e 在时钟节拍的时序上不保证与硬件完全相同,对软件透明的一些硬件仿真进行 了一定的简化,这样带来的好处是s k y e y e 的执行效率更高。s k y e y e 并不能取 代开发板等硬件的功能,但其屏蔽了硬件层的复杂性,使开发人员更容易专注 于软件方面的开发。 囤2 - 3s k y e y e 目标仿真模块功能划分 通过s k y e y e 仿真集成环境可以很方便地进入到嵌入式系统软件学习和开发 的广阔天地中。尤其对于缺少嵌入式硬件开发环境和软件开发环境的用户来说, 它将是一个非常有效的学习工具和开发手段,因为s k y e y e 的整个软件系统都是 0嵌入式w e b 服务器的设计与实现 开放源代码的,且基于g p l 协议。因此,如果要学习l i n u x 操作系统或者进行 嵌入式系统开发,s k y e y e 仿真环境软件是一个很好的选择。 研究与具体硬件无关的系统软件( 如t c p 1 p 协议栈等) ,采用s k y e y e 可以 有效地提高工作效率,因为可以直接在s k y e y e 上进行开发和调试,而与具体硬 件打交道的各种驱动已经存在,且有源码级调试环境,只需关心高层的逻辑设 计和实现就可以了。 2 5 3 a r m u l a t o r 和s k y e y e 的比较 a r m u l a t o r 适合于规模相对较小的应用开发,由于它安装容易,使用起来 非常方便,同时基于a x d 调试器的图形用户界面,因此可作为学习和熟悉 a r m 编程的首选。通过对a r m u l a t o r 的使用,对于在a d s 下进行开发的使 用者来说,几乎可以非常顺利地过渡到使用j t a g 仿真器进行硬件调试。 s k y e y e 主要是基于g n u 工具,因此开发和使用以l i n u x 下为主,对那些 不太熟悉l i n u x 的使用者而言,刚开始也许会有些困难。虽然说使用s k y e y e 的难度稍微要高些,但对于那些较高层次的应用需求,比如嵌入式操作系统 的移植和分析而言,将是非常理想的调试工具和入门捷径p j 。 台 r i 自l l 附 s k y e y e 参数 运行平台 w i n d o w s ,l i n u xw m d o w ( c y g w i n 环境1 ,l i n u x 调试工具基于a x d 调试器基于g d b 运行界面支持图形界面命令行,新版本有图形界面 支持操作系统 u c ,o s i i u c o s i i , u c l i n “a r m l i n u x 支持处理器a r m 系列a r m 系列 m m u 仿真支持支持 网络芯片不支持支持 网络协议栈 无 t c p i p , l w i p 安装使用容易较难 开放性接口开放源码开放 可扩展性一般 较强 第3 章m 1 甲和t c p h p 相关扔议分析 第3 章h t t p 和t c p i p 相关协议分析 3 1 h t t p 协议分析 3 1 1 h t t p 协议概述 w 曲服务器使用的主要协议是h t t p 协议,即超文体传输协议。h t t p 是应用 级协议,它适应了分布式超媒体协作系统对灵活性及速度的要求。它是一个无 状态、无连接、基于c l i e n t s e r v e r 模式的协议。 3 1 1 1 h t t p 协议的发展 h t t p 协议的版本经历了h t t p 0 9 ,h t t p i 0 ,h t t p i 1 三个版本。 h t r p 0 9 是h r r p 第一次出现时制定的原始协议。它是目前使用的h r r p l i 的 子集。该协议描述了客户端和服务器间请求和响应过程:客户端在特定地址向服 务器请求连接,然后调用g e t 请求,访问服务器端对象,服务器在终止连接前将 该对象或一个错误消息返回给客户端,结束响应过程。 h t t p i 0 以h t t p 0 9 为基础。在h t t p 0 9 中,客户端和服务器的相互作用只能 直接进行,h t t p i 0 对此进行了扩充,允许通过中间实体,如代理进行连接。 h t t p i 0 用m i m e 描述对象的数据类型,既可以处理简单的纯文本h t m l ,也可以处 理更复杂的多媒体信息,如声音、图像和视频等。改进之处主要有: 1 增加请求类型。如:h e a d 、p o s t 请求。 2 请求和响应消息的协议版本。如:响应消息第一行以h t t p 1 0 ,表示服务 器使用h t i p l 0 协议。 3 服务器响应码,表示请求、响应消息是否成功。如:响应消息第一行以2 0 0 o k 结束,表示请求成功。 4 用m i m e 格式的消息头字段和消息体格式来描述访问对象的数据类型和 附加在后面的元信息。如:头字段c o n t e n t - t y p e :t e x t h t m l ,表示响应消息 实体为h t m l 文件。 5 用询问,响应实现访问认证。如:在访问某些主页时要求客户端输入用户 名和口令。 h r r p l 1 是h t i i 0 的一次飞跃,它主要强调解决后者的性能、安全、数据类 型处理和缓冲等方面的缺陷。h t t p l 1 主要改进包括: 1 使用永久连接作为缺省连接,提高性能。 2 使用摘要认证,提高安全性,克服基本认证方法中“显式”传递用户名和 1 2嵌入式w e b 服务器的设计与实现 密码的缺陷。 3 使用内容协商机制允许客户端和服务器以最佳方式描述对象。 h n 甲1 1 提出在服务器方缓冲对象,通过一种客户端服务器协议操作缓冲对 象进一步提高性能的思想,目的是减少请求、往返次数,并且是在确实需要时才 返回完整的响应。 另外,h t t p l 1 突破了h t r p l 0 中服务器和i p 一对一的限制,允许使用h o s t 标题字段服务器的名字来决定由哪个服务器对请求进行服务,而不用i p 地址来决 定。 3 1 1 2 h t t p 协议的特点 h r r p 协议设计简单灵活、无状态、无连接、基于c l i e n t s e r v e r 模式并支持元 信息,其特点主要如下: 1 以c l i e n t s e r v e r 模型为基础:h t t p 支持客户与服务器之间通信及相互传送数 据,一个服务器可以为分布在世界各地的许多客户服务。 2 简单快速:h r r p 被设计成一个非常简单的协议,使得w 曲服务器能高效地 处理大量请求,客户机要连接到服务器,只需发送请求方式和u r l 路径等少量 信息。h t t p 规范定义了七种请求方式,最常用的有三种:g e t 、h e a d 和p o s t 。 由于h 1 r f p 协议简单,h t i t 的通信与f t p 、t e l n e t 等协议的通信相比,速度快而 且开销小。 3 + 灵活:h n p 允许传输任意类型的数据对象。 4 无连接:i - r l t p 是无连接的协议。这里的“无连接”是建立在t c p 1 p 协议之 上的,与建立在u d p 协议之上的无连接不同。客户要建立连接需先发出请求, 收到响应,然后断开连接。采用这种“无连接”协议,在没有请求提出时,服 务器就不会在那里空闲等待。完成一个请求之后,服务器不会继续为这个请求 负责,从而不用为保留历史请求而耗费宝贵的资源。 5 无状态:h t t p 是无状态的协议,这既是优点也是缺点。一方面,由于缺少 状态使得h t i p 累赘少,系统运行效率高,服务器应答快;另一方面,由于没有 状态,协议对事务处理没有记忆能力,若后续事务处理需要有关前面处理的信 息,那么这些信息必须在协议外面保存;另外,缺少状态意味着所需的前面信 息必须重现,导致每次连接需要传送较多的信息。 6 元信息:元信息被定义为“关于信息的信息”,元信息允许服务器提供所发 送数据的信息。例如,h t r p 可以提供所发送的对象的语言和类型。 第3 章h t t p 和t c p i p 相关协议分析 3 1 2 h t t p 协议的传输过程 一建立连接_ i 卜 一发送请求卜 一一发送响应一 卜关闭连接 客尸端服务器 图3 - 1h 1 r p 传输过程 1 建立连接 连接的建立是通过申请套接字实现的。客户打开一个套接字并把它约束在 一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟 文件上进行读写。 2 发送请求 打开一个连接后,客户机把请求消息送到服务器的连接端口上,完成提出 请求动作。 3 发送响应 服务器在处理完客户的请求之后,向客户机发送响应消息。 4 关闭连接 客户和服务器双方都可以通过关闭套接字来结束对话,一般情况下服务器 发送完客户端请求的文件后会主动关闭套接字。 3 1 3 h t t p 协议的主要内容 请求和响应是h t t p 协议的核心。客户端和服务器之间的信息传递是通过消息来 进行的,请求消息是客户端向服务器发送的用于请求服务器提供服务的消息。 响应消息是服务器接到客户端请求后返回给客户端的消息。 3 1 3 1 客户端请求( r e q u e s t ) 请求消息格式 请求行格式:方法1 请求u r i r r r p 版本号c r l f 方法( m e t h o d ) , * 须用大写。 1 4嵌入式w e b 服务器的设斟与实现 头字段格式:用冒号分割的n a m e v a l u e 对,每个对没有顺序之分,一个n a m e 可能有用逗号分开的多个v a l u e 。请求消息格式实例如下: g e t h t t p 1 1 r n a c c e p t :i m a g e g i f ,i m a g e x x b i t m a p ,i m a g e j p e g ,i m a g e p j p e g r k n a c c e p t l a n g u a g e :z h c n r n a c c e p t e n c o d i n g :g z i p d e f l a t e r n u s e r a g e n t :m o z i l l a 4 0 r n h o s t :1 9 2 1 6 8 0 2 0 :8 0 8 0 r n r k n 方法( m e t h o d ) 方法描述了对给定资源应作的处理。在h t r p 1 1 下,请求的合法方法有; o p t i o n s 、g e t 、h e a d 、p u t 、p o s t 、t r a c e 和d e l e t e ,其中最常用的是 g e t 、h e a d 和p o s t 。 g e t :用于向服务器请求资源对象。如果对象是文档或文件,g e t 将请求其 内容:如果对象是程序,g e t 将请求程序的运行结果;如果对象是数据库查询, g e t 将请求查询的结果。 h e a d :用于向服务器请求对象的元信息。使用高速缓存的客户经常使用 h e a d 请求来取得文档最近的修改时间,与缓存中文档的修改时间进行对比, h e a d 方法的请求速度要快得多,因为它不需要传送整个文件。 p o s t :用于向服务器传送数据。p o s t 方法用于客户端向服务器提交表单。 表3 1 常见方法 方法 含义 g e t 向服务器请求用u r l 标识的资源对象,使用最为普遍 肛a d 向服务器请求资源对象的元信息,服务器不向客户端传送主体内容 p o s t 向服务器传送数据,常用于h n i l 表单 p u t 刨建或替换服务器端资源 d e l e t e 删除服务器端资源 头字段( h e a d e rf i e l d s ) 头字段一般用于传送除请求外的其他附加信息。 表3 - 2 常见头字段 头字段i 罐攀0 。薯。;+ !篓。i ,0 ;誓 h o s t 服务器名称,通过客户端的请求u r l 确定 a c c e p t客户端可以接受的媒体类型 a c c e p t l a n g u a g e客户端可以接受的语言类型 a c c e p t e n c o d i n g客户端可以接受的编码类型 第3 章h 丌p 和t c p ,i p 相关协议分析 3 i 3 2 服务器端响应( r e s p o n s e ) 响应消息格式 状态行格式:h t r p 版本号状态码r e a s o n p h r a s ec r l f 头字段 h t m l 主体 实例如下: h t t p 1 02 0 0o k r n s e r y e r :s m a r tw e b r n c o n n e c t i o n :c l o s e r n c o n t e n t l e n g t h :2 7 2 r n c o n t e n t t y p e :t e x t h t m l r “ d a t e :s u n ,0 4d e c2 0 0 50 7 :3 4 :3 2g m t r n r n s m a r tw e bs e r v e r s m a r tw e bs e r v e r ( h 3 i n t r o d u c t i o n a b o u ta u t h o r 状态码 状态码表示服务器是否成功地满足了客户的请求,状态码由一个三位整数 和解释装态码含义的正文短语组成。状态码大致分类如下: 1 5 嵌入式w e b 服务器的设计与实现 表3 - 3 状态码 状态码含义 1 x x 收到请求,继续处理 2 x x 接收成功,理解请求并给也响应 3 x x

温馨提示

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

评论

0/150

提交评论