首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心理工论文电子通信
   uClinux下动态Web技术的实现方法      ★★★ 【字体: 】  
uClinux下动态Web技术的实现方法
收集整理:佚名    来源:本站整理  时间:2009-01-11 00:01:12   点击数:[]    

[本篇论文由上帝论文网为您收集整理,上帝论文网http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持]
摘要:介绍uClinux操作系统的御,实现uClinux下的Boa Web Server;讨论如何通过编写CGI程序来最终实现uClinux下的动态Web页面技术。

    关键词:uClinux 动态Web技术 CGI(通用网关接口) Web Server

随着计算机技术发展,嵌入式系统已成为计算机领域的一个重要组成部分。所谓嵌入式系统,是以应用中为心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它具有计算机的功能,但又不称为计算机,包括机顶盒、微波炉、电梯、数控系统、医疗仪器等。

当今的信息时代,是一个构筑在网络基础之睥时代,互联网已经渗透到了人们工作和生活的各个角落。嵌入式Internet是近几年发展起来一项新兴概念和技术,不仅通过PC机能上网,通过各种各样的嵌入式设备也能上网,使用浏览Web已经成为现代人的习惯。21世纪的电子信息产品,如果不能适应这个发展的方向和要求,将很难有强劲的竞争力。而目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统,因此对uClinux操作系统下嵌入式Web技术的研究具有较高的现实意义,本文就此作些讨论。

1 uClinux嵌入式操作系统

Linux是一种优秀的自由软件。由于源代码公开,功能强大,具有良好的网络支持,又易于睛,近几年成为了最有潜力的嵌入式操作系统。UClinux是一个完全符合GNU/GPL(通用公共许可证)公约的项目和完全开发代码。它是标准Linux的一个分支,现在由Lineo公司支持维护。它专门针对没有MMU的CPU,并且为嵌放式系统做了许多小型化的工作。现在已经成为使用uClinux的安例包括:基于ColdFire的CISCO 2500/3000/4000路由器;基于ARM7TDMI的Aplio公司的voice-over-IP电话;Axis公司的AXIS2001网络数码相机;Adomo公司的机顶盒以及各种开发板。

UClinux经过对标准Linux内核的改动,形成了一个高度优化的、代码紧凑的嵌入式Linux,虽然它的体积很小,但uClinux仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、对各种文件系统完备的支持,以及标准丰富的API。它的主要特征如下:①通用Linux API;②内核体积小于512KB,内核加上文件系统小于900KB;③完整体积小于512KB,内核加上文件系统小于900KB;④支持其它大量网络协议;⑤支持各种文件系统,包括NFS、ext2、romfs and JFFS、MS-DOS和FAT16;⑥支持各种典型的处理器构架,包括ARM、PowerPC、X86等。

2 基于uClinux的动态Web实现技术

2.1 uClinux下Web Server的实现

uClinux下,主要有三个Web Server:httpd、thttpd和Boa。Httpd是最简单的一个Web Server,它的功能最弱,不支持认证,不支持CGI。Thttpd和Boa都支持认证、CGI等,功能都比较全。为了实现动态Web技术,这里我们选择实现一个支持CGI的、非常适合于嵌入式系统的Boa Web Server。

Boa是一个单任务的http服务器,源代码开放、性能高。目前,uClinux的代码中已经包含boa的源代码,在uClinux下实现Boa,需要对Boa做一些配置和修改。这主要通过对boa.conf和mime.types文件进行修改来实现,需要改动的配置有以下几项。

(1)建目录

由于uClinux默认的根文件系统romfs是只读的,不能用mkdir等命令来新建目录,故应在编译内核前先建好要用到的目录,这通过修改/uclinux-samsung/vendors/Samsung/4510b/makefile文件来实现。在ROMFS_DIRS=bin dev etc home lib mnt proc usr var的后边增加home/web home/web/cgi-bin,这样修改后编译内核,编译好的根文件系统romfs中就包含这些目录了。

(2)指定Web服务器的根目录路径(SERVER_ROOT)

进入/uclinux-samsung/user/boa/src/目录,通过修改define.h文件中#define ERVER_ROOT“/home”语句 来指定SERVER_ROOT。另外,还可以通过命令行来指定,例如:boa-c/home/&。而且命令行 指定的SERVER_ROOT可以覆盖define.h文件所指定的。

    (3)修改boa.conf文件

在./uclinux-samsung/user/boa/src/boa.conf里修改:

*将user obody

Group ogroup

改为User 0

Group 0;

*将DocumentRoot/var/www

改为DocumentRoot/home/web,这样web服务器的文档根目录为/home/web;

*将MimeTypes/etc/mime.types

改为MimeTypes/home/web/mime.types;

定义默认首页和CGI程序所在目录,即

DirectoryIndex index.html

ScriptAlias/cgi-bin//home/web/cgi-bin/

这样指定后,.index.htm为远程浏览客户访问Web Server所看到的首页默认值,用C编写的CGI程序编译成二进制文件,放到/cgi-bin/目录下,CGI程序能被正确地执行。

Boa.conf文件和mime.types文件必须放到Web服务器根目录下,所以把修改后的bao.conf和mime.types拷贝到“./uclinux-samsung/romfs/home/”目录下。然后在/uclinux-samsung/Vendors/Samsung/4510b/inittab里修改,在:inet:unknown:/bin/inetd后加入:boa:unknown:/bin/boac/home。

配置过程后,重新编译内核,编译时选中Boa选项。把编译好的内核下载到开发 板,启动uClinux,完成IP配置,启动Boa Web Server,然后就可以通过IE访问你的网页了。如果想启动uClinux时自动启动Boa Web Server,可以修改rc文件,进入uclinux-samsung/vendors/Samsung/4510B目录,在运行脚本rc中增加两行:

ifconfig eth202.196.9.197up

boa-c /home/&

修改后重新编译内核,再下载到开发板运行。运行uClinux后,不需要配置就可以直接通过IE来访问你的网页了。

2.2 uClinux下实现动态Web页面的CGI技术

到目前为止,实现动态Web页面有4种技术可供选择:CGI(Common Gateway Interface)、ASP(Active X ServerPage)、ASP(Active XServerPage)、PHP(Personal Home Page)和JSP(Java Server Page)。在uClinux下如果要实现动态网页,只能采用CGI,因此目前uClinux还不支持ASP、PHP等动态Web页面技术。

CGI(通用网关接口)提供Web服务器一个执行外部程序的通道,这种服务端技术使得浏览器和服务器之间具有交互性。CGI程序属于一个外部程序,需要编译成可执行文件,以便在服务端运行,其应用程序结构如图1所示。浏览器将用户输入的数据送到Web服务器,Web服务器将数据使用STDIN送给CGI程序,在执行CGI程序后,可能会访问存储数据的一些文档,最后使用STDOUT输出HTML形式的结构文件,经Web服务器送回浏览器显示给用户。

CGI程序可以用任何程序设计语言编写,如Shell脚本语言、Perl、Fortran、Pascal、C语言等。但目前uClinux不支持Perl、Fortran等语言,而且C语言在平台无关性上表示不错,所以我们选择用C来编写CGI程序。另外,uClinux也不支持数据库,所以需要保存的数据只能保存到文件中,CGI查询数据时也是查询这些文件,而不是访问数据库。

2.3 uClinux下动态Web页面的实现

下面通过一个例子来说明如何实现uClinux下的动态Web页面技术。此例子的目的是使用户能够通过Web页面内嵌表单提交数据,并能把用户提交的数据通过Web浏览器正确地返回给用户。实现动态Web页面的第一步是用HTML语言编写Web页及内建表单。编写Web页面时,要由ACTION属性来指定相关的CGI程序,如ACTION=cgi-bin/demo;由MOTHOD属性来指明所用的提交数据的方法,即MOTHOD=POST(GET)。本人编写的Web页面在浏览器中的显示如图2所示。

实现动态Web页面的第二步是用C编写CGI程序,CGI程序分为以下几部分:①根据POST方法或GET方法从提交的表单中接收数据;②URL编码的解码;③用printf()函数来产生HTML源代码,并将经过解码后的数据正确地返回给浏览器。包括demo.c、cgivars.h和cgivars.c三个文件。将编写好的CGI程序编译成二进制文件放在cgi-bin/目录下,CGI程序能被正确地执行,最终CGI程序对上述表单数据的处理结果如图3所示。

图3 CGI程序处理结果

   

[1] [2]  下一页


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:基于IP设计的8位SoC微微器ET44M210

  • 下一篇文章:在Protel99SE下实现可编程逻辑器件设计
  • 返回上一页】【打 印】【关闭窗口
    中查找“uClinux下动态Web技术的实现方法”更多相关内容 5VAR论文频道
    中查找“uClinux下动态Web技术的实现方法”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››嵌入式系统的通信规约管理平台设计...
  • ››一种基于七号信令的局间话单采集系...
  • ››对于变频器的制动技术分析
  • ››电子文件管理元数据宏观结构多维分...
  • ››浅论卫星电视接收机的常见故障的检...
  • ››信息时代网络用户信息检索焦虑的心...
  • ››论GIS在高校房产管理中的实际应用
  • ››关于电力通信发展战略的思考 金李莎...
  • ››2G、3G切换精细化优化分析思路探讨...
  • ››光纤自动化生产的需求与时机
  • ››uClinux下动态Web技术的实现方法
  • ››uClinux下NorFlash的JFFS2文件系统...
  • ››uClinux平台下的Flash存储技术
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .