迷你GUI技术白皮书
1 介绍
1.1 什么是miniGUI
MiniGUI (www.minigui),是由飞漫软件(Feynman Software)为实时嵌入式系统开发的一款轻量型图形用户界面支持系统。自1999年第一次授权发布以来,MiniGUI已经被广泛得运用于掌上终端(手机和电子记事本),机顶盒,工业控制系统,工业设备,便携式媒体播放器,查询终端等等。
同时,MiniGUI已经成为了一个跨操作系统的图形用户界面(GUI)系统,它可以在Linux/uClinux,eCos,VxWorks,pSOS,ThreadX,Nucleus,OSE乃至uC/OS-II,以及Windows32位系统的平台下运行;已经被测试过的硬件平台,包括Inrelx86,ARM(ARM7/ARM9/StrongARM/xScale), PowerPC,MIPSM68kDragonball/ColdFire)。作为将MiniGUI带入高端嵌入式市场的基于嵌入式Linux的高端嵌入式设备,MiniGUI v2.0版为其提供了全部的多任务支持。作为继MiniGUI 2.0 之后最新的版本,MiniGUI 3.0 有着许多重要的
增强,例如单纤双向(BIDI)测试显示支持,透明控制,独立滚动控制,双字节字体渲染(UPF),点阵字形,以及新的组成部分包括mGUtilsmGPlus
MiniGUI是“用于嵌入式设备的跨系统图形用户界面支持系统”,以及“嵌入式图形中间件”。迄今为止,MiniGUI已经被中国最著名的电信设备供应商,中国最大的电视机制造商,即时分同步码分多址技术(TD-SCDMA)的主要制定者,以及世界上最大的处理器生产商所授权。MiniGUI已经被以下领域中的主要厂家广泛采购和应用,包括:工业器械,医用设备,以及军工业。同时,MiniGUI已经被全球的嵌入式设备开发商所公认,并远销至包括北美,日本,和马来西亚等国家和地区。MiniGUI已经成为嵌入式图形中间件的变相工业标准。值得一提的是,大约百分之60TD-SCDMA手机网络认证采用了MiniGUI作为他们的嵌入式图形平台,用于支持如浏览器和电视电话等功能。在这些TD-SCDMA的手机类型中,包括海信T68和中兴U8等等。TD-SCDMA是一种由中国自主开发的3G通信标准。
飞漫软件(Feynman Software)不仅发布了基于GPL 1 MiniGUI的一些版本,而且为商业客户提供了MiniGUI-VAR和其他关键性软件产品。此文件是用于有组织地详细介绍MiniGUI v3.0 的产品特点和应用领域。
1.2 MiniGUI的起源和演变
1998年末MiniGUI开始应用以来已经过去了12年。最初,MiniGUI被设计出来为基于Linux的控制系统提供单纯的人机交互界面;没人预见到MiniGUI会成为一个跨操作系统的嵌入式GUI系统。幸运的是,MiniGUI自诞生以来被广泛地应用于各种各样的工程项目中,而实际工程项目中不断发展变化的需求促使MiniGUI逐渐发展成为一款跨操作系统的嵌入式GUI中间件(middleware)。
199812月,飞漫软件(Feynman Software)的创始人魏永明开始研发MiniGUI,并将其应用于计算机数控(CNC)系统。
20003月,联想(Lenovo)采用MiniGUI开发HappyLinux V1.0(一款Linux发行版)的安装程序。同时,MiniGUI成为了Linux的一个强有力的嵌入式GUI支持系统。
1 GPL是一种被广泛应用的免费软件证书,最初是由Richard  Stallman为网络对象模型环境(GNU)工程所撰写的。详情请访问q
2000年四月至20029月期间,作为一款著名的免费软件,MiniGUI的研究和发布均基于GPL许可证。
20029月,MiniGUI的核心研发人员在北京成立了北京飞漫软件技术有限公司,并开始了这款免费软件的商业营销。
MiniGUI V1.2.6MiniGUI V1.3.0分别于20033月和20039月发布。
200310月,MiniGUI被移植到uClinuxeCos操作系统。至此,MiniGUI已经成为了一款跨操作系统的嵌入式GUI系统。
20048月,华为(电信设备供应商的领军企业)采用MiniGUI作为其机顶盒(STB),手提式设备及其他一些产品的平台。
200411月,飞漫软件发布了MGIS解决方案,用于嵌入式地理信息系统的应用。
20051月,大唐移动(TD-SCDMA技术标准的开发者)采用MiniGUI作为TD-SCDMA手机的人机界面解决方案。
20053月,MiniGUI的定制版本(MiniGUI-CMR)和MiniGUI的标准版本(MiniGUI-STD)发布。
20055月,飞漫软件和因特尔达成协议,授权飞漫参与开发和生产其一系列的名为“数字家庭”的产品。
20056月,基于VxWorks模拟器的MiniGUI开发环境发布,标志着飞漫和风河系统公司(WindRiver)的合作。
20058月,韩国Systerm Programmer成为飞漫软件产品在韩国的官方代理,这标志着我们的产品走向国际化进程的一个新阶段。
20059月,飞漫软件发布mSpider完全浏览器。同月,飞漫软件发布基于GNU GPL协议的eDillo V0.4.0浏览器。
20061月,飞漫软件发布基于MiniGUI的组件,包括 2mGp V1.0mGi V1.0以及mG3d V1.0
20062月,嵌入式浏览器mSpider V1.6发布。
20063月,飞漫软件发布MGDesktop V2. 5。同时,长虹电器有限公司采用MiniGUImSpider开发数字电视和网络电视,表明飞漫软件已经成为了数字电视,网络电视及其相关领域方案供应商中的领导者。
20065月,飞漫软件与风河(Wind River)合作,为Vxworks系统提供了图形解决方案。
20066月,飞漫软件与AMD建立战略伙伴关系。AMDMiniGUIFhas(飞漫手持终端应用套件)作为其设计Argon PMP的参考方案。
20066月,飞漫软件集成了MiniGUIEnea(意大利国家核研究院)的实时操作系统OSEMiniGUI可简化运用于手持终端设备、电信设备、医疗设备、机顶盒-工业控制系统等的图形用户界面的设计和开发。
20068月,飞漫软件和Atmel(国际领先的半导体器件供应商)采用MiniGUI作为设计WiFi芯片人机界面的参考方案,这标志着飞漫软件已成为无线通信及其相关领域解决方案供应商中的龙头企业。
2006年,飞漫软件与国际领先的半导体器件供应商Atmel展开合作。MiniGUI成为了无线领域
在开发人机界面时广泛采用一款芯片,它进一步加强了飞漫软件在全球无线领域中的领先地位。
2它采用了飞漫软件的另一款产品:Fhas(飞漫手持终端应用套件)。
200611月,台湾英业达电子有限公司采用MiniGUI开发支持thread技术Skype可见的IP电话,显
示出飞漫软件在数字媒体领域的高端地位。
200612月,ITU香港电信世界,大唐电信发布TD-SCDMA 3G手机软件标准平台,它将MiniGUIMiniGUI选配件作为终端应用开发环境。这标志着MiniGUI已经成为TD-SCDMA标准平台下手机行业的变相标准。
200612月,飞漫软件发布嵌入式动画比放弃Player-Seal V1.020073月,飞漫软件发布MGDesktop V3.020077月,飞漫软件发布全功能高端嵌入式浏览器mDolPhin V1.0
20082月,飞漫发布GDesktop V4.020086月,飞漫发布mDolphin V2.0
目前,MiniGUI V2.0.4/1.6.103 支持的系统包括:Linux/uClinux,eCos,uC/os-II,VxWorks,pSOS,ThreadX,Nucleus,OSE以及Win32平台。最新发布的MiniGUI版本为3.0,它支持Linux/uCliux系统。飞漫软件在将免费软件进行商业营销的道路上已经迈出了通向成功的关键性步骤。
1.3 MiniGUI的典型应用领域
从最早的数控系统到目前流星的智能手持式设备,MiniGUI已经被应用于诸多产品。MiniGUI应用的主要领域可可分为下面几块:
手持设备(包括2.5G/3G手机,智能手机,多功能手机,WiFi手机,便携式媒体播放器,个人数字助理)
1.1左侧显示了一个由大唐移动通信设备制造有限公司(中国移动通信领域的龙头企业)发布的名为Arena(舞台)的TD-SCDMA 3G手机终端软件标准平台。Arena使用Threadx操作系统,并采用MiniGUIPhas(一个应用程序扩展平台)作为图形系统和应用扩展平台。右侧显示的是一部由台湾英业达公司研发的支持SKYPEIP可视电话,它采用了MiniGUI作为其图形系统。
1.1  MiniGUI的典型应用:只能掌上设备
数字媒体设备和机顶盒
1.2显示了由飞漫软件开发的基于MiniGUI的机顶盒网页浏览器以及法律相关信息查询终端。
3MiniGUI V2.0支持多任务操作系统,如LinuxMiniGUI V1.6 支持传统的多任务或多线程实时嵌入式操作系统。
1.2 MiniGUI的典型应用:数字媒体设备和机顶盒
工业仪表与控制系统
1.3描述了一些基于Linux系统和MiniGUI的工业仪表和控制系统。
1.3 MiniGUI的典型应用:工业仪表与控制系统
4 MiniGUI的软件构架
4.1 MiniGUI的软件构架
为什么MiniGUI能在众多嵌入式系统中良好运行呢?究其原因是由于MiniGUI拥有一个良好的软件构架。MiniGUI通过软件抽象层(也称为便携式层)将应用层和系统层分开。图4.1说明了MiniGUI和实时操作系统之间的关系。基于MiniGUI的应用通过调用一个叫做APIs的标准C语言函数库和MiniGUI函数库来实现其功能,以及系统功能的接口和驱动程序。MiniGUI的图形抽象层和输入抽象层隐藏了底层的硬件和操作系统的细节,所以应用程序不需要顾及到输入输出设备。此外,MiniGUI独特的运行时间模式为其在不同的操作系统下运行提供了便利。
从下面的图片,我们可以发现,从底层到顶层,MiniGUI可以分成如下几个模块: