随着电子技术的快速发展,现在的处理器性能非常强悍了,但回到9几年那个时候,除了像英特尔那种电脑处理器能跑流畅的GUI,其他很多处理器跑GUI都非常吃力。
MiniGUI,这东西是 1998 年年底开始写的。到今天有二十多年了,这个GUI作者叫魏永明,那会儿他还是清华大学精密仪器系的一个研究生。

——
1990 年,魏永明从青海湟中考进清华精密仪器系,本科加硕士一读八年。毕业留校任教,接了个活:国内第一台产品化虚拟轴机床的数控系统。
虚拟轴机床,其实就是并联机构那类数控机床,几根杆子同时伸缩控制刀头在空间里的位置和姿态,跟我们常见的 XYZ 三轴龙门结构完全不是一回事。算力基本全砸在实时插补上了。
他用的系统是 RT-Linux。机床得有人机界面,操作员要在屏幕上对刀、看坐标、改参数。
问题就出在这。
那时候能选的图形方案,要么是 Qt、GTK 这类从桌面 Linux 搬过来的,跑工控机勉强,搬到嵌入式板子上就是灾难;要么是 Microwindows(慢)。
魏永明后来在很多场合说过同一句话——MiniGUI 是为解决性能问题才动手写的。
很多技术的产生都是因为有了需求。
做过界面的都懂这个痛。在 framebuffer 上画一个按钮,画错了撕掉重画,屏幕就闪一下。板子主频低的时候,那种闪是肉眼能数出来的。

▲ 1998 年,清华实验室里的数控系统人机界面
——
1998 年 12 月,他开始写 MiniGUI 的 Linux 版本。
1999 年上半年,第一个版本以 LGPLv2 发出去,发布的地方是水木清华 BBS,中间得到清华 AKA 信息技术协会的帮助。
中国这条开源线,水木清华 BBS 算源头之一。
同一时期从那儿冒出来的还有一个 Smart Boot Manager,作者是水木 Linux 版版主苏哲。魏永明本人当时是 AKA 的 Linux 编程讲座主讲人,还写着 IBM developerWorks 中国站 Linux 区的专栏。

▲ 1999 年,把代码发上水木清华 BBS 的那些深夜
2000 年。
3 月,联想做 HappyLinux 1.0 的安装程序,用了 MiniGUI。那年月能在 Linux 上安装 Linux,界面这块本身就是技术活。
11 月发布的 MiniGUI 0.9.96,被清华大学制造工程研究所拿去做了两套数控系统。
从机床里长出来的东西,转一圈又回到机床上。
——
2000 年 5 月魏永明加盟蓝点软件,任北京研发中心技术主管。
2001 年 6 月去了中科红旗,做嵌入式 Linux 关键技术研究,任嵌入式事业部高级研发经理。
蓝点和红旗,稍微早一点入行的应该都记得。那几年是国内 Linux 最热闹的时候。
2002 年 9 月 25 日,MiniGUI 的核心开发者出来成立了北京飞漫软件技术有限公司,法定代表人魏永明。
从这天起,故事线慢慢有了另一番味道。
——
MiniGUI 后来能走双授权,前提是它得先是 GPL。
这里有个技术细节值得说。MiniGUI 最早发的是 LGPLv2。LGPL 允许闭源程序动态链接它——你做个商业产品,不改 MiniGUI 的代码,只链接,你的代码可以不开源。飞漫就卖不出授权。
所以后来改成了 GPL。GPL 要求,你链接了它,你的程序就得跟着开源。不想开源?那就来买商业许可。
Qt ,MySQL 也是这样的模式,是开源公司最经典的商业模式。
2008 年 8 月 1 日发布的 1.6.10,是最后一个 GPL 授权的版本。从 2.0.4 开始,代码重写,加上商业授权。
那几年网上的骂声不断。白用了这么多年,突然要收钱,做产品的心里肯定不舒服。飞漫官网到现在还挂着一份"例外公示"名单,把不遵守开源协议的公司列出来,跟 FFmpeg 那个耻辱墙一样。
规则就是这么定的。骂归骂,该收钱还是收钱。这是商业社会,付出劳动没有费用,呵呵,我去你家吃饭不知道行不行。
——
商业上,那几年飞漫是真的跑起来了。
2005 年 5 月,Intel 决定把 MiniGUI 用到"数字家庭"系列新产品上。
2006 年 6 月,AMD 在 Argon PMP 参考设计里采用 MiniGUI 和 Fhas。同月,飞漫成了风河(做 VxWorks 那家)的全球合作伙伴。8 月,Atmel 拿 MiniGUI 给它的 WiFi 芯片做 MMI 参考设计。
2006 年 12 月香港世界电信展,大唐移动发布 TD-SCDMA 手机终端软件标准平台 Arena,图形系统是 MiniGUI。后面有个数字挺吓人:拿到入网许可证的 TD-SCDMA 手机里,大约 60% 用的是 MiniGUI。
2009 年 2 月,思科(中国)在网络电视方案里选了飞漫的全线产品——MiniGUI、mDolphin 浏览器、mPeer。
长虹的 DTV 和 IPTV、东软医疗的数字医疗设备、英华达的 Skype 可视 IP 电话,也都在名单里。
华为、中兴、联想、TCL、迈瑞,这些名字都在客户列表上。

▲ 从机床面板,写到手机、机顶盒、医疗仪器、工业仪表
2008 年一年,飞漫往开源社区贡献的代码超过 200 万行,其中包括 MiniGUI 1.6.10、Mesa3D 和 Gtk。
——
2008 年 10 月的 MiniGUI 3.0 是个分水岭。
外观渲染器(Look and Feel Renderer)、主窗口双缓冲、界面特效、双向文本(阿拉伯语、希伯来语这类从右往左写的文字)。默认的四种风格是 Classic、Flat、Fashion、Skin。
飞漫自己的说法是,这一版"从模仿、跟随他人走向了自主创新"。
做过 3.0 的都知道,那套 Skin 渲染器配上一整套图片,观感能拉到跟 Qt 差不多。代价是 Flash 占得厉害。
2010 年 8 月,飞漫改了授权模式。从 3.0.10 开始,做工业控制、工业仪表、医疗仪器、DVR、门禁这类非消费类终端、年出货量低于 10K 的客户,不再按副本个数算运行时授权费,改成年费或者订阅费。
按副本收费是最让小厂崩溃的模式。卖一台交一份钱,出货前还得先算清楚成本。
——
还有那句著名的话。
2010 年飞漫十周年,魏永明说:接下来的十年,不会再有嵌入式软件这个行当了,嵌入式软件将整个被平台化的系统(iOS、Android、Windows)占据。
十年后 CSDN 拿这句话去问他。
他的回答是:如今"嵌入式"已经很少被人提起,取而代之的是物联网。而更该反思的是跟随战略——从前国内嵌入式技术走跟随和替代的路子确有成效,但当我们替代掉低端方案的时候,高端方案已经被人占住了。
——
2018 年,飞漫做了一件挺聪明的事。
1 月跟全志科技签协议,7 月跟瑞芯微签协议。模式是芯片公司出钱买 MiniGUI 的商用许可,芯片公司的客户免费使用。
这一年多里 MiniGUI 连着发了 3.2.0、3.2.2、4.0.0,还放了一堆 Apache 2.0 的示例程序包。
到 2019 年底,据说有五家芯片公司在谈类似的合作。
我 2015 年开始搞瑞芯微,最早是 RK3168、RK3188、RK3128。所以 2018 年那条消息,在做 RK 平台的人眼里动静不小——板子上做界面这件事,终于有个不用自己从头撸的现成方案了。
这两份协议都在 2023 年 12 月 31 日自然终止了。
飞漫官网现在还挂着《致全志主控芯片 MiniGUI 用户的通告》和《致瑞芯微主控芯片 MiniGUI 用户的通告》。
——
技术上简单说两句。
MiniGUI 是分层架构,靠 GAL(图形抽象层)和 IAL(输入抽象层)把底下操作系统和硬件的差异挡住,上面给一套一致的 API。所以它才能横跨 Linux/uClinux、eCos、uC/OS-II、VxWorks、ThreadX、Nucleus、pSOS、OSE、RT-Thread、FreeRTOS、RTEMS 和 Win32。
三种运行模式:
MiniGUI-Threads —— 所有窗口都在同一个进程、同一个地址空间里,靠线程区分。给 VxWorks、uC/OS-II、ThreadX 这类传统 RTOS 用。
MiniGUI-Processes —— 每个程序一个独立进程,实现完整的多进程窗口系统。给嵌入式 Linux 用,2.0 版本开始提供。
MiniGUI-Standalone —— 单任务跑,不需要多线程也不需要多进程。给 uClinux 那种连线程支持都缺的环境用。
资源占用,核心库能裁到 500KB 左右,30MHz 主频、4MB RAM 的系统上跑得起来。
整个系统一般占 2MB 到 4MB。
2020 年 3 月的 5.0.0 引入了合成图式(Compositing Schema)——每个主窗口在独立的渲染缓冲区里画内容,再由服务器按 Z 序合成到最终帧缓冲。这就是现代窗口系统那套玩法。同时还加了虚拟窗口、跨线程消息传递。4.0 那版重构了字符集和字体模块,支持 Unicode 12.0 和复杂脚本排版,另外加了走 DRI/DRM 栈的 DRM 图形引擎做硬件加速。
——
魏永明自己也没只停在 GUI 上。
2018 年 11 月,飞漫发起 HybridOS(合璧操作系统),MiniGUI 做它的窗口系统。目标说得很直白:取代物联网中的安卓。他给的账是,用合璧的设备,硬件成本是用安卓的一半。
2020 年 7 月,他提出一种全新的描述式编程语言 HVML,解释器叫 PurC,渲染器叫 xGUI Pro。2021 年 12 月,第一个 HVML 程序跑通。2023 年 12 月,他入选国际测试委员会的"年度世界开源贡献榜 Top 100"。
1973 年 11 月生的人,五十出头,从头设计一门编程语言。
——
还有个数字。
北京飞漫软件技术有限公司,2002 年 9 月 25 日成立,注册资本 62.5 万元,最新一期工商年报社保人数 5 人。
MiniGUI 在 2026 年 2 月 7 日发布了 5.0.17,还在更新。

▲ 27 年,桌上换了几茬家伙,写它的人还在写
——
这些年 LVGL 起来了,AWTK 起来了,Qt for MCU 也出来了。

做小屏的很多转去了 LVGL,MIT 协议,社区大,不掏钱。MiniGUI 是 GPLv3 加商业双授权,在这个环境里确实不好卖。
百度百科的魏永明词条里还提到 MiniGUI 用在了 FAST 中国天眼的控制系统上,这条我没找到更硬的出处,就不展开了。
——