基于嵌入式技术的Linux网络服务器设计与研究
来源:华拓科技网
应用科学 基于嵌入式技术的Linux网络服务器设计与研究 王学军 【摘(阜宁高等师范学校江苏盐城224000) 要】本文首先对Linux网络服务器进行了简单介绍,然后基于嵌入式技术整体采用ARM+Linux体系结构进行设计,最后对Linux网络服务器 Linux 软硬件配置进行了详细的探讨。 【关键词】嵌入式 网络服务器1.弓I言 嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。简 单的说就是系统的应用软件与系统的硬件一体化,类似与BIOS的工作方 I/O宴现 调试接口 16MB l 式。具有软件代码小,高度自动化,响应速度快等特点。特别适合于要求实 时的和多任务的体系。Linux网络服务器模型主要有两种:并发服务器和 循环服务器。所谓并发服务器就是在同一个时刻可以处理来自多个客户端 的请求:循环服务器是指服务器在同一时刻指可以响应一个客户端的请 求。而且对于TCP和UDP套接字,这两种服务器的实现方式也有不同的特 点。本文从硬件和软件两个方面详细阐述了嵌入式网络服务器实现中的一 些具体技术和方案。 匿 8路通信 4路遥控 SDRAMl 国 l6MB f FL^sHl _J以 时钟芯片 ICS8900A 触摸群 ,e’ DC/DC电路 切换I 匝霉 I 5V 开关电源 一 本地接¨II电力线接口 近程通信 ILl45接¨ 图2系统硬件结构框图 3.关键技术设计及实现 嵌入式ARM+Linux操作系统 底 硬件驱动 图l嵌入式Web系统图 2.目标方法及开发环境 本系统整体采用ARM+Linux体系结构。 嵌入式处理器是嵌入式系统的“硬核”,处理器的选择将对整个嵌入式 系统的成本和性能产生很大的影响。ARM处理器本身是32位设计,但也配 备l6位指令集。本系统选用以ARM920T为核心的¥3C2410微处理器,该处 理器集成了LCD控制器、USB Host、USB Slave、NAND控制器、中断控制、 本系统设计的嵌入式Linux网络服务器由两大部分构成:嵌入式动态 网络服务器、SOLite嵌入式数据库。 本系统采用的Boa是一个运行在类UNIX系统中的小型网络服务器开 源软件,其可执行程序总大小为76k,基本功能包括:和客户端建立连接, 接收客户提交的HTTP请求消息,将HTTP响应返回给客户,关闭连接等; CGI应用程序,处理来自客户端的协同工作数据,完成客户端与服务器的 动态交互,从而实现静态HTML网页无法实现的功能,如表单数据处理、数 据库查询等。SQLite是选用的一个嵌入式数据库管理系统,较小,运行时 占用内存不到250k,适合嵌入式使用。 . 功率控制、UART、等丰富的资源。 操作系统是嵌入式系统的“软核”。目前较为流行的嵌入式操作系统 有:VxWorks、WindowsCE、Linux等。相对其他操作系统,Linux存在许多现 实的优势,如广泛的硬件支持、良好的可伸缩性、极高的可靠性和开放的 API。从成本方面讲,免缴版税、免费或者廉价的软件组建以及免费的源代 码,都会在降低产品成本和提高产品灵活度上得到很大的优势。 从整体来讲,嵌入式系统同Pc机一样可分为硬件和软件两大部分。 本系统涉及到的系统硬件主要包括两个部分:嵌入式Web核心模块、 外围设备及扩展模快。嵌入式Web核心模块基于¥3C2410(ARM9)芯片.在 其上运行嵌入式Linux、Web Server及相应监控程序。外围设备及扩展模 块要完成相关设备地址译码、接口并实现相应扩展,以备系统扩展升级的 需要。其需要实现:网络接口、串行接口等,通过RS一232接口模块通信完成 与家电与其他联网设各的信息交换,通过CS8900A网络芯片接口完成嵌入 式Web与以太网的通信。 硬件结构框图如图2所示: 系统软件主要分为两层:底层驱动程序和上层应用程序。再分的细点, 可以分为四层:底层驱动:以太网、RS一232、Flash、LCD等外围设备驱动: 系统:嵌入式Linux内核;协议栈:TCP/IP协议、ARP协议、ICMP协议:应 用层:Web Server、系统监控模块及CGI程序。 丝示其堕.堡I鼗 卷 CGl及数据文件 体数据 I斑 数攒 fl支持cGl卜一 ̄JBOA l ”‘ 产 ̄t'htwJ、井 、k——一 接受数 、解碣 传 绐SfrVcr 操作系统及硬件平台 图3基于CGI的动态Web技术程序结构框图 其整体实现如下: (1)Linux系统的安装,内核编译与系统裁剪和移植。 即建立交叉编译环境、Bootloader的开发和移植、嵌入式Linux内核 的定制和移植(主要完成进程管理、进程间通信、内存管理、任务调度等基 本功能)、硬件驱动和应用程序开发。 (2)Web Server的移植。 即Boa服务器的移植,主要完成Boa程序的移植、Boa的配置、测试 Boa能否正常工作。 (3)Web页面的设计和CGI应用程序的设计。 即CGIC库的移植、html模版的制作、CGI程序的开发。 (4)数据文件系统采用嵌入式数据库SQLite,将其移植到嵌入式系统 中。 具体步骤实现如下: 主要软件环境:系统内核选用Linux 2.4.2O一8,bootloader选用 参考文献 [1] 程世言,王润华.PM695焦平面红外测温技术的应用与分析.上海电 力.2004年第4期:359—361 [3] 中华人民共和国电力行业标准《带电设备红外诊断技术应用导则》 DL/T 664—1999 [2] 张弓.红外测温基本原理及注意问题.计量天地.2008年9月上: 9—1O [4] 红外诊断技术在电气设备接头测温中的应用.江苏省电机工程学会 输配电及电力系统论文集.2004年第l3期:55—56■ 一33— 应用科学 u—boot 1.0.0,交叉编译选用gcc 2.95.2。 上电开发板,从Linux系统下的超级终端Minicom中设置开发版ip 地址为局域网地址,如192.168.0.10。在开发版的文件系统中新建 /usr/l0cal/boa/b0a中去。最后在目录/usr/1oca1/boa/boa下输入命 令./boa—c/usr/l0ca1/boa/boa&,把当前任务在后台运行。如果成功, 用ps命令在Minicom下可以看到一个boa进程在运行。在局域网中的任 何一台电脑的IE地址栏输入目标版IP地址,会看到boa的默认网页。 3.1嵌入式网络服务器Boa的移植和运行 系统选用boa一0.94.13版本,由于是在嵌入式Powerpc核上运行程 序,需要在~个交叉编译的环境中编译该程序。所谓交叉编译就是在平台 A上生成另一个平台B的可执行代码。在此,平台A是Intel体系结构的 平台,平台B是嵌入式Powerpc体系结构。开发主机即平台A的操作系统 为Redhat9.0版本的Linux操作系统,平台B即目标版安装的是经过内核 剪裁的嵌入式Linux 2.4.20版本。 (1)首先进行boa包的移植,用tar命令解压包文件,找到在相应目录 src下生成makefile文件,用vi命令修改makefile文件里的CC=gcc改 为CC=arm-1inux—gcc,再将CPP=gcc—E改为CPP=arm一1inux—gcc—E,存盘 退出,再用make工具编译生成boa的可执行程序,约60k。在src目录下 会生成一个boa的可执行文件。 (2)Boa的配置。新建目录放入boa.conf配置文件,在运行boa之前, 还需对其进行修改。以下几处需要修改: (a)}}Port:The port Boa runs on.The defaul t port for http servers iS 80. # If it iS less than 1024.started as root. the server must be Port 80 可以修改Port号,改变提供Web服务的端口 (b)#User:The name or UID the server should run as #Group:The group name or GID the server should 3.2 SQLite嵌入式数据库及动态网页的实现 本设计中SOLite的应用是如何应用CGI程序建立、访问、更新 SQLite数据库的过程。分三部实现: (1)SOlite在目标版的移植。下载SOlite包解压,完成选项设置,修 改文件添加makefile,按照包里自带说明把SQ1ite作为一个用户应用程 序,做成一个Shell。设置交叉编译环境,编译安装,生成库文件,下载到目 标版。 (2)建立一个后端数据库。 (3)前端通过html文档制作一个Web页面及内建表单。 (4)编写相应的CGI程序实现数据库链接部分,即如何在C6I程序中 利用SOLite提供的API函数来操作数据库。 4.结束语 嵌入式系统是信息产业走向新知识经济时代的最重要的经济增长点 之一,对中国的信息产业来说充满了机遇和挑战,嵌入式网络服务器是当 今研究的热点。本设计的方案采用嵌入式Linux做平台,通信协议采用 TCP/IP,硬件采用ARM9开发版。嵌入式网络服务器可以运用得非常广泛, 具有非常好的前景。 rUn as. User nobody Group nogroup 参考文献 [1] 凌莉,等。智能家居控制系统的远程通讯技术[J]。建筑技术开发,31 (11):92—94。 修改用户和组用户信息 (c)#documents. [2] 李磊,等。嵌入式网络服务器软件的设计与实现。计算机工程与设计, 2003,(1 0)。 DocumentRoot:The root directory of the HTML [3] 田泽。嵌入式系统开发与应用教程。北京航空航天大学出版社, 2005,3。 #Comment out to disable server non user files. D0cumentR0ot /var/www 设置HT儿文件的存放根目录 (d)ScriptAlias/cgi—bin//usr/lib/cgi—bin/ 以上是存放CGI网关程序的主目录 (3)测试boa能否正常工作,静态html文件能否访问,CGI脚本能否 运行,可采用NFS方式测试。 [4] 张恒,等。基于嵌入式Web Server的智能家居控制器设计。 现代计算机,2006,总第237期:85—87。 [5] 李驹光,等。嵌入式Linux系统开发详解——基于EP93XX系列ARM。 清华大学出版社,2006。一 (上接第96页)一部分 从而使学生能够稳定于现有工作并有所发展。 (2)已经有就业意向,但还没有岗位的学生。 (3)未有就业意向的学生 有一部分学生属于有就业意向,但迟迟拿不定主意,不知为何是好的。 这种情况可以理解,由于刚刚走出大学校门的毕业生,价值观还有待完善, 面临大学毕业,就业压力,生活压力同时来袭,部分学生会一直没有就 业意向。这部分学生我们也用两分法加以分类,做分类指导 第一类:想就业却不知道如何就业的学生 “大学生在探寻价值观的时候由于生活经历的局限,比较容易体会,认同工 具性价值,而事实上,往往正是那些终极性价值会长期影响我们的职业感 觉。’在这里我们对此部分的学生也分为两类来有正对性的做职业指导和 职业生涯规划。 第一类:有单一就业意向 ‘ 面临就业压力此类学生一方面急于就业,一方面由于准备不足,不知 如何就业。此类学生需要就业指导教师能够认真讲授一些就业的方法和技 巧。比如:个人简历的制作,自荐信的书写技巧,面试的技巧等等。在教会学 生为何使用这些方法后,鼓励学生多求职,以再实践中积累经验,完善自 此类学生的特点是,有一定的就业意向,并且该意向单纯针对于某一 特定行业或者是某一特定岗位。学生由于不能正确判断该类行业或岗位的 价值取向。故迟迟不能形成就业。对于此类学生,需要就业指导教师指导学 生做一定的市场调查,分析清楚该行业或岗位发展前景并结合调查为学生 做一定的职业生涯规划,给学生一明确可测量的生涯目标,促使学生认清 行业和岗位的终极性价值,以便让学生顺利就业。 第二类:有多重就业的学生 此类学生的特点是,有多个就业意向,并且每个意向所涉及的行业或 岗位不尽相同。学生由于急于找工作,以至于“有病乱投医”,分不清楚自己 究竟要为何就业,就什么业。对于此类学生,需要就业指导教师首先应对学 生做心理测试,可以用迈尔斯?布里格斯个性类型(简称MBTI)做测试并辅 我,并最终达到就业的目的。 第二类:不想就业的学生 此类学生我们称之为“就业恐惧症”。学生由于多种原因而惧怕就业。 此类学生要求就业指导教师能够正确辅导学生做心理治疗,也可指导学生 采用继续升学或者深造的方式来缓解就业心里上的压力。并最终达到就业 目的。 综上所述,本文主要分析为何用“两分法”来有针对性的指导高职院校 学生就业。但正如一位大师所说:“对一个人最好的职业指导方法就是,直 接问问他想做什么”。 当前,高校毕业生正逐年增多,高职院校的专业设置面对日益激烈的 人才竞争,高校只有积极响应社会上人才的需求,调整专业设置,才能为社 会输送适应需求的社会主义建设者。只有确立以市场需求为导向的就业工 作指导思想,告诉学生社会上的人才需要,紧紧围绕学生的就、J 需求开展 就业指导工作,才能促进毕业生更好的就业。● 以霍兰德职业类型测试。针对学生所测得的性格类型和职业倾向,帮助学 生做职业生涯规划,并最终达到就业。 ——34——