1 概述

随着互联网应用的普及,越来越多的信息化产品需要接入互联网通过Web页面进行远程访问。嵌入式Web系统提供了一种经济、实用的互联网嵌入式接入方案。这里结合一种嵌入式Web Server BOA来介绍嵌入式Linux系统下的CGI程序设计技术。

2 Web Server BOA的实现与配置

2.1 uClinux下,主要有三个Web Server:HTTPD、THTTPD和BOA。

HTTPD 是最简单的一个Web Server,它的功能最弱,不支持认证,不支持CGI。THTTPD和BOA都支持认证、CGI等,功能都比较全。BOA是一个单任务的小型HTTP服 务器,源代码开放、性能优秀,特别适合应用在嵌入式系统中。目前的uClinux的代码中已经包含BOA的源代码。在uClinux下实现BOA,只需要 对BOA做一些配置和修改。以下是配置的过程。

(1)编译BOA到内核

首先,需要把BOA编译到内核,即执行make menuconfig,在应用程序选单中network application项下面选择boa。该操作需要重新编译内核。

(2)编制配置文件boa.conf

在Linux操作系统下,应用程序的配置都是以配置文件的形式提供的,一般都是放在目标板/etc/目录下或者/etc/config目录下。但boa的配置文件boa.cont一般都旋转在目标板/home/httpd/目录下。

例如,一个典型的boa.conf文件格式如下:

ServerName Samsung-ARM

DocumentRoot/home/httpd

ScriptAlias/cgi-bin/home/httpd/cgi-bin/

ScriptAlias/index.html/home/httpd/index.html

它指定了HTML页面必须放到/home/httpd目录下,cgi外部扩展程序必须放到/home/httpd/cgi-bin目录下。

(3)编译烧写内核

重 新编译内核后,通过烧写工具烧写内核,就可以在PC上通过IE浏览器访问开发板上的Web Server。例如,输入开发板的IP地址http://192.168.0.101,即可访问到自己做的网页index.html了。并且,通过编写 CGI外部扩展程序,可以实现动态Web技术,下面将详细介绍。

2.2 具有MMU平台的Linux下B0A的实现与配置

对于有MMU(内存管理单元)的平台,如armlinux和ppclinux,可以到网上下载一个主流版本的boa发行包。因为是运行在目标系统,所以要用交叉编译工具编译,即需要修改boa/src/Makefile里面的编译器。例如:

CC=/LinuxPPC/CDK/bin/powerpc-linux-gcc

CPP=/LinuxPPC/CDK/bin/powerpc-linux-g++

然后直接在boa/src目录下执行make,即可生成BOA可执行文件;将其编译入内核,并烧写到存储设备,就可以实现访问BOA服务器。

3 CGI程序设计技术

CGI(Common Gateway Interface)是外部应用扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据, 从而完成客户端与服务器的交互操作。而CGI规范就定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。通 过CGI可以提供许多静态的HTML网页无法实现的功能,比如搜索引擎、基于Web的数据库访问等等。

3.1 工作原理

嵌入式linux系统程序设计,嵌入式Linux操作系统CGI程序设计技术相关推荐

  1. 深度实践嵌入式linux系,深度实践嵌入式Linux系统移植 完整pdf_操作系统教程_源雷技术空间...

    资源名称:深度实践嵌入式Linux系统移植 完整pdf 第1章嵌入式系统架构与移植环境搭建2 第2章u-boot工程与编译系统14 第3章u-boot启动流程分析41 第4章ARM9/S3C2440 ...

  2. (转)Windows系统、Linux系统 和 Mac OS操作系统 历史由来 与 区别?

    目录 1 UNIX 由来 2 Linux 由来 3 Windows与Linux的主要区别 4 关于Linux的一些疑惑 参考资料 目前常见的三大操作系统:Windows系统.Linux系统 和 Mac ...

  3. linux系统的笔记本,Linux:开源的免费操作系统_笔记本电脑_笔记本评测-中关村在线...

    ■linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议 ...

  4. 在Linux系统下安装更换操作系统

    我的当前的系统是Linux(版本centos6.5),之前是通过软通牒(UltraISO)在Windows系统下制作了这个Linux系统的U盘启动盘,然而在Linux系统下通过系统本身集成的dd命令, ...

  5. Linux系统之部署Linux管理面板1Panel

    Linux系统之部署Linux管理面板1Panel 一.1Panel介绍 1.1Panel简介 2.1Panel特点 二.本地环境规划 1.本此实践目的 2.本地环境规划 三.检查本地环境 1.检查操 ...

  6. 连接linux系统的mysql,Linux系统MySQL开启远程连接

    1.远程连接上Linux系统,确保Linux系统已经安装上了MySQL数据库.登陆数据库.mysql -uroot -p(密码). 2.创建用户用来远程连接 GRANT ALL PRIVILEGES ...

  7. imx6ull移植Linux系统第二篇——Linux内核的移植

    imx6ull移植Linux系统第二篇--Linux内核的移植 花了大概两周的时间,把Linux的移植认真学了一遍,期间踩了不少坑,花费了不少时间去解决各种奇奇怪怪的问题,最终完成了uboot.系统镜 ...

  8. Alpine linux 小内存版,Alpine Linux系统-Alpine Linux系统【轻量级Linux】下载v3.11.0 最新版-西西软件下载...

    Alpine Linux系统[轻量级Linux],Alpine Linux其实就是一个清凉版的Linux系统,通过牺牲一些不常用的功能和特性来达到更加轻巧的体积以及更快的响应速度.Alpine Lin ...

  9. linux系统清理内存,Linux实验室:五个清理磁盘空间小妙招

    1删除安装包:清空系统APT缓存 玩儿电脑最怕的就是卡慢,那么电脑卡慢应该怎么解决呢?对于windows系统来说,你可能有各种免费的杀毒软件.全家桶帮你清空系统空间,那么Linux系统怎么办?今天笔者 ...

最新文章

  1. go nocopy 不可复制的实现
  2. 【sklearn学习】降维算法PCA和SVD
  3. 什么是 RedCap?一文详解!
  4. jQuery常见的50种用法
  5. 【elasticsearch】elasticsearch 熔断器
  6. 国内现在web前端高手薪资都拿多少?
  7. 限量放送,2018全球智能驾驶峰会「免费拿票攻略」接住了!
  8. 计算机组成原理学习的一些感悟
  9. Ali-Tomcat 安装
  10. 个人计算机好用的pdf软件,win10好用的pdf阅读器推荐 推荐几款好用的pdf阅读器
  11. Eastfax使用技巧
  12. 编译原理 CS-143(更新至week4)
  13. 关于图片大小超过div盒子的讨论——补充
  14. phonegap-百度社会化分享-andriod插件-v2.0
  15. 视觉SLAM面试题汇总(三)
  16. [转帖]同事推荐的的aira2
  17. android打地鼠设计报告,android开发中利用handler制作一个打地鼠小游戏
  18. 小爱音箱怎么装app_小爱音箱app下载-小爱音箱手机版 v2.2.2 - 安下载
  19. 服务器远程桌面 蓝屏,远程桌面连接windows server 2003蓝屏
  20. python列表嵌套字典取值_Python零基础快速入门(五):列表和字典

热门文章

  1. hdu 5687 Problem C trie树
  2. hdu 5687 Problem C 字典树
  3. (转)(整理)人脸数据库
  4. 【XBXX】Python中字符串排序问题
  5. 摄影入门-之四-镜头篇
  6. 在keil中添加stc系列单片机型号(模型)方法
  7. springboot ElasticSearch配置自定义转换器ElasticsearchCustomConversions
  8. Nat Genet | 湖南农业大学群体基因组学研究揭示古老芥菜身世之谜、百变之源
  9. Python 利用xlrd读取Excel文件
  10. python 读取jpg文件是yuv_python怎么使用opencv读取的图片数据送入模型?