2014-07-05 比尔盖子 Linux伊甸园开源社区
原文链接 月初的时候,Bowen Han 在《关于》页面问了这么一个问题:
我发现现在龙芯的开发者们都很分散,做的工作最后都因为版本的更新失效了,不知道你有什么高见么,龙芯官方不怎么给力啊。
感谢你的评论。这条评论我搁置了很长时间,十分抱歉。
我不想做完备的论述,此时此刻我还在调试 YeeLoong 8089D 用的 SM712
显卡驱动。我只想简单说一说我的第一看法,但是我依然不小心把它写成了一篇长论述。因此,特别将这个回答独立成博文一篇。
实际上,自由软件社区在龙芯上的工作如此分散的现状,虽然一定程度上是自由与开源软件的分散本质决定的,但问题很大的出在龙芯官方和开发者。龙芯官方和大量的龙芯支持者始终认为自己在做民族产业,而不是建设社区。
现在的龙芯社区,也就是那个半死不活的代码仓库、一个没什么意义的主站,一个具有一些高手,但也充斥着一些极端民族主义分子的论坛,而作为自由软件支持者的几乎没有,作为自由软件的龙芯开发者就更少了。据我所知,大概只有龙芯代码仓库内核源的维护者
Alexandre Oliva 这位国际友人了,这部分少数人集中在 loongson-dev 邮件列表,这是龙芯开发的重要力量。
有人可能会说,开发者少的现状是人力不够造成的,问题是,本来人力就分散,再不通过社区汇聚众人之力,人力只能更加分散。我们可以看到,龙芯官方和大量的龙芯支持者并没有建设出一个活跃的社区。
这样的现状,导致连龙芯许多自己的工作都很难完成。
龙芯的 Firmware,即
PMON,本来是自由软件,但是其几度易手,代码腐烂现象严重,急需大规模重构,或完全重写。然而,不谈重构,就普通的维护而言,PMON
不存在自己的社区,官方问题也很大。第一:龙芯的官方网站上,甚至没有给出完整的正确编译 PMON 的详细说明。我曾费尽九牛二虎之力,终于成功编译了 PMON
二进制,结果刷入 BIOS 给刷黑屏了。第二:PMON
最初不少问题和解决方法却都是由不是龙芯官方的刘世伟完成的,官方似乎并没有积极参与到社区中。而如今,官方还正忙着进行龙芯 3A 的 PMON 开发,原本的
PMON 无人问津。
而刘世伟把不少原本应有官方解答的问题,比如硬件规格等,都进行了解答,他一度被称为非官方中的官方。虽然说这样优秀的开发者是龙芯的力量,但也是对官方的一种反衬;另一位开发者,是龙芯的前员工,试图清理
PMON 代码未果,决定重头编写一个 Firmware,他的代码十分优秀,坚持了好几年,直至最终放弃都没有实现 Linux 内核的引导,他的代码至今还在
GitHub 中。
龙芯的 Webkit,本来国内曾有几个人致力于让 Webkit 流畅的运行在龙芯上,几个月后项目就死掉了。原因显然是精力、力量不够。至今,Webkit
都不支持 MIPS N32 的 JIT 编译,内存分配器 fastMalloc() 这么多年了,依然会崩溃。
如此可见,如果龙芯官方不像 Novell, RedHat
一样大力推动自己的社区,那么最终的结果是官方表现无力,个人开发者无助,龙芯自己的社区都如此不活跃,建立一个和上游密切互动的社区和这样的协作氛围就更加不可能了。但另一封面,正是因为没有和上游协作,因此才造成了现在的氛围。
再比如,龙芯的 SM712 显卡驱动,原本是由一名龙芯官方的开发者提交合并入上游的,我很欣喜的看到上游对龙芯代码的欢迎态度。然而,最初因问题被移除的 2D
加速代码,直至 Linux 3.15,整个驱动因无人维护被踢出内核为之,没有任何后续的工作。龙芯官方真的有用心和上游配合,维护这驱动吗?
还有,龙芯也有一位开发者在支持开发龙芯 3A 的 Webkit,实现了
JIT,成果显著,但工作没有进入上游,没有社区,个人推动它进入上游谈何容易。而且,因为没有社区,他的成果是片面的。没有人和他合作让龙芯 2F 的 MIPS
N32 也用上 JIT。
简而言之,开发者完成它的工作以后,最好的结果也就是发布到龙芯论坛上或
GitHub。没人,或者说没有足够的精力告知上游、推动它合并入、持续维护它。这样,开发者所作的工作就没有融入上游,这样,上游一大改,自己的补丁也就挂了;或是进入上游后许久,又被上游移除,这就是现状。
反观对龙芯支持比较好的 Linux 内核,正是因为龙芯开发者与上游配合,因此不谈外设兼容性,就龙芯 CPU 来说,才能畅通无阻的被 Linux
所支持;再比如 pixman 的开发者,本身是自由软件的支持者,他为社区开发了 pixman 的龙芯汇编加速代码。它们都是在融入社区为前提下开展工作的。
因此,我认为建设一个活跃的社区,开发者把自己的工作融入社区,社区把工作融入上游,这是开展龙芯相关工作的关键。而且,我认为这不但是发展龙芯事业的关键,而且是很多工作,包括国内
Linux 发行版在内的关键。Deepin Linux 在这方面树立了一面旗帜。
然而,社区的形成不可能一蹴而就,现阶段,我认为我们这些龙芯开发者应该多利用邮件列表,加强合作;共同解决问题,并将成果推入上游。这样一来,社区才可能慢慢形成。
不知你是否同意?
10楼
我觉得是组织不力,起步晚是事实,但是,总比不起步要好,发展不慢, 。龙芯诞生到现在,出到8和1.5G的3B1500,用的时间和英特尔比比,已经很快了,商业化运营做的很差,没有生态链是最大的问题,居然还要用户“自行研发”操作系统
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |