龍芯向QEMU、nodejs、Fedora等一批開源軟體社群提交貢獻
http://www.loongson.cn/news/company/514.html
一、龍芯社群工作的戰略轉折
龍芯公司堅定不移的建設自主IT生態,開源軟體社群是建立生態的重要平臺,是匯聚開發者力量的陣地。從2017年開始,龍芯針對上游開源軟體社群的工作思路有了一個戰略性的轉折,將龍芯多年以來的軟體開發向上遊社群大舉提交,向全世界的開發者和使用者貢獻大量有價值的程式碼資源,由往年的被動追隨開源社群轉型成為上游開源社群的活躍主體,進而掌握主導性和話語權。目前已經成功接收龍芯提交程式碼的開源社群主要有QEMU、nodejs、Fedora等。
www.qemu.org | www.nodejs.org | www.fedora-project.org |
二、龍芯公司提交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分支具有決定性意義。
QEMU官方程式碼庫中的mips64平臺支援程式碼,由龍芯公司提交
三、龍芯公司提交nodejs的mips64el平臺支援程式碼
Nodejs是在伺服器端執行Javascript語言的虛擬機器平臺和執行庫集合,在開源Web開發領域影響很大。以往nodejs官方程式碼只支援mips32位平臺,由龍芯公司實現了mips64平臺支援程式碼,並且提交給官方,在9天的時間通過稽核,並且已經到官方程式碼庫。
nodejs官方程式碼庫中的mips64平臺支援程式碼,由龍芯公司提交
四、龍芯公司提交Fedroa25 mips64el
Fedora25於2016年12月釋出,是Fedora25的最新版本。Fedora25的mips64el版本由imgtec.com編譯, 但是維護的工程師人數較少,缺少很多重要的軟體包。龍芯公司有多年維護龍芯版本Fedora的能力和經驗,投入了作業系統工程師在這個專案上,向Fedora25的mips64el提交了remmina(遠端桌面軟體)等二進位制包,已經被官方接收。
Feodra25 mips64el源中的remmina二進位制包,由龍芯公司提交
後面龍芯公司還會向Feodra25 mips64el發行版大量提交其它重要軟體包,包括qemu、nodejs、eclipse、firefox等,成為這一發行版的重要開發力量。
五、總 結
龍芯公司擁有建設軟體生態的信念,在短短1個多月內已經完成多個社群專案的提交成果,彰顯了開放的胸懷和向全世界開發者貢獻程式碼的熱情。在2017年,龍芯已經準備好向更多的社群提交程式碼,包括核心、編譯器、Java、瀏覽器、圖形庫、發行版都會不斷湧現loongson.cn的身影,龍芯的影響力在開源領域落地生根。
龍芯向上遊開源社群提交貢獻的路線圖