999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

小型Web服務器Boa的移植與驗證

2016-02-23 07:52:43管華慶
計算機技術與發展 2016年2期
關鍵詞:進程嵌入式程序

管華慶

(南京郵電大學 通信與信息工程學院,江蘇 南京 210000)

小型Web服務器Boa的移植與驗證

管華慶

(南京郵電大學 通信與信息工程學院,江蘇 南京 210000)

現代通信技術和計算機技術都迎來了顯著的發展,各個應用領域都要求將可移動設備接入網絡。這就要求構建嵌入式Web服務器,讓用戶可以接入服務器進行數據共享和相互通信。嵌入式Web服務器具有許多優點,如:結構簡單、功能低等。把嵌入式設備接入互聯網可以實現方便、實時地通過網絡監控設備的工作狀態,再將數據以直觀、形象的網頁方式顯示在PC、PDA、Phone等設備上,不需要專門的應用軟件。文中便攜式通信地球站監控系統使用的是ARM9系列芯片,在控制板硬件之上移植Linux操作系統,系統上移植合適的應用層Web服務器。系統采用的是Boa服務器。它是一種B/S(瀏覽器/服務器)的架構方式,用戶在終端上打開瀏覽器輸入網址訪問已構建的嵌入式Web服務器,就可以對設備進行方便、實時、簡便的監控。

便攜式衛星通信地球站;嵌入式Web服務器;B/S架構;Boa

0 引 言

隨著互聯網[1]的不斷發展和廣泛應用,人們獲取信息的主要方式也變成網頁的形式,網頁呈現的內容不但品種繁多,而且絢麗多彩。這種方式正是平時所說的B/S(瀏覽器/服務器)模式。客戶通過任意一款瀏覽器,比如:IE、Firefox、360等,在地址欄輸入URL(統一資源定位符)后連上服務器,提供Web服務的服務器就會將存儲在本地的資源發送給客戶端。客戶端服務器之間的交互必須遵循一定的協議規則,比如:Http、TCP/IP等。

目前,這種應用廣泛的Web服務器[2]模式和美觀的網頁設計技術也在嵌入式系統中得到了廣泛的發展,比如:對工業控制設備、儀器儀表、家用電器進行實時監控[3]。嵌入式Web服務器本質上是一種駐留在某類嵌入式設備上的應用層程序,它可以完成如下工作:運行守護進程,網絡環境的初始化,端口監聽,等待客戶請求,處理請求,存儲數據,響應請求內容,等等。

嵌入式Web服務器[4]種類繁多:Lighttpd、Apache、Goahead、Http、Thttpd和Boa。考慮到嵌入式系統資源、運行能力等的限制,文中系統采用Boa服務器作為系統的Web服務器。

Boa代碼量少,可執行代碼僅61.3 kB,支持身份認證和動態網頁CGI,功能全面,穩定,適用性強,安全性高。Boa服務器是一種單任務的Web服務器,它不能并發處理多個用戶請求進程,只能按照請求隊列中排隊的順序,逐個響應。

1 Web服務器Boa的工作流程

守護進程是指一種獨立于任何終端控制的運行在系統后臺的特殊進程。它能每隔一定周期執行特定任務或者某類事情發生后觸發其運行。Boa[5]通過服務器守護進程實現與客戶端之間的交互。守護進程的啟動方式有兩種:一種是在Linux啟動腳本文件/rtc/rcS.d中增加代碼:./var/www/boa在系統啟動時自動運行;另一種是在終端上用戶根據需要啟動輸入代碼:./var/www/boa。

服務器守護進程啟動之后首先進行網絡環境參數的初始化工作。之后Boa服務器進程一直處于運行狀態,并創建套接字,創建好套接字后的進程將會一直監聽80端口是否有來自客戶端的請求。客戶端發起一個請求,要求建立一個到服務器80端口的TCP鏈接,Boa服務器[6]接收HTTP請求,并將獲得的全部請求數據保存在request的結構體隊列中。由于Boa是一種單任務、單進程的迭代式服務器,對于客戶端多個、連續的請求都會按照先進先出的原則存儲在請求隊列中,而不會像并發服務器一樣創建新的進程來處理客戶端請求,而本身仍然處于監聽狀態。

Boa只能處理單任務、單進程的服務器,它每次從request隊列[7]中取出一個請求,創建相應的進程,根據request數據結構中請求的不同狀態進行相應處理。對于符合HTTP協議的請求,Boa返回404錯誤;對于符合協議的請求,Boa將頭部信息提取,完成環境變量的設置,查看環境變量中is_cgi位的值。如果該位值為0說明客戶端請求的是服務器本地存儲的靜態網頁,服務器不做處理,讀取本地文件作為響應返回;該位上的值非0表示CGI程序,Boa服務器必須讀取環境變量中的數據,根據數據值在自身運行CGI程序,將程序的輸出組織成文件,作為最終響應文件給客戶端。

Web服務器工作流程見圖1。

2 Boa服務器的搭建

按順序執行以下幾步完成Boa服務器的移植過程:

1)完成Boa程序的移植[8]。

(1)首先登錄Boa的官方網址http://www.boa.org下載“boa-0.94.13”版本。

(2)解壓壓縮包:#tar zxvf boa-0.94.13.tar.gz。

(3)修改源碼并交叉編譯。

圖1 Web服務器工作流程

進入源碼目錄的src子目錄。

#cd Boa-0.94.13/src

生成Makefile文件

#./config

修改Makefile文件,找到:CC=gcc和CPP=gcc-E,然后分別改成:

CC=arm-linux-gcc

CPP=arm-linux-gcc-E

#vimMakefile

修改boa.c文件,將225行、226行和227行的代碼注釋掉

#vimboa.c

修改compat.h文件,將120行修改為

#define TIMEZONE_OFFSET(foo)(foo)

->tm_gmtoff

#vimcompat.h

修改config.c文件,注釋掉266行到286行

#vimconfig.c

接著修改log.c文件,注釋掉72、73、和74行

#vimlog.c

保存文件并退出后進行編譯。命令:

#Make

編譯之后會在源文件目錄下生成可執行文件“boa”。接著將可執行文件復制到服務器設備系統的/var/www目錄下,同時在文件系統的/etc/下建立子目錄,把配置文件boa.cof拷貝到此目錄下,命令為:

#cp boa/var/www

#mkdir /etc/boa

#cpboa.conf /etc/boa

(4)創建日志文件目錄。

#mkdir /var/log/

2)修改boa的配置文件boa.Conf。

(1)修改服務器的配置文件[9]。

#cd /etc/boa

#vimboa.conf

將111行代碼改為:

DocumentRoot /var/www 即規定文件主目錄為/var/www

將193行代碼改為:

ScriptAlias /cgi-bin /var/www/cgi-bin

這是起別名的方法,/var/www/cgi-bin和/cgi-bin/現在指的是同一個文件夾。只要在瀏覽器中輸入/cgi-bin/就可以訪問板子上的實際路徑

將194行增加一行代碼:

ScriptAlias index.html /var/www/html

/index.html 相應的起別名方法,即規定測試目錄的虛擬路徑的別名

(2)配置文件boa.conf的其他內容都可以按照其原先內容保持不變。

3)最后必須編寫相應的靜態HTML和CGI腳本程序,并放入/var/www/cgi-bin/文件夾下,通過瀏覽器測試移植是否成功完成。

3 系統平臺介紹

文中系統為一個便攜式衛星通信地球站監控系統的Web監控系統,包括監控終端、傳輸網絡、Web服務器、數據處理單元、數據庫等幾個功能模塊[10]。

監控終端采用PC或者PAD等移動設備,設備上的瀏覽器工作于TCP/IP協議的應用層,使用HTTP協議進行通信。它可以向服務器發送監控命令或者從服務器獲得地球站的狀態;數據傳輸部分可以采用兩種方式。如果監控終端采用的是PC機,可以用一根網線將服務器和客戶端連接起來,實現點對點通信方式。另一方面如果采用的是移動終端,如:PAD或者Phone等,也可以安裝無線射頻模塊組建自己的局域網,通過Wifi進行通信;數據處理模塊采用AT91SAM9260微處理器[11],其主要功能是運行CGI程序和伺服控制程序,為了實現瀏覽器和服務器之間的動態網頁交互方式,如何設計出準確、快速地處理客戶端發來的請求數據的CGI程序是該系統的關鍵,而這也依賴于主控芯片的硬件處理能力。最后的數據庫部分,作為一個系統,為了防止來自外部的惡意修改,必須有驗證系統登錄身份的功能,這些身份數據就存儲在數據庫中,當然其中還有一些對星的參數。文中系統采用SQlite輕型數據庫[12],CGI程序利用它提供的API函數完成數據庫的查詢、插入和修改等常用功能。

系統工作流程見圖2。

圖2 系統工作流程

4 網頁設計技術簡介

客戶機和服務器之間交互的載體是網頁。網頁中不但可以有文字,而且可以插入圖片,甚至能將視頻文件嵌入網頁中。網頁給用戶帶來了愉快的用戶體驗。

該系統采用的主要網頁設計技術有:CGI程序設計、HTML、JavaScript腳本語言和CSS等方式。這些綜合起來就是人們常用的Ajax技術。CGI又叫做通用網關接口[13],CGI程序是一種運行在服務器端的動態程序。它能夠代替服務器來讀取數據庫的數據。如果沒有CGI,一個Web服務器只能給用戶提供靜態網頁。有了CGI標準,程序員編寫主頁文件時可以將數據發送到服務器,服務器利用外部擴展程序來對數據進行處理,處理之后的程序以網頁的方式保存,供用戶訪問。Ajax編程技巧也是一種常用的對Web網頁的局部內容進行動態刷新的技術。JavaScript腳本首先創建一個XMLHttpRequest對象,這個對象經過初始化之后,執行它的send()方法通過post或者GET方式向服務器端的CGI程序發送請求,CGI程序處理數據之后又將最后的結果發送給客戶端的JavaScript腳本程序,腳本將數據重新寫入到網頁上面相應的控件里,這樣就實現了網頁的局部刷新,免去從服務器獲得整個網頁。CSS[14]技術主要針對頁面的布局,設計出美觀、整潔的網頁,提供給用戶更加友好的交互。

5 測試Web服務器Boa

文中以下為靜態網頁測試。

5.1 測試環境的相關說明

編寫測試代碼index.html。在PC上使用交叉編譯器編譯源程序后放入上小節指定的文件夾/var/www/cgi-bin/。用戶使用網線將一臺PC機和便攜式衛星通信地球站控制板互聯。必須確保控制板和試驗用PC機處于同一個網段,所以設置PC機的IP地址為10.10.150.174,子網掩碼設置為255.255.255.0,便攜式衛星控制地球站的IP地址設置為10.10.150.180。最后打開PC機的瀏覽器輸入以下網址:http://10.10.150.180,看是否出現需要的網頁。

5.2 測試用例與測試現象

#include

int mian()

{

printf(“Content-type:text/html ”);

printf(“ ”);

printf(“Text ”);

printf(“ ”);

printf(“ ”);

printf(“

” );

printf(“HELLO WORLD! ” );

printf(“

” );

printf(“<ody> ”);

printf(“ ”);

return 0;

}

由于ARM板資源有限,必須在PC機上將源文件進行交叉編譯成在Linux系統下的文件,最后將編譯好的文件放到開發板的/var/www/cgi-bin目錄下。相關代碼如下:

#arm-linux-gcc -o hello.cgi hello.c

#cp hello.cgi /var/www/cgi-bin/

瀏覽器中輸入網址:

http://10.10.150.180/cgi-bin/hello.cgi

即可看到如圖3所示的網頁。

圖3 結果驗證圖

6 結束語

文中基于AT91SAM9260型號的微處理器ARM9主控板[10],完成Web服務器的移植,實現在PC上以網頁的方式訪問主控制板上服務器中的資源。最后通過一段簡單的CGI程序測試能否正常工作,結果表明該服務器工作時間持久,工作性能穩定,控制方便。文中介紹的移植方法可以給其他服務器的移植提供有價值的參考。

[1] 王興著.Linux網絡服務器應用教程[M].北京:清華大學出版社,2007.

[2] 徐春艷.嵌入式WEB服務器的研究與實現[D].南京:南京理工大學,2008.

[3] 謝新民,丁 峰.自適應控制系統[M].北京:清華大學出版社,2006.

[4] 呂 鑫.基于ARM和Linux嵌入式Web服務器的設計[D].大慶:大慶石油學院,2008.

[5] 張 勤.Linux服務器配置全程實錄[M].北京:人民郵電出版社,2010.

[6] 吳玉成,侯良偉,冷建筑.嵌入式Linux下WEB服務器的設計與實現[J].數據通信,2008(6):43-46.

[7] 王麗娜.衛星通信系統[M].北京:國防工業出版社,2006.

[8] Stevens W R,Rago S A.Advanced programming in the UNIX environment[M].Beijing:Posts and Telecom Press,2006.

[9] Helstrom C W.Statistical theory of signal detection[M].Oxford:Pergamon Press,1996.

[10] 吳士力.嵌入式Linux應用開發全程解析與實戰[M].北京:機械工業出版社,2010.

[11] INTELSAT SSOG 210.Earthstation verification tests[S].2000.

[12] Agilent Technologies.User’s/programmer’s reference[M].USA:Agilent Technologies,2006.

[13] Kraus J D,Marhefka R J.Antennas:for all applications[M].New York:New McGraw-Hill,2001.

[14] Bridge W M.Cross coupling in a five horn monopulse tracking system[J].IEEE Transactions on Antennas AKD Propaqation,1972,AP-20(4):437-442.

Transplantation and Verification of Embedded Web Server Boa

GUAN Hua-qing

(College of Telecommunications and Information Engineering,Nanjing University of Posts and Telecommunications,Nanjing 210000,China)

With the development of computer technology and modern communication technology,the device is connected to the network which is available to the general requirements of modern mobile terminals.Compared with the Internet Web applications,the embedded Web server has the advantages of simple structure and low functional requirements.The embedded devices connected to the Internet makes operating state to be easily monitored in real-time through of the network.Then the data can be vividly and intuitively displayed on PC,PDA,Phone and other equipments.Users do not need special application software.This portable communication earth station monitoring system is porting embedded Linux operating system on ARM9 chip.The appropriate application layer Web server on this system is installed,the system uses the Boa server,which is based on B/S structure mode,and user opens a browser on your terminal server to access Web pages stored in the satellite communication earth station,bringing real-time,portable monitor to the user.

portable satellite communication earth station;embedded Web server;B/S structure;Boa

2015-05-12

2015-08-14

時間:2016-01-26

國家自然科學基金資助項目(61271234)作者簡介:管華慶(1990-),女,碩士研究生,研究方向為衛星通信技術。

http://www.cnki.net/kcms/detail/61.1450.TP.20160126.1517.032.html

TP39

A

1673-629X(2016)02-0128-04

10.3969/j.issn.1673-629X.2016.02.029

猜你喜歡
進程嵌入式程序
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
搭建基于Qt的嵌入式開發平臺
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
Altera加入嵌入式視覺聯盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
主站蜘蛛池模板: 国产精品私拍在线爆乳| 第一区免费在线观看| 国产二级毛片| 538国产在线| 手机永久AV在线播放| 91青青视频| 欧美国产中文| 69国产精品视频免费| 日韩精品一区二区三区免费在线观看| 色屁屁一区二区三区视频国产| 在线观看91精品国产剧情免费| 国产乱子伦视频在线播放| 久久人妻xunleige无码| 亚洲精品国产自在现线最新| AV熟女乱| 欧美福利在线| 不卡国产视频第一页| 亚洲资源站av无码网址| 国产极品美女在线| 全午夜免费一级毛片| 国产精品自拍露脸视频| 国产成人高清亚洲一区久久| 亚洲乱码精品久久久久..| 国产福利免费视频| 欧美激情网址| 在线99视频| 亚洲美女一区| 精品一区二区无码av| 成人精品区| 欧美一级夜夜爽| 久久伊人色| 亚洲人在线| 国产爽妇精品| 欧美特黄一级大黄录像| 日本尹人综合香蕉在线观看| 亚洲人在线| 国产精品专区第一页在线观看| 亚洲精品福利网站| 国产丝袜啪啪| 伊人久久久久久久久久| 58av国产精品| 国产97视频在线| 综合色天天| 人妻一区二区三区无码精品一区| 爆乳熟妇一区二区三区| 色婷婷亚洲综合五月| 最近最新中文字幕在线第一页 | 久久青草免费91线频观看不卡| 亚洲嫩模喷白浆| 欧美亚洲一二三区 | 在线精品亚洲一区二区古装| 色偷偷综合网| 欧美日韩亚洲国产| av免费在线观看美女叉开腿| 色色中文字幕| 色综合中文字幕| 97国内精品久久久久不卡| 99久久精品免费看国产免费软件| 日韩av高清无码一区二区三区| 免费一级毛片| 2021国产乱人伦在线播放| 亚洲精品无码成人片在线观看 | 亚洲精品第五页| 欧美视频在线播放观看免费福利资源 | 久久黄色毛片| 国内精品免费| AV在线麻免费观看网站| 亚洲乱码精品久久久久..| 日韩第九页| 国产理论一区| 国产精品lululu在线观看| 激情综合五月网| 性视频久久| 国产国产人在线成免费视频狼人色| 欧美国产日韩另类| 亚洲bt欧美bt精品| 久久国产精品夜色| 高潮爽到爆的喷水女主播视频| 熟妇无码人妻| 毛片a级毛片免费观看免下载| 国产日本一区二区三区| 97人妻精品专区久久久久|