视窗系列的操作系统虽然好用,但是在软件业微软却反开放大趋势之道,不向公众开放他的源代码。使得程序员只知其然,而不知其所以然。现在Linux已经成为一个可以与微软的Windows相抗衡的主要操作系统,成为计算机爱好者的宠物,同时也逐渐成为市场上众商家追逐的对象。既然如此,心动不如行动,我们何不在Linux的平台上开发一个小型的GUI产品呢?笔者已经在以前工作的基础上,开发了一个在 Linux 控制台上运行的, 基于 SVGALib 和 LinuxThread 库的多窗口图形用户界面支持系统,我称之为MiniGUI,在此基础上我们可以一起来完善这个系统,使之成为一个 真正小巧实用的工具。当然我们要完成的这个软件包将是完全遵从GNU精神,基于GPL协议的,也就是说是开放源代码的自由软件,希望能有更多的有识之士加盟。
那么MiniGUI到底是什么呢?从我现在的开发工作来看,应该定义为:MiniGUI 是 Linux 控制台上运行的,基于 SVGALib 和 LinuxThread 库的多窗口图形用户界面支持系统。MiniGUI 采用了类 Win32 的 API 接口, 实现了简化的类 Windows 98 风格的图形用户界面。 MiniGUI也是一个窗口系统,他的主要组成元素是窗口,在这个基础上 MiniGUI 中的窗口可以基本分四类,分别为主窗口、对话框、控件和主窗口中的窗片。MiniGUI 中的主窗口和 Windows 应用程序的主窗口概念类似, MiniGUI 中的每个主窗口对应于一个单独的线程,通过函数调用可建立主窗 口以及对应的线程。每个线程有一个消息队列,主窗口从这一消息队列中获取消息并由窗口过程(回调函数)进行处理。 MiniGUI的目标是保持现有小巧的特点,在 Linux 控制台上提供一个小 的窗口系统支持,“小”是MiniGUI的特色。同时MiniGUI又将尽力于微软的 MSWindows API保持兼容。这么定位是希望我们的MiniGUI可以在未来以Linux 为基础的应用平台上提供一个简单可行的 GUI 支持系统,让MiniGUI 可以 应用在 Windows CE 可以应用的任何场合。
其实如果你是一个热爱写程序的程序员的话,恐怕都做过类似的工作,比如完成一个小型的窗口系统,或是写一些底层的画图函数库。写这些东西有时只是自己的兴趣,有时不过是为了完成一个老师布置的作业,既然如此我们何不真正的来写一个 比较有应用前景的MiniGUI呢。我们以后可以将MiniGUI用于各种需要一个小型GUI功能的设备上去,或许是工业领域,或许是家用领域。所有这些用武之地难道非要等待Windows CE来占领吗,为什么不去做一个属于我们自己的东西呢?也许MiniGUI没有Windows CE那么强大的功能,但是我们有自己的特色,更重要的是那是我们自己的代码。
MiniGUI 的应用前景是很明显的,就是为 Linux 控制台提供一个简单可行的 GUI 支持系统,MiniGUI 可以应用在 Windows
CE 可以应用的任何场合, 例如:
上网机,或电视置顶盒;
实时控制系统;
个人电脑助理;
掌上型电脑;
等等,就让你自己去想象吧。
当然,MiniGUI 仍然能够在普通的 Linux 机器上运行,可作为一些小型游戏的支持平台,也可为控制台的小型应用提供图形界面支持,比如一个简单的文字录入程序、小型浏览器、证券资讯分析程序等等。
在 MiniGUI 的开发过程中,应始终强调一个"小"字,因为这才是MiniGUI 真正的特色所在。
MiniGUI已经具备了最初的雏形,我们将在后面内容中公布我们已经完成的工作和MiniGUI整体结构的介绍,也将为所有参加开放的人员提供 Maillist
的联系手段,以方便我们之间的讨论。那么我们在MiniGUI上还需要做一些什 么工作呢? MiniGUI 的近期开发内容包括:
基于 Linux 2.2 FrameBuffer 的 GDI(图形设备接口);
标准控件;
字体,包括 HBF 点阵字体和 TTF 字体支持;
多内码支持;
高级输入法支持。
同时,我们打算在 MiniGUI 基础上开发出一些小型应用,可考虑的有:
终端仿真程序。编写类似 Windows cterm 一样的 BBS 专用软件;
类似 chpower 的多字节字处理软件;
基于 GNU 开发工具的集成开发环境。
呵呵,看起来是有不少的工作,但是只要有你的参与,这些都将轻松搞定。
这里是 MiniGUI 的概要设计说明书,Word 文件(175KB)
发信给 minigui-devel-subscribe@egroups.com 即可加入 MiniGUI 的开发与讨论。
中国信息技术论坛-阿卡 | 自由、协作、创造-为了明天 |