当前位置: 首页 > Linux

魏永明:MiniGUI的涅槃重生之路

时间:2023-04-06 05:17:03 Linux

本文转载,版权归作者所有。商业转载请联系作者授权,非商业转载请注明出处。作者:魏永明来源:微信公众号linux阅读领域(id:linuxdev)文章背景MiniGUI是最负盛名的开源LinuxGUI支持系统之一。本文为魏永明老师2017年9月1日最新原创文章,探讨MiniGUI的涅槃重生之路。作者简介魏永明获得清华大学工学学士和硕士学位。他主持的MiniGUI项目是早期国内最知名的开源软件项目之一,广泛应用于功能手机、数码相框等嵌入式产品。魏永明于2002年创立北京飞漫软件有限公司,并成功实践了围绕开源软件的双授权商业模式;2015年10月,联合创办北京九百拓科技有限公司,任CEO。魏永明为Linux及开源软件在中国的推广应用做了大量工作,翻译或主编了多部技术著作(《Linux 实用教程》、《Linux 设备驱动程序》等);2013年,鉴于其在开源软件领域的突出贡献,被“中国开源软件促进联盟”评选为“杰出开源软件贡献者”。前段时间去深圳出差,约了费曼的几位前同事一起吃饭喝酒。高先生目前在深圳一家数控系统开发商工作。2000年起,高先生在TCL、创维推广Linux+MiniGUI智能电视方案,甚至基于MiniGUI开发了自己的浏览器。然而,众所周知,智能电视等产品得到市场认可并获得长足发展和普及是在十年后(2010年)。其中,Android在技术上保证了智能电视等产品的成功。一直宣传的解决方案当时并没有得到产品部门的认可。其实,这与技术无关,而是市场不成熟。众人议论着这些往事,众人都叹了口气。MiniGUI作为一款生长在国内土壤的开源软件,1999年发布第一个版本,2003年左右成熟,并在嵌入式产品蓬勃发展的2000-2010年间获得大量应用。应用于工控系统、功能机、数码相框等各类产品,尤其以华为的数码相框、领微的功能机解决方案、锐迪科的功能机解决方案为代表。我在2002年创立了飞漫软件,尝试以开源和商业的方式(双许可模式)运营MiniGUI及其产品,取得了一定意义上的成功,期间也吸取了很多教训。详情可以上网搜索这篇我发表于2009年的文章《MiniGUI 十年回顾》:http://www.fmsoft.cn/zhcn/abo...从上面的文章发表到现在已经八年过去了已过,星移,AI成为下一个高科技领域的竞争焦点。在操作系统和基础软件领域,安卓已经占据了除苹果以外所有智能手机的市场份额,但并没有完全取代所有基于Linux的智能设备和其他更嵌入式的实时系统,在国内仍有很多客户使用MiniGUI开发各种智能设备;另一方面,MiniGUI的竞争对手Qt几经易主,却依然顽强地生存着。流行词“嵌入式系统”已经被“物联网”所取代。华为的liteOS以及其他本土开发商开发的RT-Thread、SylixOS等RTOS(实时操作系统)产品,赢得了政府部门乃至资本市场的关注。支持,从而获得新的发展机遇。作为MiniGUI的原创者,对这款软件的感情不言而喻。不过,除了我自己,还有更多飞漫软件的同事(包括高老师,MiniGUI的早期用户和开发者)为MiniGUI的开发付出了很多心血。万目前在深圳一家明星公司工作。当年他是飞漫深圳研发团队的负责人。侯是一名建筑师,现在在珠海创业。2007年,在万和厚的带领下,飞漫深圳团队开始负责MiniGUI的维护工作。2009年前后,该团队为MiniGUI开发了一整套动画支持框架和界面开发技术。如果没有Android的出现,这些技术本来可以应用于功能机的升级改造,为功能机提供优秀的UI/UX解决方案。但是Android的开源免费,Google的大力推广,让这些技术失去了应用和发展的机会。董先生目前就职于小米,是miniStudio产品的主要开发者。miniStudio是一个基于Eclipse的集成开发环境,提供了“所见即所得”的GUI界面编辑工具。为了实现GUI应用程序的编程便利性,董先生改造了MiniGUI控件的编程框架,开发了mGNCS(NewControlSet)组件,并引入了外观渲染器等高级UI定制系统和解决方案,并带领团队开发miniStudio产品。多年后的今天,当我从服务器上找到miniStudio1.0.8forWindows,安装到我的电脑上运行时,我仍然为这个软件所提供的可视化编程能力所惊叹,即使在今天也难能可贵!然而,飞漫软件并没有花精力推广和发展miniStudio,也没有开发基于miniStudio的良性循环商业模式,让人唏嘘不已。mDolphin是一款基于WebKit的浏览器产品。张和卢是两个主要的开发商。该产品的研发持续演进多年,甚至成功应用于联芯的功能机解决方案。mDolphin是一款典型的MiniGUI大型应用软件。除了自身的应用价值,也有力地证明了MiniGUI产品的成熟度。目前,张在阿里巴巴担任技术专家,卢在互联网领域创业。上述在飞漫软件工作的前同事们将青春年华都投入到MiniGUI的开发中,技术能力也得到了极大的提升和磨练。不管后来从事什么行业,兼职还是创业,飞漫软件围绕MiniGUI的开发工作仍然是他们履历中的重要组成部分。除了他们之外,在十多年的发展过程中,飞漫软件还为业界培养了近百位优秀的高级软件工程师,限于篇幅无法一一列举。他们有的在腾讯、阿里等大型互联网公司担任关键技术岗位,有的在移动互联网等领域创业。他们围绕MiniGUI所做的开发和维护工作使他们受益终生。上周去深圳的时候,当万向所在公司的现任同事熟练地演示和讲解了MiniGUI之上的动画框架和相关技术时,深切感受到高、万、侯、董等人的贡献MiniGUI的发展。为MiniGUI的开发倾注了全部精力的开发者并不比我差。和高总吃饭的时候,高总提到MiniGUI还有很强的需求,还是可以继续发展的。其实在这个问题上,我几乎每次去深圳跟高、侯吃喝,都会争论不休。他们认为MiniGUI的市场需求依然旺盛,应该继续发展。可惜置之不理;我认为每个产品都有自己的生命周期。MiniGUI从1999年至今,已经有十多年了,生命周期快结束了。2010年起带领原飞漫团队开发Android工具类应用(领航桌面、锁屏等),定制智能电视解决方案,目前在智能硬件和移动互联网领域开展新业务。大约从2012年开始,MiniGUI的开发就一直处于停滞状态。除了蒋万和侯开发的最新版本和mDolphin开源发布外,几乎没有大的更新。但从2015年开始,MiniGUI的需求又开始旺盛起来。每年都有客户主动联系飞漫软件,获取MiniGUI的商用授权。经过多年的折腾,回首MiniGUI和飞漫软件走过的路,我之所以认为MiniGUI的生命周期已经到来,很可能是因为飞漫软件没能实现心目中的成功。换句话说,我混淆了技术和商业。一个企业可能无法在单一模式下持续经营,但技术不会轻易过时。以MySQL为例。MySQL早期的运营公司采用双授权模式,取得了一定的商业成功。后来被甲骨文收购。双许可模式基本完成了历史使命。云服务的发展越来越受欢迎。尽管后来出现了很多NoSQL数据库,但MySQL依然显示出旺盛的生命力。另一个例子是OpenGL等规范或基础设施,它已经发展了几十年,从未见过它过时。Apache、XWindow等技术或项目几乎是开源界的常青树,更不用说Linux内核了。显然,只要是有市场需求和用户基础的基础软件,持续发展就是其主旋律;容易过时的是业务,而不是技术本身。作为一款开源软件作品,MiniGUI在技术上是成熟的、成功的;失败的只是生意:飞漫软件并没有因为MiniGUI而获得很大的发展。相信不管是什么业务,还是可以想办法让MiniGUI继续发展下去的。最近这几天都在潜心研究如何开发MiniGUI。后来在宋宝华老师(知名Linux内核专家)的微信群里,宋老师约我预约,于是我定下这篇文章的标题:《MiniGUI 的涅槃重生之路》。1.先说最容易说的:技术方面在技术方面,围绕MiniGUI的软件栈中,要重点做好以下三方面的工作:在底层,为了适应最新的硬件和Linux内核技术(主要指GPU、OpenGLES、OpenVG和DirectRenderingManager),做一些相关的工作。MiniGUI3.0以窗口为单位,MiniGUI支持虚拟缓冲区渲染,以进程为单位。通过使用特定的图形引擎,可以将单个进程显示在单独的显示平面(Surface)上。在这两点的基础上结合GPU渲染,可以实现Android、iOS等智能手机操作系统的UI效果。为了方便开发MiniGUI应用程序,需要开发一个集成的开发环境,可以探索更高级的编程接口封装,甚至可以使用脚本语言来编写MiniGUI应用程序甚至是通用的嵌入式应用程序。董在费曼工作期间开发的mGNCS和miniStudio是一个很好的尝试,可以作为继续开发的基础。但是,由于近年来移动互联网的蓬勃发展,C/C++开发人员越来越稀缺。如果新的编程框架仍然使用C/C++作为编程语言,将对产品或技术的推广产生很大的影响。作为工具,需要考虑降低开发者的入门门槛。此外,新的编程接口包不应局限于GUI编程,而应在统一的应用开发模式下,将嵌入式和物联网设备开发的其他部分有机地结合起来。在这方面,近年来发展起来的服务端JavaScript框架Node.js是一个可以借鉴的成功案例。当然,嵌入式或物联网设备的开发存在资源有限的问题,需要在开发效率和程序性能上做一些取舍。这很难,但这可能是可以创新的地方。与其他开源项目合作使用MiniGUI作为其原生支持选项,例如WebKit。此举一方面可以在MiniGUI之上开发关键应用软件,另一方面可以扩大MiniGUI的生态圈,吸引更多人的关注。只要有开发者,就可以及时完成上述技术方面的未尽事宜。但最麻烦的是谁来支持这些开发者,或者说白了,钱从哪里来?第二,如果是业务,应该怎么做?靠技术创业这么多年,我发现光靠技术做生意是最难的。开餐厅、做代理等任何传统的商业模式都难以做到。众所周知,在中国市场,软件的价值往往被低估,靠卖软件赚钱的时代已经一去不复返了,所以在中国这片土地上从来没有诞生过微软这样的巨头。在这样的大环境下,费曼之所以能够依靠MiniGUI这样的单一业务坚持了十几年,并且在MiniGUI停止更新后还有一定的收入,可以说完全是运气。但是任何事情都有两个方面。中国企业在互联网商业模式上的探索,推动了腾讯、阿里等企业的快速发展。所以,这里我可以探讨一个假设:如果可以重来,我会选择什么样的模式来做MiniGUI这块业务?首先,我不会天真地认为MiniGUI的业务可以做到年收入上亿。我觉得对于这样一款软件来说,年收入1000万元已经很不错了。其次,我认为飞漫在2010年之前采用的双授权商业模式是正确的,在当时的条件下是正确的选择,为飞漫的进一步发展积累了资金。但是在2010年或者更早的时候,商业模式应该会有所调整(当然前提是我觉得MiniGUI的生命周期还没有结束,这是眼界局限的问题)。最后,关于MinIGUI的商业模式,正确的做法应该是:利用开源软件,不断扩大用户(开发者)群体,维持一个小规模(10到15人)的软件公司,保证长期的-公司的长期生存在这种情况下,等待市场变化,寻找机会爆发或被收购。就我目前的情况而言,我的精力不允许我组建一个完整的团队来把MiniGUI作为一个业务来运营。但在这里,我可以给出一个商业模式供参考。当然,这种商业模式也可以作为RT-Thread、SylixOS等基础软件创业团队的参考:A.使用Apache许可发布基础软件(如操作系统、功能等)库等.),请勿使用GPL/LGPL等条款发布。这样可以快速获得最大的商业应用,扩大市场份额。要知道,Android如果是使用GPL许可发布的话,是绝对不可能取得如此大的成功的。B、提供有偿开发工具,如MiniGUI的集成开发环境miniStudio,并根据开发者人数和使用年限提供授权。开源这样的工具软件没有意义,但是这样的工具软件运行在台式机上,所以可以通过云端控制它的license,也可以通过云端分发一些付费模块或者提供技术支持服务。在这样的模式下,工具软件的销售成本会变得很低,用户甚至可以在网页上在线下单,通过邮寄的方式获得license。如果采用上述商业模式,通过适当的推广,每年可以在全球开发和维护500名付费开发者,基本可以养活一个15人的小型软件公司。如果推广有效,也有可能达到年销售1000万元的规模。更多精彩更新来袭……欢迎关注账号:linux代码阅读领域(id:linuxdev)