找回密码
 骑士注册

QQ登录

微博登录


比尔盖子:关于龙芯开发的一点见解

2014-7-1 14:01    评论: 5 分享: 3    

作者: @比尔盖子V

月初的时候,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 在这方面树立了一面旗帜。

然而,社区的形成不可能一蹴而就,现阶段,我认为我们这些龙芯开发者应该多利用邮件列表,加强合作;共同解决问题,并将成果推入上游。这样一来,社区才可能慢慢形成。

不知你是否同意?

发表评论


最新评论

我也要发表评论

游客 2014-8-27 10:50 回复
新闻上不是说Deepin要弄龙芯版么,倒是看看Deepin怎么推动社区建设了
游客 2014-7-3 11:07 1 回复
官方很孤立的,力量不大,任务多,已经向软件做出大量人员调整了,不要苛求了
游客 2014-7-2 23:19 回复
这就是没有商业化的结果
文剑一飞 2014-7-1 17:02 2 回复
同意,喊官方出个发言人职位吧。
k1nL 2014-7-1 16:03  新浪微博网友评论 2 回复
Redhat,Ubuntu,Novell,Intel,IBM。。。外国很多大厂的员工才是自由社区的中坚力量,公司本身也受益于开源,这才是一个良性的循环。。。

热点评论

文剑一飞 2014-7-1 17:02
同意,喊官方出个发言人职位吧。
2
k1nL 2014-7-1 16:03
Redhat,Ubuntu,Novell,Intel,IBM。。。外国很多大厂的员工才是自由社区的中坚力量,公司本身也受益于开源,这才是一个良性的循环。。。
2
游客 2014-7-3 11:07
官方很孤立的,力量不大,任务多,已经向软件做出大量人员调整了,不要苛求了
1
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。