1、 本 科 毕 业 论 文 嵌入式 Linux 后台管理 WEB GUI 的设计与实现 Design and Realization of Embedded Linux WEB GUI 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 校外 指导教师: 校内 指导教师: 年 月I 摘 要 近年来,随着计算机技术、通信技术的飞速发展,特别是互联网的迅速普及和 3C(计算机、通信、消费电子 )合一的加速,微型化和专业化成为发展的新趋势,嵌入式产品成为信息产业的主流。而 对 嵌入式 Linux 设备系统往往通过 WEB 服务进行集中管理,比喻常见路由器、拨号上网的 Mod
2、em、 IP 电话机等等。 因此,研究开发这样一个基于 WEB的嵌入式 Linux 后台管理系统就具有一定的通用性和重要的实用价值。 本文分析了当前国内外嵌入式 Linux 的发展和应用现状,着重描述了从需求 分析、总体设计,到详细设计,再到系统实现的一个后台管理软件开发的全过程。 在 总体设计 部分, 依据系统设计的目标和原则,本着系统需求的分析结构,对本系统的技术、功能、逻辑、数据、安全等方面进行架构设计。阐述过程中结合了相应的图示、表格、数据,达到全面分析系统的各个模块,为具体的系统开发提供了方向。 在详细设计部分,本文对该系统的后台 数据库 管理部分、 web 前段展示部分,以及系统模
3、块设计部分作了详细说明,并规划出了系统的 模块和模块 之间的关系,得到了一个大致的系统技术原型。在这一部分,本文还对 CGI 等技术热点和难点做 了重点解释。 在 系统实现部分 ,本文对系统中各种技术要求的具体实现做了详细介绍,并辅以代码说明,同时还简单介绍了相关技术类库、接口函数的注册和使用。 关键词 :嵌入式 Linux ; SQLite; ARM-Linux 平台 ; GoAhead 服务器 II Abstract In recent years, with the development of computer and communication technologies, espec
4、ially the rapidly growing popularity of the Internet and the accelerated three-in-one of the 3C(computer, communications, consumer electronics), miniaturization and specialization become the new developing trends, while embedded products are mainstream of the information industry. In the ordinary, d
5、evices for embedded Linux are centralized management by WEB services. They are commonly compared to routers, dial-up modem, IP telephone and so on. Therefore, the research and development of a WEB-based embedded Linux system take on a more practical value and a certain degree of versatility. This ar
6、ticle analyzes embedded Linux application and development currently in domestic and abroad. It focuses on description of the whole process of software development, including the total design, the specific design and the system implementation. In the total design, based on the objectives and principl
7、es of system design and the need analysis of the system, make a design of the architecture about technology, function, logic, data and security. During the discourse process, the article combined the corresponding graphs, forms, data, in order to achieve a comprehensive analysis of the every system
8、modules. The part provides the specific direction for system development. In the specific design, it illustrates in detail in the part of database management, the previous web display, as well as the part of the system module design and the correlation between them, Moreover, it gets a general syste
9、m technology prototype. In this section, it also specially provides an explanation about the hot and difficult technologies such as CGI. In the system implementation, this article explains in detail how to implement as various technical requirements of the system, and supplemented by code. Also intr
10、oduce the corresponding class library, the register and the usage of the API functions. Key words: Embedded Linux; SQLite; ARM-Linux platform; GoAhead Web Server III 目 录 第 1 章 绪论 . 1 1.1 系统开发背景及意义 . 1 1.1.1 嵌入式 Linux 介绍 . 1 1.1.2 课题研究的意义 . 2 1.2 国内外嵌入式 GUI 的研究开发现状 . 2 1.3 项目的主要工作 . 5 1.4 论文的组织结构 . 6
11、 第 2 章 系统总体设计 . 7 2.1 系统设计目标和原则 . 7 2.2 系统架构设计 . 7 2.2.1 系统技术架构总述 . 7 2.2.2 系统功能架构设计 . 9 2.2.3 系统 逻辑架构设计 . 10 2.2.4 系统数据架构设计 .11 2.2.5 系统安全架构设计 . 13 2.3 本章小结 . 13 第 3 章 系统详细设计 . 15 3.1 后台管理总体设计 . 15 3.2 数据库 . 16 3.2.1 SQLite 简介 . 16 3.2.2 数据库设计要求与原则 . 18 3.2.3 数据库整体结构 . 19 3.2.4 数据库操作 . 22 3.3 管理界面设
12、计 . 24 3.3.1 登录界面设计 . 24 3.3.2 子窗体中基本操作功能设计 . 26 3.3.3 数据获取和更新的实现 . 31 3.4 本章小结 . 32 第 4 章 结束语 . 35 IV Contents Chapter 1 Introduction 1 1.1 The Background and the Significance.1 1.1.1 Introduction of Project. .1 1.1.2 Significance of Project . 2 1.2 The development of Embedded GUI research. 2 1.3 T
13、he Main Work 5 1.4 The structure of thesis 6 Chapter 2 System Design. 7 2.1 The Objective and the Principle . 7 2.2 System Architecture Design. 7 2.2.1 Technology Architecture Overview. 7 2.2.2 Function Architecture Design 9 2.2.3 Logic Architecture Design.1 8 2.2.4 Data Architecture Design.1 1 2.2.
14、5 Security Architecture Design.1 3 2.3 Summary .1 3 Chapter 3 The Detailed Design of the System.1 4 3.1 Overall Design.1 4 3.2 Database Design.1 5 3.2.1 Sqlite3 Overview.1 5 3.2.2 The demand and the principle of Database Design.1 7 3.2.3 Overall Architecture of Database.1 8 3.2.4 Database Connection
15、2 1 3.3 Interface Design.2 2 3.3.1 The Implement of Login Interface.2 2 3.3.2 Basic Operation in the sub-form Design.2 5 3.3.3 The Implement of Data get and update3 0 3.4 Summary.3 1 Chapter 4 Tag.3 2 第 1 章 绪论 1 第 1章 绪论 1.1 系统开发背景及意义 1.1.1 嵌入式 Linux 介绍 在 IT 业,如果要问当今最热门的话题是什么,从事硬件开发的人会毫不犹豫地回答:信息家电;从事
16、软件开发的人同样也会毫不犹豫地回答: Linux。事实上,当人们在谈论 PDA、手持电脑、机顶盒时,后 PC 时代就到来了,或者说信息家电时代到来了。而这正源于 Linux 的加入,才使得信息家电变得如此火爆 。 Linux是一种将源代码完全开发的 Unix类操作系统。它的最大特点是价格低廉、安全性好、稳定,任何人都可以修改它,或者开发自己的产品。 Linux 系统式是可以定制的,系统内核最小时 目前只有 134KB。嵌入式 Linux(Embedded Linux)是指对Linux 经过裁剪小型化后,可固化在存储器或单片机中,应用于特定嵌入式场合的专用 Linux 操作系统 。与其它嵌入式操
17、作系统 比较, Linux 优势 详见表 1-1。 表 1-1 嵌入式 Linux 操作系统与专用嵌入式实时操作系统的对比 专用嵌入式实时操作系统 ( VXWORKS ECOS ) 嵌入式 Linux 操作系统 版权费 每生产一件产品交纳一份版权税 免费 购买费用 数十万元( RMB) 免费 技术支持 由开发商度假提供有限技术支持 全世 界的自由软件开发者提供支持 网络特性 另加数十万元( RMB)购买 免费且性能优异 软件移植 难(因为是封闭系统) 易,代码开放(有许多应用软件 项目组织 支持) 应用产品开发周期 长,因为可参考的代码有限 短,因有许多开放的代码可参考移植 实时性能 好 须改
18、进,可用 PT_Linux 等模块弥补 稳定性 较好 较好,但在高性能系统中须改进 嵌入式 LINUX 后台管理 WEB GUI 的设计与实现 2 正因其 高效、低成本、高可靠性、丰富的代码以及应用程序可扩展性、可移植性等一系列优点, 嵌入式系统在传统工业控制和商业领域已经具有广泛的应用空间,如智能工 控设备、 POS/ATM 机、 IC 卡等;在家庭领域更具有广泛的应用潜力,如机顶盒、数字电视、 WebTV、网络冰箱、网络空调、家庭自动化系统等众多消费类和医疗保健类电子设备等;此外,还有在自动售货机、多媒体手机、袖珍电脑、掌上电脑、车载导航器、移动计算设备 等方面应用,将极大地推进嵌入式技术
19、深入到生活和工作的方方面面 。 基于 Linux 系统具有开源( Open Source)、网络支持和跨平台性 的优良特性,使得 Linux 成为最适合嵌入式开发的操作系统,嵌入式领域将是 Linux 最大的发展空间。因此,嵌入式 Linux 有着巨大的市场潜力,随着 Linux 系统越来越成熟, 嵌入式 Linux 将得到更普遍的应用, 嵌入式产品也将更 基于多元化 。 1.1.2 课题研究的意义 随着后 PC 时代的到来,嵌入式系统的性能有了大幅度的提高,应用范围越来越广,当初一些简单的人机交互接口已经无法满足人们的要求。而以此同时,在台式PC机上图形交互界面早已普及并成熟,于是在嵌入式系
20、统中也逐渐出现了图形用户界面( Graphic User Interface, GUI) ,特别是在一些消费类产品中。嵌入式系统中的 GUI 就是在嵌入式系统 中为特定的硬件设备或环境而设计的图形用户界面系统。嵌入式系统中的 GUI 应该有如下特点: 占用的存储空间以及运行时占用资源少;运行速度以及响应速度快;可靠性高;便于移植和定制。 课题就在于 开发 一个这样的嵌入式系统 GUI,不同之处在于是 基于 Web, 通过网络 HTTP 协议和 CGI 协议访问 ARM Linux 系统对其进行后台管理 , 这样就 能够对嵌入式 Linux 系统的相关配置进行查看或更改,通过 web 这种可视化
21、界面实现后台管理的便捷性。 1.2 国内外 嵌入式 GUI 的 研究开发现状 随着嵌入式行业分工 的细化,出现了专门的公司开发 Linux 下的 GUI 并给其他公司授权,从而缩短了嵌入式系统的开发周期。以下是几种比较成熟的嵌入式 GUI 研究: 第 1 章 绪论 3 1 Microwindows Microwindows 是由美国 CenturySoftware 公司开发的开放源码的嵌入式 GUI 项目。它不需要其他图形系统的支持,可以充分利用 Linux 提供的 Framebuffer 机制来进行图形显示。同时在底层提供了对多种芯片的支持,并基本上用 C语言实现,因此移植性很强。 Micr
22、owindows 是基于分层式设计的,它允许不同的层可以被重新设计 以满足系统实现的需要,目前总共分成三层。最底层是屏幕、鼠标或触摸屏和键盘的驱动程序,拥有实现系统的显示功能以及满足用户特有的输入需求。中间层实现了一个可移植的图形引擎,以提供对划线、填充、剪切和着色的支持。在最上层,则提供了多种 API 给应用程序设计者。 由于 Microwindows 为了与 XWindow 的兼容,它采用了传统的基于 UNIXsocket 的客户端 /服务器结构。此时,客户端的画图、窗口建立等操作都是通过套接字与服务器通信。在这种情况下,系统就变得非常依赖于 UNIXsocket,而 UNIXsocket
23、 的 传递都需要通过内核,这样在一些对实时性要求比较高的系统里就不太有利。而且 Microwindows基本上用 C 语言实现的,虽然增强了可移植性,但也同样导致了系统的运行效率不高。同时 Microwindows 的开发工具 FLANX 也还够成熟,有待进一步提高。 2 MiniGUI MiniGUI 是我国国内自主开发、比较成熟的一个图形用户界面系统,面向基于Linux 的实时嵌入式系统,使用现有成熟的图形引擎( SV2GALib/LibGGI),采用类似WinCE 的线程机制,集成了多字体和多字符集,支持硬件加速能力,充分使用显 示内存。 从整体来看, MiniGUI 也是属于分层结构设
24、计( 见图 1-1)。在最底层, GAL 和 IAL提供了 Linux 控制台和底层图形接口的支持以及输入设备比如鼠标、键盘等的驱动,PThread 则是提供了内核级线程支持的函数库;中间层 MiniGUIKernel 则包括了窗口系统的各个模块, MiniGUI 本身是运行在多线程模式下,它的各个模块都是单独的线程运行,同时它也利用线程来实现多窗口;最上层,则是提供给各种应用程序使用的 API函数。 MiniGUI 中利用线程之间的同步操作,实现了客户线程和服务线程之间的微客户端 /服务器结构,因为它的客户和服务器是同一进程的两个不同线程。它的核心实现主要体现在消息队列数据结构的使用上。 多
25、线程有一定得好处,但弱点则在于不同的线程共享了同一地址空间,因此,客嵌入式 LINUX 后台管理 WEB GUI 的设计与实现 4 户线程可能会破坏系统服务器线程的数据,导致系统健壮性不够健全。虽然目前的MiniGUILite版本抛弃 LinuxThread库而改用微客户端 /服务器模式提供多进程的支持,但是仍然存在着对多进程支持弱、图形功能不完善、图形功能不完善、窗口剪切不完备等问题。 图 1-1 MiniGUI 体系结构图 3 QT/Embedded 和 Qtopia QT/Embedded 是著名的 QT 库开发商 TrollTech 开发的基于 framebuffer、面向嵌入式系统的
26、 QT 版本。它的特点主要有界面美观、色彩配比好,使用与 QT/Windows 和QT/X11 完全一致的 API 接口,许多基于 QT 的程序可以非常方便地移植到嵌入式系统;同时它具有丰富的模块,用户可以根据需要选择 QT/Embedded 的特性集合。 Qtopia 是TrollTech专门为嵌入式 Linux设备所定制终端用户平台,它包括了 Qtopia库和 Qtopia的服务器及客户端应用程序。 QT/Embedded 和 Qtopia 的结构 如图 1-2 所示。 QT/Embedded 实现了对下层输入设备的驱动和底层图形接口以及各基类和 API。 Qtopia 也是以客户 /服务
27、器的方式,通过消息机制来管理各种应用程序。 QT 的资源相当丰富,基于 ATAPI 开发的应用程序相当多,想 KDE 这种应用范围极广的 GUI 也是使用 QTAPI 开发出来的;而且 OPIE 组织也开发并改进了许多专门基于 QT/Embedded 上的 Qtopia 应用程序及函数库。 不过 T/Embedded 对于系统的资源要求非常高,需要在较大的存储空间和运行空间上才可以运行;而且它 是基于 C+来实现的,而这种 C+接口对于嵌入式系统中的某些应用来说就显得比较臃肿。 第 1 章 绪论 5 图 1-2 QT/Embedded 和 Qtopia 的结构 1.3 项目 的主要工作 项目
28、开发工作的目标就是基于 ARM Linux 开发平台,开发一个基于 web 图形界面的嵌入式 Linux 后台管理系统,并使用 GoForm 技术实现与用户的交互,用于显示嵌入式Linux 系统 用户信息、网络状态、系统时区等等。根据一般系统的配置需要,目标管理系统的主要功能包括用户信息和权限管理,系统的重新启动,获取系统的局域网 IP、子网掩码等网络信息 ,查看或重置网络配置、 SMTP 配置、 FTP 配置、 PPPOE 配置、时区配置,开发一个与之相对应的,便于用户进行交互的 web 端管理系统。管理系统主要目标是实现一个良好的用户接口界面,增强用户管理系统的便捷性;提供全面的系统配置管
29、理信息,动态地向用户传递后台数据;收集系统发生的事件和日志报告,让用户对可能发生的系统异常做出准确处理;更新用户对系统配置管理的 更改,力图通过 web 实现用户对嵌入式 Linux 的简单管理。 项目 的主要工作有: 1.设计系统的架构和开发框架。本文将对系统的功能架构、技术架构、逻辑架构、数据架 构、安全架构分别进行分析设计,并对后台数据库 部分采用 sqlite3(嵌入式开源数据库)建立系统的数据库,这就包括对系统相关的数据库表进行设计和阐述。 2.开发完备的、符合嵌入式 Linux 系统的配置模块。本文将给出所有配置模块的完整用例和其中重要部分的实现。 3.开发基于 web 图形界面管理系统。 本次开发, web 端管理系统是重点之一。此系统用于与用户交互,并且与一般的基于 web 的网页有较大的不同。由于此系统直接操纵 Linux 系统后台的配置,所以要求有