Gentoo Linux发行版开发者、中文社区负责人 张乐 做为一个从很早就开始关注龙芯并贡献龙芯的自由软件社区的参与者,能参与计算机世界实验室的此次测评并受邀撰写此篇评论,甚感荣幸。 我目前有两台龙芯盒子,皆是中科龙梦公司所赠。一台2E盒子,目前运行着Gentoo中文[1];一台2F盒子,目前主要用来测试GCC 4.4每周发布一次的快照。运行的操作系统都是Gentoo Linux。 目前尚未正式发布的GCC 4.4将是首个官方正式提供龙芯支持的主流编译器。提供的支持主要包括提供了对龙芯的向量指令的支持以及这些向量指令的intrinsic,增加了龙芯所支持的MIPS4/MIPS5指令集的部分指令,还有针对龙芯的流水线模型和调度器的优化。 这些支持究竟可以带来多大的性能提升,以及不同的ABI的表现如何,都是我很感兴趣的问题。所以这次测评我也是投入了很多精力,结果也基本如事先所料,龙芯的支持在很多方面得到了正面的反映。ABI方面,在网络应用或科学计算方面,n64当是不二之选;桌面领域,o32也未尝不是一个好的选择,毕竟还有很多程序如果使用64位ABI会出现bug[2]。此次测评的遗憾在于,没有现成的使用n32的二进制Linux发行版,而且也没有足够时间去自己构建一个,而没能完成关于n32 ABI的完整测评。 值得一提的是,如果应用程序可以使用GCC提供的龙芯向量指令intrinsic(GCC提供的loongson.h头文件中有定义),那么程序表现还会有更高提升。目前似乎还没有音频、视频处理库或软件增加了这方面的支持,这是以后要做的。 还有就是即使是n64/n32也还存在有一定的问题[3],所以有人提出了NUBI[4][5]。这或许是未来MIPS ABI的归宿,只是最近一两年以来社区里并没有NUBI的任何讨论,不知前景到底如何。 未来最好能有一个发行版可以提供完美的multilib支持,也就是一个系统里可以同时支持这3个ABI。CLFS已经有文章[6]可以做出这样的一个系统,不过LFS的升级是个很麻烦的问题。Gentoo曾经有人做过这方面的尝试。未来有时间我准备做一做这方面的研究,希望可以搞一个这样的系统出来。 [1] http://www.gentoo-cn.org [2] http://www.linux-mips.org/wiki/TheCaseForN32 [3] http://www.linux-mips.org/wiki/WhatsWrongWithO32N32N64 [4] http://www.linux-mips.org/wiki/NUBI [5] http://www.linux-mips.org/wiki/IntroducingNUBI [6] http://www.linuxfromscratch.org/clfs/view/1.0.0/mips64 |