当前位置:中国星空学习网首页>Linux/DOS>Linux基础>正文  
我与MiniGUI的不了情

 

MiniGUI 是一种在嵌入式系统中提供图形及图形用户界面支持的中间件技术,国内著名的自由软件项目之一。早期由魏永明主持和开发,现由北京飞漫软件技术有限公司维护并开展后续开发。

为什么要开发 MiniGUI

1998年,当自由软件精神从国外传入中国内地的时候,我正在Windows 98系统上进行痛苦的硬盘整理。我不知道Linux是一个什么东西,只知道应该尽快逃离微软营造的封闭世界。在这样的背景下,我有了尝试其它操作系统的冲动,并且我当时所从事的研究课题也迫使我做出一个选择。

当时,我在清华大学某实验室工作。该实验室正要开发一套工业控制系统——用于新型机床的数控系统。以前,这样的控制系统一般都建立在DOS操作系统之上。但是DOS是一个16位操作系统,不能充分发挥基于奔腾处理器的新硬件平台的功能,因此,我们首先要选择一个新的32位操作系统。

在经过很长时间的调研之后,我们对Linux有了一定的认识。其中最为关键的是,Linux已经有了一个实时的内核补丁,即RT-Linux。利用RT-Linux可以直接处理中断,从而能够让一个普通的Linux系统成为一个健壮的硬实时系统。

但紧接着出现了另一个问题—GUI怎么办。因为Linux上的X-Window也不可避免地庞大和累赘。我们曾经做过一个试验,如果在RT-Linux上启动X-Window,则会导致严重的关键中断延迟;而且,当时它的汉化技术也不很成熟。因此,建立一个轻型的GUI系统,并且具有良好的中文支持是首先要解决的问题。

实际上,这已经不是什么问题了。那时,我已经具备了一定的图形用户界面系统开发经验。早在1995年,就已经开发完成了DOS上一个简单的图形用户界面系统。我将它称为 MiniGUI。在Linux上的SVGALib函数库的帮助下,建立一个类似的图形用户界面支持系统的确是一项并不困难的工作。

MiniGUI的开发历史

DOS上的MiniGUI太简单,功能太有限。我想,Linux上的MiniGUI最起码应该支持多窗口,支持类似X-Window Widget的东西,同时要具有对中文的良好支持。因为我们的目标系统是一个数控系统,功能单一,并且实时要求很高。对比典型的基于进程的客户/服务器体系结构,如果采用线程实现多窗口将节省大量的进程间通信开销。于是我选择了Linux上的多线程机制,而不是X等窗口系统使用的经典客户/服务器体系结构。

有了这样的最初设想,我就开始在一台Pentium 90 PC机上开发新的MiniGUI版本。从 1998年12月开始,最初的MiniGUI大概经历了如下几个开发过程: 搭起MiniGUI的骨架,支持多主窗口,以及基本的图形设备接口;选单和定时器支持,有了控件的支持框架;中文输入法支持;GIF和JPG支持;实现了基本控件;扫雷游戏的克隆;对话框和消息框逻辑;屏幕或窗口快照;2000年1月,VCOnGUI(MiniGUI上的虚拟控制台)稳定版发布;2000年3月,联想HappyLinux 1.0 发行版的安装程序开发完成。至此,MiniGUI已形成了一个完整的图形用户界面支持系统。

现在已经记不清楚什么时候向外界公布 MiniGUI的源代码了。但是,像DOS上的MiniGUI一样,一开始我就选择了公开源代码的方式,并且以GPL的授权条款发布源代码。

在此期间,有许多朋友为MiniGUI贡献了自己的代码,我也得到了许多人的帮助和支持。其中最值得一提的是AKA组织。AKA是清华大学一个致力于中国信息技术发展的学生组织,为了支持自由软件在中国的发展,他们帮助我在SMTH BBS上进行宣传,并且建立了一个主页。而MiniGUI在数控系统和Linux发行版中的成功应用,也进一步鼓励我继续开发和完善MiniGUI。

在这样的背景下,我们将MiniGUI定义为:“MiniGUI是Linux控制台上运行的、基于SVGALib和LinuxThread库的多窗口图形用户界面支持系统。MiniGUI采用了类Windows 32的API接口,实现了简化的类Windows 98风格的图形用户界面。MiniGUI的目标是保持现有小巧的特点。”

很明显,我们希望MiniGUI不仅仅使用在数控系统,也希望能够在其它场合应用,比如目前时兴的信息设备(PDA、掌上电脑等)上。

2000年4月份,我辞去了清华大学的工作,加入蓝点(深圳)软件技术有限公司,并专注于嵌入式系统的开发。后于2001年6月至2002年9月供职于北京中科红旗软件技术有限公司,主管嵌入式事业部的技术工作。在这期间,MiniGUI作为中国为数不多的几个自由软件项目之一,继续以开放源码的形式进行开发。

2000年初到现在,我们重点在如下几个方面对MiniGUI进行了开发:

◆ 通过GNU的Automake和Autoconf接口,实现了大量的编译配置选项,通过这些选项可指定MiniGUI库中包括哪些功能。这样,用户可以针对自己的系统对MiniGUI进行定制。

◆ 在MiniGUI 0.3.x的开发中,引入了图形和输入抽象层的概念。

◆ 在新的GAL/IAL接口上,实现了基于Linux FrameBuffer驱动程序的GAL和IAL引擎。这部分工作主要是由浙江大学研究生宋立新于2000年下半年完成的。

◆ 在引入GAL和IAL之后,又在处理字体和字符集的模块当中引入了逻辑字体的概念。

◆ 完善现有的窗口机制,进一步增强MiniGUI的窗口处理功能。目前,MiniGUI当中的控件已多达20多种。

◆ 2001年上半年,在MiniGUI中增加了对客户/服务器架构的支持。使得MiniGUI可以多线程模式运行,也可以多进程模式运行。在2001年4月发布了MiniGUI 1.0.0版本。

◆ 2001年下半年,借鉴SDL函数库重新定义MiniGUI的图形抽象层,并实现了许多重要图形功能和接口,将其称之为NEWGDI接口。2002年3月发布了MiniGUI 1.1.0 版本。

◆ 2002年9月,MiniGUI的主要开发者成立了北京飞漫软件技术有限公司,尝试自由软件的商业化运作模式,并于2003年5月发布了MiniGUI 1.2.6 版本;2003年9月发布了MiniGUI 1.3.0版本。

◆ 2003年10月,将MiniGUI移植到了uClinux 和eCos操作系统。

MiniGUI的应用现状

从1998年底到现在,MiniGUI在近五年的发展过程中, 已经被广泛应用于许多项目和产品中,其中包括数控系统、手持信息终端产品、彩票机、DVR 系统、金融终端、KTV 点播系统、POS机等。MiniGUI为嵌入式Linux在国内的应用和推广起到了重要的作用,目前,它已经成为嵌入式Linux系统上与国外同类产品的强有力竞争对手,为国内嵌入式产品开发商提供了性价比极高的替代产品,节约了产品的开发成本,同时为国家节省了大量外汇。

目前,我们正在现有MiniGUI的基础之上,将其移植到Linux之外的其他流行嵌入式操作系统上,包括eCos、uC/OS、VxWorks、pSOS等,为嵌入式产品的开发提供优秀的、商业级跨平台嵌入式图形用户界面支持系统,并开发相应的界面设计和集成开发工具。除此之外,我正在积极探索自由软件的有效商业模式,并取得了初步的成果。

魏永明简历

1995年毕业于清华大学精密仪器系,获机械制造与设计专业工学学士学位和机械制造专业工学硕士学位。毕业后在清华大学精密仪器系任教,负责国内第一台产品化虚拟轴机床数控系统的研发工作,并在该项目中使用 RT-Linux 操作系统开发数控系统。为解决性能问题,开发出专门针对实时嵌入式Linux系统的图形用户界面支持系统—MiniGUI。其“VAMT1Y 虚拟轴机床开发”获1999年教育部科技进步二等奖;参与的课题“JWK-27/28/29型CNC系统开发及商品化研究”获2000年教育部科技进步二等奖。

此外,还著有《Linux实用教程》与《学用Linux与Windows NT》,并主持翻译了《Red Hat Linux奥秘》、《Linux编程宝典》、《Linux设备驱动程序》(第二版)等大批Linux技术著作。

(责任编辑:代君利)j30B0j30B0j30B0

 

上一篇: 企鹅形象与Linux
下一篇: 透视GNOME项目
站内公告
栏目导航
 Windows系统
 Linux/DOS
 办公应用
 工具软件
 图形图象
 网络应用
 安全防御
 网络编程
 软件教程
 实用技术
最新文章
中国星空图片网
·人体艺术
·性感美眉
·生活自拍
·幽默搞笑
·超级帅哥
·精彩万花筒
·梦幻景色
中国星空探索网
·神秘追踪 灵异接触
·鬼故事 灵异空间 图片
·未解之谜 探索宇宙
中国星空两性网
·两性图文 我的性事 情人 成人幽默
·性爱技巧 两性测试 性爱误区
·性事花边 生育避孕 性保健 性疾病
·两性生理 文化 讨论 心理 知识
·爱人同志 非常男女 一夜情
中国星空算网命
·手机吉凶 QQ号码吉凶 周公解梦
·塔罗牌测试 狗年运程
·关公灵签 紫薇斗数 八字排盘
·测试:你的成功指数有多少
·测验你的家庭是否美满?
·面相: 面型 眼睛 耳朵 口唇
·手相:拉你一把奶油桂花手
·测试:你能成为大富翁吗?
联系方式 设为首页
中国星空旗下---中国星空学习网    Copyright 2005-2050 Year   xx.happy369.com  Networks.All rights reserved
中国星空网所有内容均来源于网络,版权属于原作者,如侵犯到您的权益,请与我们联系,我们将尽快予以删除或处理。
中国星空不承担由于内容的合法性及健康性所引起的一切争议和法律责任。
陕ICP备05011765号 联系我们 
《女人如烟》--演唱:魏佳艺