首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式设备web服务器比较(4)

嵌入式设备web服务器比较(4)

Apache最新的apache版本是httpd-2.2.4.tar,6.07MB,解压后为27.2MB,在嵌入式web服务器中很少使用,在网上搜索看到有人在vxwork上用过apache,在其它方面没有,我认为,goahead、appweb具有丰富的功能,没有使用apache的必要。另一个原因是因为apache是一个多进程web服务器,使用的内存很多。
由于apache的prefork工作模式有关。每个apache进程只能同时服务于一个http连接。这种模式好处在于每个进程不互相干扰,稳定性好;缺点也建立在优点之上,就是占用资源多,即使每个进程只使用2M内存(如果使用了php,这点内存根本不够),100的并发连接就用掉200M的内存。
开发语言和开发工具现在的嵌入式linux中CGI程序主要使用C语言。对于编写C语言的CGI程序,可以编写好程序之后,在linux操作系统下编译,用针对硬件平台的linux的交叉编译工具编译就可以,写的html网页界面在记事本写即可。我以前写的CGI程序就是在此环境下写的。这也是最普遍的开发方法。
对于用C语言编写CGI程序还可以使用CSP/eybuild提供的平台库及其开发套件,它可以将CGI程序嵌入式到网页中,可以提高开发效率。传统用C做CGI的方法是直接使用printf() 等标准I/O函数输出HTML代码,这样不但使得C程序和HTML程序交织的混乱不堪,还使得页面输出的流程控制变得非常复杂。CSP与之不同,它充分吸取了ASP/JSP/PHP等以HTML/ XML为模板嵌入脚本语言优点,并充分融合C语言的语言特性。使得CSP的开发更快速、更高效,同时还大大提了最终代码的可读性和维护性。 CSP设计的最原始的初衷,就是要为嵌入式开发定制的一套类似 ASP/JSP/PHP的C语言开发工具。针对设备WEB开发CSP提供了丰富的平台库和开发工具,它们为设备系统的WEB交叉开发和移植提供了有力的支持。通过交叉开发,可以在其它硬功件平台完全未准完毕的情况下进行高层软件的开发。这不仅能为产品开发有效地节约软硬件资源,还为WEB程序提供简单有效地调试工具。
但缺点是,CSP/eybuild不是一个开源的项目,如果你是个人使用或出于学习、研究目的你可以从eybuild的官方站点http://www.eybuild.com 免费下载,或发邮件到 eybuild@hotmail.com 免费索取。它的站点上可以下载针对x86、arm920T的CSP/eybuild开发平台,其它平台需要向网站上定购。如果你想在你的嵌入式设备的开发板上试用或出于学习和研究目的,你也可把您目标板及编译环境的详细资料发给eybuild@hotmail.com,请求为你的目标板单独制作一份交叉编译开发的CSP/eybuild平台。如果你想你的商用产品或项目中使用CSP/eybuild,你必须在CSP/eybuild的商用授权后才可使用。商用授权后您将可以得到很好的技术支持和技术培训。关于商用授权的详细流程,可邮件至eybuild@hotmail.com 垂询。
用C语言编写CGI与其它语言编写CGI的比较:
C语言简洁紧凑,使用方便、灵活,对程序的语法结构要求不是很严,这就使得编程
人员在编程时具有很大的灵活性,可以设计出自己风格的程序。不像UNIX SHELL、Perl和TCL,C语言是一种编译语言,源程序代码要被系统的续译器翻译成机器能直接执行的二进制代码,因此用C语言编写的CGI程序的运行速度要比用解释性语言编写的程序快。使用编泽语言的另一个好处是即使CGI执行程序陷入黑客之手,他们也无法像分析用解释性语言编写的CGI程序那样找到程序中的漏洞。由于C语言最初是针对系统设计的,这使得C语言的字符串处理能力比较差,如果CGI程序需要对字符串进行一些复杂的操作,用C诺言实现起来将比较麻烦,代码量也较多。现在网上用C语言编写的CGI程序仅次于Perl(Perl编写程序简单方便)。

CGI与JSP的比较:
Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。详细内容见备注。JSP是强于CGI,这也是现在CGI技术的使用没有JSP使用多的原因。但现在嵌入式web服务器端程序开发,还是CGI较多。由于使用JSP技术,在嵌入式web服务器开发中很少使用,在网上没有查到关于在嵌入式web服务器上应用的有关内容。
要实现阅读器的lmt,所需的CGI代码量估计不会很多,关键在于调试。
结论    根据上面的分析,考虑到使用范围宽广程度,在小型服务器、不要求太强功能,推荐选用boa、thttpd,其实它们足可以满足大多数情况下的需求,也是使用最广、可参考最多的嵌入式web服务器。如果要求强大的功能,支持javastript等,推荐选用goahead、appweb。
继承事业,薪火相传
返回列表