02-07
2017
龙芯向QEMU、nodejs、Fedora等一批开源软件社区提交贡献
一、龙芯社区工作的战略转折
龙芯公司坚定不移的建设自主IT生态,开源软件社区是建立生态的重要平台,是汇聚开发者力量的阵地。从2017年开始,龙芯针对上游开源软件社区的工作思路有了一个战略性的转折,将龙芯多年以来的软件开发向上游社区大举提交,向全世界的开发者和用户贡献大量有价值的代码资源,由往年的被动追随开源社区转型成为上游开源社区的活跃主体,进而掌握主导性和话语权。目前已经成功接收龙芯提交代码的开源社区主要有QEMU、nodejs、Fedora等。
二、龙芯公司提交QEMU的mips64平台即时编译代码
Qemu是一个有广泛影响力的开源虚拟机项目。QEMU最早是一个跨平台的二进制翻译器,用于模拟PC、Arm、Mips、Alpha等不同体系结构的CPU平台。近年来QEMU主要的发展方向是服务器虚拟化,对于KVM有良好的支持。QEMU现在每3个月升级一个小版本,在这个周期中会接收大约100多名开发者的代码,累计commit达到几千次。
由于QEMU底层使用了即时编译技术,因此对于所运行的平台有移植要求。如果要发挥即时编译的效率优势,需要重新编译即时编译的代码(QEMU内部称为tcg),涉及到几千行代码的工作量。否则只能使用平台无关的纯解释器运行模式,效率只有即时编译的10%。
长久以来,QEMU对mips平台只实现了32位的即时编译代码,一直没有实现64位的即时编译器。龙芯公司首次完成了这一重要功能特性,在mips64平台上实现了完整的后端即时编译代码,并且全部提交给上游qemu官方社区。经过一个月的审核,前后修改6次,又等待审核者过圣诞节的20天,审核者恢复工作的第一个回复的邮件就是通过审核。现在已经集成到官方git仓库,在下一版qemu-2.9.0中就正式包含了。
此事件对于龙芯公司介入qemu的mips分支具有决定性意义。
![](/uploads/allimg/170208/2-1F20R23404627.jpg)
QEMU官方代码库中的mips64平台支持代码,由龙芯公司提交
![](/uploads/allimg/170208/2-1F20R23454513.jpg)
![](/uploads/allimg/170208/2-1F20R23503I9.jpg)
nodejs官方代码库中的mips64平台支持代码,由龙芯公司提交
后面龙芯公司还会向Feodra25 mips64el发行版大量提交其它重要软件包,包括qemu、nodejs、eclipse、firefox等,成为这一发行版的重要开发力量。
五、总 结
龙芯公司拥有建设软件生态的信念,在短短1个多月内已经完成多个社区项目的提交成果,彰显了开放的胸怀和向全世界开发者贡献代码的热情。在2017年,龙芯已经准备好向更多的社区提交代码,包括内核、编译器、Java、浏览器、图形库、发行版都会不断涌现loongson.cn的身影,龙芯的影响力在开源领域落地生根。
龙芯公司坚定不移的建设自主IT生态,开源软件社区是建立生态的重要平台,是汇聚开发者力量的阵地。从2017年开始,龙芯针对上游开源软件社区的工作思路有了一个战略性的转折,将龙芯多年以来的软件开发向上游社区大举提交,向全世界的开发者和用户贡献大量有价值的代码资源,由往年的被动追随开源社区转型成为上游开源社区的活跃主体,进而掌握主导性和话语权。目前已经成功接收龙芯提交代码的开源社区主要有QEMU、nodejs、Fedora等。
![]() |
![]() |
![]() |
www.qemu.org | www.nodejs.org | www.fedora-project.org |
Qemu是一个有广泛影响力的开源虚拟机项目。QEMU最早是一个跨平台的二进制翻译器,用于模拟PC、Arm、Mips、Alpha等不同体系结构的CPU平台。近年来QEMU主要的发展方向是服务器虚拟化,对于KVM有良好的支持。QEMU现在每3个月升级一个小版本,在这个周期中会接收大约100多名开发者的代码,累计commit达到几千次。
由于QEMU底层使用了即时编译技术,因此对于所运行的平台有移植要求。如果要发挥即时编译的效率优势,需要重新编译即时编译的代码(QEMU内部称为tcg),涉及到几千行代码的工作量。否则只能使用平台无关的纯解释器运行模式,效率只有即时编译的10%。
长久以来,QEMU对mips平台只实现了32位的即时编译代码,一直没有实现64位的即时编译器。龙芯公司首次完成了这一重要功能特性,在mips64平台上实现了完整的后端即时编译代码,并且全部提交给上游qemu官方社区。经过一个月的审核,前后修改6次,又等待审核者过圣诞节的20天,审核者恢复工作的第一个回复的邮件就是通过审核。现在已经集成到官方git仓库,在下一版qemu-2.9.0中就正式包含了。
此事件对于龙芯公司介入qemu的mips分支具有决定性意义。
![](/uploads/allimg/170208/2-1F20R23404627.jpg)
QEMU官方代码库中的mips64平台支持代码,由龙芯公司提交
三、龙芯公司提交nodejs的mips64el平台支持代码
Nodejs是在服务器端运行Javascript语言的虚拟机平台和运行库集合,在开源Web开发领域影响很大。以往nodejs官方代码只支持mips32位平台,由龙芯公司实现了mips64平台支持代码,并且提交给官方,在9天的时间通过审核,并且已经到官方代码库。
Nodejs是在服务器端运行Javascript语言的虚拟机平台和运行库集合,在开源Web开发领域影响很大。以往nodejs官方代码只支持mips32位平台,由龙芯公司实现了mips64平台支持代码,并且提交给官方,在9天的时间通过审核,并且已经到官方代码库。
![](/uploads/allimg/170208/2-1F20R23454513.jpg)
![](/uploads/allimg/170208/2-1F20R23503I9.jpg)
nodejs官方代码库中的mips64平台支持代码,由龙芯公司提交
四、龙芯公司提交Fedroa25 mips64el版的remmina二进制包
Fedora25于2016年12月发布,是Fedora25的最新版本。Fedora25的mips64el版本由imgtec.com编译, 但是维护的工程师人数较少,缺少很多重要的软件包。龙芯公司有多年维护龙芯版本Fedora的能力和经验,投入了操作系统工程师在这个项目上,向Fedora25的mips64el提交了remmina(远程桌面软件)等二进制包,已经被官方接收。
Fedora25于2016年12月发布,是Fedora25的最新版本。Fedora25的mips64el版本由imgtec.com编译, 但是维护的工程师人数较少,缺少很多重要的软件包。龙芯公司有多年维护龙芯版本Fedora的能力和经验,投入了操作系统工程师在这个项目上,向Fedora25的mips64el提交了remmina(远程桌面软件)等二进制包,已经被官方接收。
![](/uploads/allimg/170208/2-1F20R23620K4.jpg)
Feodra25 mips64el源中的remmina二进制包,由龙芯公司提交
后面龙芯公司还会向Feodra25 mips64el发行版大量提交其它重要软件包,包括qemu、nodejs、eclipse、firefox等,成为这一发行版的重要开发力量。
五、总 结
龙芯公司拥有建设软件生态的信念,在短短1个多月内已经完成多个社区项目的提交成果,彰显了开放的胸怀和向全世界开发者贡献代码的热情。在2017年,龙芯已经准备好向更多的社区提交代码,包括内核、编译器、Java、浏览器、图形库、发行版都会不断涌现loongson.cn的身影,龙芯的影响力在开源领域落地生根。
龙芯向上游开源社区提交贡献的路线图