基于QT的数码相框设计与实现
1.2 研究目的和意义
目前,在 Linux下应用软件开发领域急需一种容易学习、成本低、效率高的GUI应用程序开发方法,以解决Linux应用程序的易用性不高,应用范围相对狭窄的问题。而QT则是一个可以应用于Linux下的全面的C++程序开发框架,它能够开发高性能、跨平台、功能丰富的客户端和服务器端程序,同时QT还包含针对跨平台开发和国际化开发的类库和相应的开发工具,更引人注目的是,目前Linux上最为流行的KDE桌面环境就是建立在QT库的基础之上的。
Qt/Embedded是一个专门为小型设备提供图形用户界面的应用框架和窗口系统,是高端嵌入式设备PDA及手机的主流开发工具。作为一项成熟的技术,KDE(Koll Desktop Environment,k桌面环境)桌面系统对于嵌入式窗口系统的设计有很大参考价值,Qt/Embedded给嵌入式窗口系统提供了很好的框架,提供了丰富的窗口小部件(Widgets),并且还支持窗口部件的定制,因此它可以为用户提供漂亮的图形界面。Qt/Embedded是KDE等项目使用的GUI支持库,所以有许多基于Qt/Embedded 的X Windows程序可以非常方便地移植到Qt/Embedded版本上,而本文所述设计主要是基于Qt/Embedded的应用上。
本章小结:嵌入式指的是把计算机系统作为一个信息处理部件嵌入到应用系统中而形成的系统,是适应具体应用系统在功能、可靠性、成本及功耗诸多方面更多的综合要求的专用计算机系统,它是计算机技术追求经济型、小型化、可靠性、高速度和智能型的必然结果。嵌入式 Linux是以Linux为基础的嵌入式作业系统,它被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。
- 2 -
基于QT的数码相框设计与实现
2. 嵌入式系统和嵌入式Linux
嵌入式系统主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,它是集软硬件于一体的可独立工作的“器件”。嵌入式处理器目前趋向用32位甚至64位的高性能处理器,相关支撑硬件包括显示卡、存储介质(ROM和RAM等)、通讯设备等等。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用闪存(Flash Memory)作为存储介质。本章主要介绍嵌入式系统的概念,及Linux操作系统的特点和优势,并就开发平台Linux2.4.31内核做主要说明和分析。
2.1 嵌入式系统概述
嵌入式系统是集软、硬件于一体的可独立工作的“器件”。嵌入式系统一般指非PC系统,它包括硬件和软件两部分,硬件设备包括处理器和外围设备,软件部分包括操作系统软件和应用程序。嵌入式处理器是嵌入式系统的核心部分,它与通用处理器最大的区别在于,嵌入式处理器大多工作在为特定用户群所专门设计的系统中,它将通用处理器中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。如今,全世界嵌入式处理器已经超过1000多种,流行的体系结构有30多个系列,其中以ARM、PowerPC、MC 68000、MIPS等使用最为广泛。外围设备在嵌入式系统中主要用于完成存储、通信、调试、显示等辅助功能,如存储器及外设器件和I/O端口、图形控制器等。嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。常用的嵌入式操作系统有如下几种:WinCE,Vxworks,Linux等。嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才具有其实用价值。
- 3 -
基于QT的数码相框设计与实现
2.2 嵌入式linux
嵌入式 Linux是以Linux为基础的嵌入式作业系统,它被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。
2.3 嵌入式Linux的特点和优势
嵌入式Linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式Linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能RT_Linux Hardhat Linux 等嵌入式Linux支持,实时性能稳定性好安全性好。
Linux做嵌入式的优势,首先,Linux是开放源代码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发者的强大技术支持;其次,Linux的内核小、效率高,内核的更新 速度很快,linux是可以定制的,其系统内核最小只有约134KB。第三,Linux是免费的OS,在价格上极具竞争力。 Linux还有着嵌入式操作系统所需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU。而且性能稳定,裁剪性很好,开发和使用都很容易。很多CPU包括家电业芯片,都开始做Linux的平台移植工作。移植的速度远远超过Java的开发环境。也就是说,如果今天用Linux环境开发产品,那么将来换CPU就不会遇到
- 4 -
基于QT的数码相框设计与实现
困扰。同时,Linux内核的结构在网络方面是非常完整的,Linux对网络中最常用的TCP/IP协议有最完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络,Toker ring(令牌环网)、光纤甚至卫星的支持。所以Linux很适于做信息家电的开发。
现今Linux已经在嵌入式领域显示了强劲的发展势头。Linux是一个成熟而稳定的网络操作系统,Linux操作系统在短暂的时间内得到迅猛发展,是与其良好性能分不开的,其主要特性表现在如下几个方面:
(1)开放性:指系统遵循世界标准规范,特别是遵循开放系统互联(OSI国际标准)。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互联。
(2)多用户:指系统资源可以被不同用户各自拥有和使用,每个用户对自己的资源有特定的权限,互不影响。
(3)多任务:是现代计算机的主要的一个特点,是指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux系统调度每一个进程,平等地访问微处理器。
(4)良好的用户界面:Linux向用户提供了3种界面:传统操作界面、系统调用界面和图形用户界面。Linux的传统操作界面是基于文本的命令行界面,即Shell。
(5)设备独立性:是指操作系统把所有外部设备统一当作文件看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体形式。这种设备独立性简化增加新设备的工作。
(6)良好的移植性:经过内核开发者的努力,Linux2.4内核已经可以支持多种处理器平台,从大型计算机到有关体系结构的微型计算机Linux2.4内核能很好运行。
针对Linux内核的上述特点和在嵌入式开发领域对系统功能要求的不断提高,Linux系统逐渐成为嵌入式系统开发的首选操作系统。
- 5 -
基于QT的数码相框设计与实现
2.4嵌入式linux内核
Linux的低成本和开放性,使其广泛应用于嵌入式系统领域。本节着重介绍Linux2.6内核的新特性及其嵌入式应用中的优势。实时性和可靠性是嵌入式应用较为普遍的要求,尽管Linux2.6并不是一个真正的实对操作系统,但其改进的特性能够满足响应需求。Linux2.6已经在内核主体中加入了提高串断性能和调度响应时间的改进,其中有三个最显著的改进:采用可抢占内核、更加有效的调度算法以及同步性的提高。在嵌入式领域,Linux2.6提高了其实时性能,添加了新的体系结构和处理器类型,还改善了I/O子系统,等等,并且增添更多的多媒体应用功能。
2.4.1 linux内核描述
操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。
Linux内核本身并不是操作系统,它是一个完整操作系统的组成部分。Red Hat、Debian和Fedora等Linux发行商都采用Linux内核,然后加入更多的工具、库和应用程序来构建一个完整的操作系统。Linux发行商一般会根据自己的需要对基本内核进行定制,在一些情况下,不同的Linux版本会在自己的内核中加入主内核中没有的特性和支持。
- 6 -