咿呀咿呀哟是什么歌| 早晨起床口干口苦是什么原因| 军统是什么| 恒牙是什么牙| 6月19日是什么日子| 耳朵里发炎用什么药好| 寸关尺代表什么器官| 梦见杀猪是什么意思| 广西狗肉节是什么时候| 生蚝不能和什么一起吃| 眼睛发黄是什么原因引起的| 为什么会经常口腔溃疡| 马甲是什么意思?| 肋间神经痛用什么药| 尿道炎是什么引起的| 草莓什么时候种植最好| 小孩儿咳嗽有什么妙招| 什么是品质| 唐氏综合症是什么| 五行是什么意思| 女人肾虚是什么原因| 99年属什么生肖| 什么学步成语| 香港迪士尼什么时候开业的| 便秘吃什么药没有依赖性| 什么进曹营一言不发| 杜仲有什么功效| gccg是什么牌子| 励志是什么意思| 牙疼吃什么食物能缓解| 唐筛是检查什么的| 独一无二是什么生肖| 桑葚和什么泡酒壮阳| 幼小衔接班主要教什么| 3月16日是什么星座| 茵陈和什么泡水喝对肝脏最好| 佛道是什么意思| 私是什么意思| 病毒性结膜炎用什么眼药水| 大姨妈是黑色是什么原因| 打狂犬疫苗后注意什么| 28岁属什么| 五行水多代表什么| 5岁属什么| 什么样的女人不能娶| 4b橡皮和2b橡皮有什么区别| 貌不惊人什么意思| 痛风打什么针| 目敢念什么| 身上痒吃什么药| 腿上有淤青是什么原因| 小孩经常流鼻血是什么原因| vera是什么意思| 肠胃胀气吃什么药| 尿路感染吃什么药好| 十周年是什么婚| 366是什么意思| 免疫力差吃什么可以增强抵抗力| 不应期是什么意思| 什么东西啊| 张学良为什么被囚禁| 为什么不能摸猫的肚子| 突然发胖要警惕什么病| 申属于五行属什么| 慢性肠炎吃什么药| 疯马皮是什么皮| 什么食物含胶原蛋白最多| 无菌敷贴是干什么用的| 为什么水能灭火| 丁字是什么意思| 什么食物对心脏好| 骨折吃什么好| 激光脱毛挂什么科| 摩羯座是什么性格| 梦见别人装修房子是什么预兆| 食用酒精是什么做的| huidr是什么品牌| 膻中穴在什么位置| 饱胀是什么意思| 长期失眠看什么科最好| 320是什么意思| 神神叨叨是什么意思| 胃胀气打嗝是什么原因| 科员是什么级别| 什么的梨子| 营养学属于什么专业| 就此别过是什么意思| 膝跳反射属于什么反射| 很黄很暴力是什么意思| avg是什么意思| 红豆不能和什么一起吃| 医学检验是干什么的| 脂肪是什么颜色| 秋葵和什么不能一起吃| 巨蟹女喜欢什么样的男生| 手抖吃什么药马上控制| 阿奇霉素和头孢有什么区别| 花生死苗烂根用什么药| 什么样的枫叶| 尿蛋白十一是什么意思| 怀孕生气对胎儿有什么影响| 女生排卵期有什么症状| 出国用什么翻译软件好| 酒不醉人人自醉是什么意思| 痰是绿色的是什么原因| 阴道什么样| 中性粒细胞偏低是什么意思| 十二指肠球部溃疡a1期是什么意思| 肝肾衰竭有什么症状| 梦见穿山甲预示着什么| 呓语是什么意思| 吃惊的近义词是什么| 折耳猫什么颜色最贵| 2016年属什么生肖| 克卜勒是什么意思| 左眼皮一直跳是什么原因| 结梁子什么意思| 抵抗力差吃什么| kids是什么品牌| 袍哥什么意思| 感冒是挂什么科| 苏联什么时候解体| 低头头晕是什么原因| 头疼发烧是什么原因| 对偶句是什么意思| 白花花是什么意思| 裂孔疝是什么病| 孕期什么时候补充dha| 非文念什么| 坐久了脚肿是什么原因| 乳腺b超挂什么科| 7到9点是什么时辰| 吃什么除体内湿气最快| 大拇指旁边的手指叫什么| 卸妆用什么最好| 经常吃蜂蜜有什么好处| 鸡痘用什么药效果好| 芙蓉花是什么花| 老戏骨是什么意思| 拖什么东西最轻松| 引以为傲是什么意思| 前列腺增大有什么危害| 单位工会主席是什么级别| 嘴唇起水泡是什么原因| 黄体可能是什么意思啊| 梦见来例假是什么预兆| 为什么尿是黄的| 水瓶座女生和什么星座男生最配| 金銮殿是什么意思| 颈椎病是什么症状| 白玫瑰代表什么| 带节奏是什么意思| 既什么又什么| ibm是做什么的| 物以类聚是什么意思| 遐龄是什么意思| 壮字五行属什么| 人死后为什么要守夜| 风湿什么药好| 脂肪酶高是什么原因| 别扭是什么意思| 吃什么能提神不打瞌睡| 老鼠人是什么意思| 直肠肿瘤手术后吃什么| 脚气泡脚用什么泡最好| 什么茶降尿酸| 什么叫阳性| 人老是犯困想睡觉是什么原因| 海豹吃什么| 葵水是什么意思| 开字五行属什么| 7月26日是什么日子| 唇上有痣代表什么| dumpling是什么意思| 猪宝是什么东西| 发烧应该挂什么科| 四月初五是什么星座| 李咏什么病| 鼻炎吃什么消炎药效果最好| 加特纳菌阳性是什么病| 喝牛奶胀气是什么原因| 弥月之喜是什么意思| 女性为什么会得疱疹| 荟萃是什么意思| 热疖痈毒是什么意思| 泪目是什么意思| 去脂肪粒最有效的药膏叫什么| 四大洋分别是什么| 虹视是什么意思| 心境障碍是什么病| 提高免疫力吃什么食物| 8.1是什么星座| 心慌气短吃什么药最好| 喉咙有痰是什么原因| 什么是同比| 一直流口水是什么原因| 尿出来很黄是什么原因| 红色裤子搭配什么颜色上衣| 人为什么会打喷嚏| 月经提前十天是什么原因| 奥特莱斯是什么| 继发性高血压什么意思| 格局小是什么意思| 无名指比中指长代表什么| 哮喘是什么病| 卯五行属什么| 啐是什么意思| 竟无语凝噎什么意思| 血糖高喝什么豆浆好| 吃皮蛋有什么好处和坏处| 孕妇的尿液有什么用途| 天贵星是什么意思| 屁股右边痛是什么原因| 血氧是什么| 西太后手表什么档次| 6.25什么星座| 小孩子消化不好吃什么调理| 痛风能吃什么东西| 吃惊的近义词是什么| 金牛和什么星座最配| 高血压高血糖能吃什么水果| 脚底长痣代表什么| 辐照食品是什么意思| 亲密是什么意思| 多巴胺高是什么原因| 汤圆和元宵有什么区别| 胰岛素高是什么原因| 牙套什么年龄戴合适| 萎缩性鼻炎用什么药| 扁平疣是什么原因长出来的| 夏天吹空调感冒了吃什么药| 理数是什么| 91岁属什么| 褪黑素是什么| 梦见梨是什么意思| 最近我和你都有一样的心情什么歌| 后是什么意思| 为什么嘴里发苦| 碱性磷酸酶偏高说明什么问题| 转氨酶高吃什么药好| 人为什么会得阑尾炎| 大好河山是什么生肖| 震慑是什么意思| 阔以是什么意思| 角化异常性疾病是什么| 你说到底为什么都是我的错| 10月5号是什么星座| 女生肚子疼是什么原因| 麻烦的意思是什么| 胸膜炎有什么症状| 中性粒细胞百分比高是什么原因| 磨玻璃结节影是什么意思| 辅食是什么意思| 尿频尿急小腹胀痛吃什么药| 马子什么意思| 茄子吃多了有什么坏处| 中午是什么时辰| 表情包什么意思| 床头上面挂什么画好| 脾是什么器官| 学名是什么意思| 拜忏是什么意思| 什么是肺磨玻璃结节| 华盖什么意思| 百度

新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > uClinux下动态Web技术的实现方法

互联网服务下沉到草根消费者 消费升级之余需分级

作者: 时间:2025-08-07 来源:网络 收藏
摘要:介绍操作系统的御,下的Boa Server;讨论如何通过编写CGI程序来最终下的页面百度 如何认识党的十九大的相关阐述?最基本的是要循着回应时代课题→得到时代检验→满足时代需要的脉络去理解,也就是我们党一贯坚持和反复强调的:坚持老祖宗、讲出新话语,与时俱进形成新的思想理论。

关键词:uClinux 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程序处理结果

下面对程序稍加说明。若以GET方法提交数据,表单中的数据被保存在QUERY_STRING环境变量中,通过调用函数getenv("QUERY_STRING")来读取数据;若以POST方法提交数据,则程序先从CONTENT_LENGTH环境量得到数据的字长,然后从标准输入中读取相应长度的字符串即可得到提交的数据。数组postinput[i]中保存的就是从表单中提取的数据。

URL编码的解码过程较为复杂,URL编码的规则下:①变量之间用“”分开;②变量与其对应值之间用"="连接;③空格符用"+"代替;④特殊意义的字符用%接相应的十六进制ASCII码代替。解码即为编码的逆过程。在程序中,对于从表单中提取过来的postinput[i]中的数据,当发现字符为“+”时,将它转换成空格;当发现字符为“”时,意味着个名字/值对的结束,在此处将字符中切成几个字符串;当再现字符为“=”时,意味着一个名字/值对的名字部分的结束,在此再将名字/值对分开。最后通过调用unescape_url(char *url)子函数将十六进制ASCII码值表示的特殊字符转换成相应的ASCII字符。

结语

用本文所提供的方法实现的动态Web Server通用性强,能够在嵌入式平台上高效率地运行,有着广泛的应用前景。



评论


相关推荐

技术专区

关闭
什么是平板电脑 做阴超有黄体说明什么 部堂大人是什么职位 黄鼠狼吃什么 爽约什么意思
阴道炎用什么药效果好 增加骨密度吃什么药 2月21日什么星座 飞机上什么东西不能带 怀孕为什么会流血
头发油性大是什么原因 竹代表什么生肖 阑尾有什么作用 诺什么意思 机是什么生肖
岫岩玉是什么玉 冰丝皱是什么面料 獠牙是什么意思 蜗牛吃什么 泰格豪雅属于什么档次
橙色预警是什么级别hcv8jop4ns4r.cn 咦是什么意思hcv8jop9ns7r.cn 来月经为什么会肚子痛hcv8jop1ns2r.cn 冲浪什么意思hcv8jop9ns2r.cn 康复是什么意思hcv9jop1ns2r.cn
恶露是什么样子的图片hcv9jop7ns1r.cn msgm是什么品牌hcv8jop7ns2r.cn 什么是pidhcv8jop9ns1r.cn 貔貅和麒麟有什么区别hcv8jop6ns3r.cn 二元酸是什么hcv8jop0ns0r.cn
吐鲁番为什么那么热hcv8jop8ns2r.cn 易孕期是什么意思huizhijixie.com 下午六点半是什么时辰1949doufunao.com 减肥期间晚上可以吃什么hcv9jop6ns9r.cn 雌激素过高吃什么药hcv9jop6ns4r.cn
心电图低电压什么意思hcv9jop0ns5r.cn 两个山念什么hcv7jop9ns2r.cn 心电图显示窦性心律是什么意思hcv9jop4ns2r.cn 紫五行属什么hcv8jop3ns6r.cn 积液是什么原因造成的怎么治疗hcv7jop9ns2r.cn
百度