1. 程式人生 > >龍芯平臺搭建node.js環境指南

龍芯平臺搭建node.js環境指南

http://www.loongson.cn/news/company/449.html

一、初識node.js
Node.js是一種面向後臺Web伺服器的指令碼語言,其語法是Javascript。最早的Javascript是起源於Web瀏覽器前端,是用於加強HTML頁面的互動能力而設計的。但是,程式設計師們發現這種語言非常安全、靈活、高效,因此把它遷移到了後臺伺服器上,就是node.js,用於方便地搭建響應速度快、易於擴充套件的網路應用,從2009年出現開始,到現在已經有非常高的普及率。


Node.js形象標識

對於這樣一個使用廣泛的語言,龍芯平臺能不能方便的支援呢?今天我們就從頭開始搭建node.js的環境,試驗一下龍芯電腦好不好用。
一、

龍芯3A2000桌面電腦
我們使用的機器是一臺龍芯3A2000桌面電腦。龍芯3A2000是2015年8月釋出的最新4核CPU,目前已經批量供貨,效能與Intel i3看齊,足夠日常辦公使用,預裝了瀏覽器、Office、檔案管理、影音播放等常用的軟體,開箱即用。


龍芯3A2000桌面電腦

一、龍芯社群作業系統Loongnix
在今天的實驗中,我們仍然使用龍芯開源社群版作業系統Loongnix。Loongnix是由龍芯公司主導開發的,並且組織聯合產業鏈合作廠商、國際開源軟體社群及開源愛好者共同參與建設。社群以“開源、開放”的形式進行管理,設定核心、瀏覽器、JAVA、圖形、編譯工具等系列基礎軟體專案。在龍芯基礎軟體方面的研製優化成果將首先在社群版的Loongnix作業系統中整合和驗證。
這篇文章就是使用3A2000電腦上的金山WPS創作的,是不是很酷?


龍芯社群版作業系統Loongnix

Loongnix的下載地址在這裡:http://www.loongnix.org/?page_id=35873 。目前最新版本是Fedora21-MATE(20160503-Release)。下載映象iso檔案,支援製作U盤安裝live版本。
一、第一個node.js程式
實際上,Loongnix已經內建提供了node.js的執行環境。開啟終端,執行下面的命令,通過網路線上安裝必要的軟體包:

# yum install -y nodejs
(需要以管理員身份執行)

 
現在可以測試一下,檢查node.js的版本號:

$ node -v
v0.12.4

 
現在可以編寫一個最小的Web伺服器程式web.js:

[web.js]
var http = require("http");
http.createServer( function(req, res) {
  res.writeHead(200, {"Content-Type": "text/html"});
  res.write("<h1>Node.js OK</h1>");
  res.end("<p>Hello Loongson 3A2000!</p>");
}).listen(3000);
console.log("HTTP server is running at port 3000.");

 
執行這個程式:

$ node web.js
HTTP server is running at port 3000.

 
現在開啟一個瀏覽器,輸入地址:http://127.0.0.1:3000,可以看到龍芯執行node.js的正確頁面:


龍芯3A2000執行node.js小程式

一、編譯新版本的node.js
上面的例子已經證明龍芯執行node.js了,但是由於node.js的官方版本更新很快,我們往往需要下載最新原始碼進行編譯,才能得到最新的官方執行環境。開啟瀏覽器,直接訪問node.js主頁,下載最新版本node-v4.4.3.tar.gz。檔案只有21.4 MB。
下載地址:https://nodejs.org/en/
Linux上的軟體編譯方式都是大同小異,基本都是“解包 - 配置 - 編譯 - 安裝”的套路。Node.js也不例外,命令都是極其簡單。走完一遍流程之後就會發現,在Linux上安裝軟體其實比Windows上更簡潔方便。
1. 解包

$ tar zxf node-v4.4.3.tar.gz -C ~
$ cd ~/node-v4.4.3

 
由於官方node.js沒有在龍芯Loongnix上適配過,因此有一些檔案需要做微小的調整才能正確編譯。好在修改的量很小,最後只有在configure檔案的591和682行做了如下修改,主要是修改了體系結構的名稱:

591c591,592
<     '__MIPSEL__'  : 'mipsel',
---
>     '__MIPSEL__'  : 'mips64el',
> #    '__MIPSEL__'  : 'mipsel',
682c683
<   elif target_arch in ('mips', 'mipsel'):
---
>   elif target_arch in ('mips', 'mipsel', 'mips64el'):

 
2. 配置

$ ./configure

 
3. 編譯

$ make -j 8

 
下面就是等待編譯完成了。在龍芯3A2000上編譯大約需要10分鐘時間。
4. 安裝

# sudo make install
(這時候會提示輸入管理員密碼)

 
不出意外的話,上面的過程應該一切順利。
5. 執行
預設的安裝位置是在/usr/local下。我們先列印一下版本資訊吧:

$ /usr/local/bin/node -v
v4.4.3

 
看見了吧?版本標識裡面鮮明的列印了“4.4.3”,這個就是我們手工編譯的最新版本。測試前面的小例子,功能也是完全正常的。
二、更多的系統演示
Node.js是平臺無關的語言,這意味著龍芯平臺擁有了node.js的全套軟體生態,以往在X86平臺上搭建的伺服器應用系統,現在都能夠以“零代價”的方式遷移到龍芯平臺上來。
現在node.js的資源太多了,筆者只試驗了兩個較大規模的系統,一個是TiddlyWiki5,是一款互動式的wiki,非常靈活,它也可以在瀏覽器裡作為單一的HTML檔案或者是一款功能強大的應用程式;另一個是NodeOS,是採用node.js開發的一款友好的作業系統,該作業系統是完全建立在Linux核心之上的,並且採用shell和NPM進行包管理,採用node.js不僅可以很好地進行包管理,還可以很好的管理指令碼、介面等。
有興趣的朋友可以再找類似的系統搭建起來,參見這篇文章《NodeJS無所不能:細數10個令人驚訝的NodeJS開源專案》。(http://blog.csdn.net/kaitiren/article/details/17410209)


龍芯平臺上執行TiddlyWiki5系統


龍芯平臺上執行NodeOS系統

一、總結和體會
龍芯的軟體生態在蓬勃發展,除了本文搭建的node.js語言環境之外,所有主流的語言都已經能夠支援,包括Java、PHP、Python、Ruby都是有成熟的解決方案,對我們程式開發人員是一個很大的福音。龍芯CPU基本可以在開放市場一較高低了。
筆者在不到一天的時間裡不停的把玩龍芯3A2000電腦,非常穩定可靠,系統簡潔,體驗流暢,比Windows一點都不差,準備以後就做為我的主力辦公用機了。支援國產,從我做起!

1.png