1、 1 目 录 内容摘要 1 关键词 1 1. 绪论. 2 1.1 Linux 系统的介绍 2 1.1.1 Linux 的诞生和发展 2 1.1.2 Linux 系统构架 2 1.2 嵌入式系统 . 2 1.2.1 嵌入式系统介绍 2 1.2.2 Web 服务器在嵌入式系统的发展 3 1.3 课题的提出 . 3 1.4 系统章节安排 . 3 2. Web 服务器系统设计. 4 2.1 系统指标 . 4 2.1.1 系统设计功能 4 2.1.2 关键技术指标 4 2.1.3 可行性分析 4 2.2 服务器模型选择 . 5 2.2.1 单循环服务器 5 2.2.2 简单并发服务器 5 2.2.3 高
2、级服务器 5 2.2.4 I/O 复用服务器 6 2.2.5 系统流程 7 3. Web 服务器模块实现. 9 3.1 服务器参数解析 . 9 3.1.1 文件配置 9 3.1.2 命令行解析. 10 3.2 CGI 支持模块 10 3.3 URI 解析分发功能模块. 11 3.4 LISTDIR 模块. 12 3.5 接口模块 12 3.5.1 动态动态加载库模块. 13 4. 服务器系统测试与结论 . 15 4.1 服务器测试 15 4.1.1 服务器运行环境. 15 4.1.2 各功能调试实现. 15 4.1.3 课题设计结论. 16 4.1.4 系统展望. 17 致谢. 18 参考文献
3、. 19 Abstract. 20 Key Words 20 1 构建嵌入式 Linux Web 动态服务器 【内容摘【内容摘要要】随着 Internet 和物联网的迅速发展、人们经济条件的改善,嵌入式设备的网络 化需求越来越显重要。嵌入式 Web 服务器的质量以及速度自然要求相当的高,单进程的服务 器很难满足人们高质量的生活要求。 本文主要研究和实现了基于 PC 机 Linux 系统下模拟采用线程池的模块化的嵌入式 Web 动 态服务器。可根据用户需求,通过服务器的配置文件进行模块以及服务器各种参数的动态配 置以及 Linux 下具备的命令行参数配置。不仅可正常显示静态网页还可通过 CGI(
4、Common Gateway Interface)动态生成页面,根据用户配置是否 listing directory。提供消息转发 机制,对于本服务器不支持的 python 以及 PHP 服务器将转发至本地进行处理,然后返回服务 器。同时还支持 Websocket 的功能。使用动态库加载模块的方式,方便其他开发人员进行二 次开发。 【关键词】【关键词】 :Linux;WEB;CGI;动态服务器;线程池 2 1. 绪论 随着物联网的发展,嵌入式设备的网络化愈发重要,嵌入式 Web 服务器的功能、速度质 量需要跟上网络化的发展。 目前大多数嵌入式系统还孤立于 Internet 之外, 但随着 In
5、ternet 的发展以及 Internet 技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与 Internet 的结合将代表着嵌入式技术的真正未来。目前 70%以上的服务器是运行于 Linux 系 统下, Linux 系统下的 Web 服务器成熟稳定发展。 1本章主要对 Linux 以及嵌入式作简要介绍。 1.1 Linux系统的介绍 1.1.1 Linux的诞生和发展 Linux 操作系统诞生于 1991 年,目前已经成为主流的操作系统之一。Linux 操作系统是 UNIX 的一种典型的克隆系统,在 Linux 诞生之后,借助于 Internet 网络,在全世界计算机 爱好者的共同努
6、力下,成为目前使用者最多的一种类似 UNIX 的操作系统。UNIX 操作系统于 1969 年在 Bell 实验室诞生,它是美国贝尔实验室的 Ken.Thmopson 和 Dennis Titchie 在 DEC PEP-7 小型计算机系统上可发的一种分时操作系统。虽然 Linux 操作系统不同于 UNIX 的源代 码,但在外观以及性能上 Linux 都与 UNIX 相同或者更好。2 1.1.2 Linux 系统构架 Linux 系统从应用角度来看,分为内核空间和用户空间两个部分。内核空间是 Linux 操作 系统的主要部分,但是只有内核的操作系统是不能完成用户任务的。丰富并且功能强大的应 用程序包是一个操作系统成功的必要条件。 Linux 的内核主要由 5 个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口、 进程间通信。Linux 是在 Internet 飞速发展的时期成长起来的,所以 Linux 支持多种网络接 口和协议。网络接口又分为网络协议和驱动程序,网络协议是一种网络传输的通信标准,而 网络驱动则是对硬件设备的驱动程序。Linux 支持的网络设备多种多样,几