亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網管 > 服務器 > 正文

thttpd服務器概述

2020-05-27 13:08:18
字體:
來源:轉載
供稿:網友

   隨著微處理器技術、計算機網絡技術的進步,基于嵌入式WEB的網絡數字視頻監控系統逐漸得到了人們的廣泛關注。把圖像采集、視頻壓縮和WEB功能集中到一個體積很小的設備內,可以直接連入局域網和Internet,達到即插即用,省掉多種復雜的電纜,安裝方便,用戶也無須安裝任何硬件設備即可觀看,這使得由嵌入式網絡視頻監控服務器組成的監控網絡組網和擴展都極為靈活方便。

  2 WEB服務器所在系統工作原理

  如圖1所示,系統有兩種網絡接入方式:通過PPPOE自動撥號,動態獲取IP聯入Internet;自定義靜態IP連入局域網。

thttpd服務器概述   武林網

  之后,系統的整個工作流程包括兩條主線:1.通過HTTP/TCP/IP方式,解析來自監控端的網頁請求,包括:攝像機控制(云臺上下左右、鏡頭光圈、縮放等等),數據庫讀寫(視頻參數如分辨率、亮色度、碼流,畫質),視頻調度與傳輸(多個用戶之間視頻數據的發送停止及其相互協調,系統參數也放在這里)。

  2.通過RTP/UDP/IP方式,為監控端提供所需的實時視頻信息。RTP/UDP/IP的方式兼顧了視頻傳輸的實時性與QoS保證。

  3 WEB服務器的選擇

  根據工作原理的描述,WEB服務器處于整個系統核心的位置,需要解決的幾個難點包括:

  1.安全性。只有授權登陸用戶才能進行系統配置(網絡參數、視頻特性等等)。普通用戶只能簡單監控。

  2.流量控制。視頻數據連續且大量,服務器應該具備一定的協調各路監控數據的能力。

  3.實時性。對于監控端的web請求指令響應速度,特別是在高負荷的情況下。

  4.性能。在多路監控請求同時存在的情況下,系統的響應速度。

  5.支持串口命令。云臺控制指令需要串口支持。

  6.數據庫交互。包括用戶數據庫,系統配置參數等等,都需要實現脫機保存。

  uCLinux下,主要有3個Web Server:Httpd、Thttpd和BOA.Httpd是最簡單的一個Web Server,它的功能最弱,不支持認證,不支持CGI(Common Gateway Interface,通用網關接口)。Thttpd和BOA都支持認證、CGI等,功能都比較全。BOA源代碼開放、性能可靠、穩定性好,但是是一個單任務的Web服務器。所以,我們選擇簡單、小巧、易移植、快速和安全的Thttpd. Thttpd在默認的狀況下,僅運行于普通用戶模式下,從而能夠有效地杜絕非授權的系統資源和數據的訪問,同時Thttpd全面支持HTTP基本驗證(RFC2617),可有效解決安全性的問題。

  另外,Thttpd對于并發請求不使用fork()來派生子進程處理,而是采用多路復用(Multiplex)技術來實現,因此效能很高,可以有效提高系統的性能。

  最后,Thttpd基于URL的文件流量限制,對于連續的視頻流量控制而言是非常方便的,象Apache就必須使用插件實現,效率較Thttpd低。在Thttpd的官方網站上有一個與其他web server的對比圖Benchmark.

  綜上所述,Thttpd在安全性、性能、流量控制等方面有效的滿足系統需要,當然,實時性也得到很好的保證。下面,結合源碼,首先實現Thttpd的基本功能,然后將視頻數據轉發、安全性、支持串口命令、數據庫交互的實現完善起來。

  4 Thttpd基本功能的實現

  首先,確保在編譯uCLinux內核的make menuconfig這一步,選中busybox中的Thttpd.

  然后,根據需要,修改源碼/user/thttpd下的config.h:#define DEFAULT_PORT 80 //服務器監聽端口#define DEFAULT_DIR /home/httpd //設定服務器根目錄#define INDEX_NAME index.html //設定訪問服務器時的默認主頁#define AUTH_FILE passwd //授權用戶數據庫文件#define CGI_PATTERN /cgi-bin/*.cgi //CGI的文件名格式#define CGI_PATH /home/httpd/cgi-bin //CGI的所在目錄

  接下來,建立服務器根目錄和文件目錄:

  由于uCLinux的根文件系統為ROM FS, 只讀, 因此要在生成文件系統映像之前建立好其中的目錄和文件。首先是Web服務器根目錄, 再是根目錄下的子目錄:文件根目錄和CGI程序目錄。修改/vendor/Samsung/4510B/makefile文件, 在ROMFS_DIRS 列出的目錄中增加home/httpd ( 服務器根目錄和文件根目錄),home/httpd/cgi-bin(CGI程序目錄) .

  最后,將監控系統相關的網頁和CGI程序分別放在/vendor/Generic/httpd和/vendor/Generic/httpd/cgi-bin中,就可以隨內核編譯過程時自動復制到image的相關目錄下。在/vendor/Samsung/4510B/rc中添加thttpd實現上電自動執行。

  5 HTTP基本驗證(RFC2617)的實現

  首先必須生成存放用戶及其密碼的數據庫文件:由于Thttpd 在http驗證的實現上基于b64_decode_table解密,因此需要提供相對應b64加密而成的數據庫文件。然后,編譯/user/ htpasswd.c,切換到相應目錄下,執行。/htpasswd -c passwd root Adding password for root. New password:Re-type new password:

  其中,-c表示創建一個名字為passwd的新的用戶數據加密文件,同時第一個用戶名為root.

  之后,將passwd文件復制到/vendor/Generic/httpd下面,并且注意在thttpd/config.h中define的AUTH_FILE與passwd同名。至此,thttpd的http驗證功能就順利添加完成。

  6 視頻調度與傳輸

  在本系統中,模擬視頻數據經過AD,采樣等預處理進入支持MPEG4編碼的ASIC芯片壓縮后,打包發送的任務由Thttpd完成。

  在多個監控端請求同時存在的情況下,指令響應本身Thttpd已經完成,所以我們只需要實現數據傳輸。

  在main函數里Main loop開始之前依次執行get_device,driver_init,device_init和alloc_resource,interrupt_enable,device_start,視頻流的編碼壓縮就開始了。添加定時器響應函數,(void) tmr_create((struct timeval*) 0, transfer_bitstream, (ClientData) mpeg4_fd, 0, 1 );其中mpeg4_fd,是編碼芯片的設備描述符,transfer_bitstream為響應函數(內容略)。

  然后,根據Thttpd連接請求的變化,在handle_read與handle_send中添加簡單相應連接有效性判斷的代碼即可完成數據調度與傳輸的功能。

  7 串口命令支持

  云臺控制指令的發送需要RS485的支持。

  在thttpd.c的main函數里添加設備支持: 打開串口設備。

  int com1fd = open(/dev/ttyS1,O_RDWR|O_NOCTTY);傳輸波特率的設定:tcgetattr(com1fd,&oldtio);cfmakeraw(&oldtio);cfsetispeed(&oldtio,B9600);cfsetospeed(&oldtio,B9600);tcsetattr(com1fd,TCSANOW,&oldtio);在libhttpd.c里包含定義云臺信令的頭文件后,在httpd_parse_request中添加如下代碼,memcpy(cmd,YT_FOCUS_IN,YT_CMD_NUM);將web請求轉換為對應的云臺信令存儲在cmd數組中,最后,由于uclinux把所有設備作為文件操作,所以可以通過write(com1fd,cmd,YT_CMD_NUM);將云臺信令正確發出去。

  8 配置信息的保存(MTD驅動的實現)

  uCLinux在arm上移植過程中,一般不采用FLASH文件系統,它是在Bootloader初始化系統并重映射內存后,由Bootloader將Kernel和根文件系統的映像從FLASH上直接復制到RAM uCLinux系統起始地址(0x8000),然后通過設定PC值將控制權交給uCLinux.

  這種方式采用的是ROMFS文件系統,系統結構簡單,實現方便,但ROMFS是只讀文件系統。RAM盤雖可寫但一旦掉電就會丟失內容。若想長久保存應用程序的配置文件可采用兩種方法:一種是將FLASH 上劃出幾個固定的扇區可讀可寫,用以專門存放所有要用到的配置文件;另一種是建立可寫的JFFS2 文件系統。前一種方法代碼簡單、靈活, 適用于不太頻繁的文件寫入。后一種實現起來也比較簡單,但時間、空間等方面的代價要高于前一種,適用于非常頻繁的文件寫入(比如一分鐘超過十次)?;诒鞠到y中對配置數據存儲的實時性要求不高,而嵌入式資源又十分寶貴,因此考慮采用第一種方法,這就是MTD(memory technology device內存技術設備)。MTD是用于訪問memory設備(ROM、flash)的Linux的子系統。其所有源代碼在/drivers/mtd子目錄下。

  由于MTD的主要目的是為了使新的memory設備的驅動更加簡單,因為它介于特定的閃存設備和文件系統之間,可以理解為它在硬件和上層之間提供了一個抽象的接口。 所以硬件驅動程序不需要知道象JFFS2和FTL那樣的用戶模塊使用的方法。所有它們真正需要提供的就是一組對底層閃存進行read、write和erase操作的簡單例程,即/mtd目錄下mtd-utils.c相應函數。將mtd-utils.c繼承過來,另外,加上手工添加的flash分區表即可達到配置文件保存的目的。

  本系統只有一片FLASH, 大小為2M.擬分區如下:name: bootloader (128KB),

  size: 0x20000,

  offset: 0x0,

  mask_flags: MTD_WRITEABLE // 只讀分區

  name: kernel & rootfs (1856KB),

  size: 0x1D0000,

  offset: 0x20000

  name: system config (64KB),

  size: 0x10000,

  offset: 0x1F0000

  將包含本分區表的文件放在drivers/mtd/map下,并修改相應的makefile使之編譯時有效。

  然后,選擇適當的 MTD用戶模塊,啟用對閃存的訪問:MTD_CHAR和MTD_BLOCK.MTD_CHAR提供對閃存的原始字符訪問,而MTD_BLOCK將閃存設計為可以在上面創建文件系統的常規塊設備(象IDE磁盤)。與MTD_CHAR關聯的設備是在/vendor/Samsung/4510B/makefile的DEVICES中添加mtd0,c,90,0、mtd1,c,90,2、mtd2,c,90,4,而與 MTD_BLOCK關聯的設備是添加mtdblock0,b,30,0、mtdblock1,b,30,1、mtdblock2,b,30,2.

  最后,需要將 MTD 子系統編譯到內核中,即打開make menuconfig里MTD相關的選項。

  因為要使用當中涉及多個配置文件,而讀寫FLASH 的速度較慢,故每次配置完成后不立即寫入flash,而是先把配置文件存在thttpd代碼開辟的臨時數組里,然后一次性(比如重啟前)寫入指定的FLASH分區。

  9 配置信息的管理

  系統第一次啟動會加載一組默認配置,這是通過判斷flash最后一個system config (64KB)分區是否未被初始化(全為1或0)來實現的。在thttpd.c的main函數,加入open(/dev/mtd2,O_RDWR)可打開mtdblock2.將drivers/mtd下mtd-utils.c復制到user/thttpd目錄下,即可使用其中的一些函數方便的實現flash的read和write操作。

  10 結語

  嵌入式系統Web server與CGI 技術結合使得對嵌入式系統的管理和使用更為簡便直接。基于Web的視頻監控系統是目前監控領域發展的主流和方向。本文根據監控系統對數據吞吐量和安全可靠性等各方面的實際要求,結合相關研究的新進展,深入討論了web服務器在監控系統設計中的應用技巧,并詳細做了實現上的闡述。對所有基于嵌入式web技術的監控系統的設計具有非常實際的指導作用。讀者可在本文研究的基礎上做進一步的完善。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
96pao国产成视频永久免费| 国产一区二区三区中文| 91久久久久久久| 日韩一区二区久久久| 亚洲成年人影院在线| 国产精品久久国产精品99gif| 91亚洲国产成人精品性色| 久久久www成人免费精品张筱雨| 亚洲精品av在线播放| 91久久久久久久久| 亚洲第一精品夜夜躁人人爽| 欧美丝袜第一区| 欧美孕妇孕交黑巨大网站| 亚洲一区二区三区四区视频| 黑人极品videos精品欧美裸| 欧美巨大黑人极品精男| 91精品国产网站| 日本中文字幕久久看| 久热爱精品视频线路一| 日韩欧美一区二区三区久久| 亚洲精品国产综合久久| 国产精品白嫩初高中害羞小美女| 国产精品国产三级国产aⅴ9色| 欧美成人四级hd版| 久久香蕉频线观| 欧美色另类天堂2015| 中文字幕亚洲无线码在线一区| 亚洲深夜福利视频| 欧美在线亚洲一区| 亚洲最大福利网| 久久精品99国产精品酒店日本| 欧美成人免费播放| 久久免费视频观看| 欧美一级在线亚洲天堂| 青青在线视频一区二区三区| 中文字幕在线成人| 一级做a爰片久久毛片美女图片| 国产精品激情av电影在线观看| 青青青国产精品一区二区| 538国产精品一区二区在线| 欧美黑人国产人伦爽爽爽| 亚洲精品自产拍| 一区二区三区美女xx视频| 在线精品国产成人综合| 久久中文精品视频| 久久精品美女视频网站| 亚洲精品一区二区三区不| 亚洲香蕉成人av网站在线观看| 欧美性猛交丰臀xxxxx网站| 亚洲一区二区三区成人在线视频精品| 亚洲国产日韩精品在线| 青青久久av北条麻妃黑人| 最近2019年日本中文免费字幕| 色噜噜狠狠狠综合曰曰曰| 亚洲新声在线观看| 欧美成人精品一区二区三区| 久久露脸国产精品| 亚洲美女免费精品视频在线观看| 日韩精品免费视频| 一二美女精品欧洲| 欧美性一区二区三区| 26uuu亚洲国产精品| 久久免费少妇高潮久久精品99| 91精品在线观看视频| 久久韩剧网电视剧| 51色欧美片视频在线观看| 欧美午夜女人视频在线| 国产精品久久久久久五月尺| 亚洲欧洲黄色网| 日韩美女免费视频| 久久久久久久国产精品视频| 91日韩在线播放| 91精品久久久久久久久中文字幕| 97精品一区二区三区| 91夜夜未满十八勿入爽爽影院| 国产欧美 在线欧美| 欧美理论电影在线观看| 国产成人精品日本亚洲| 久久久久久久一| 亚洲一区二区久久久久久久| 91成人在线观看国产| 亚洲精品自拍视频| 奇米影视亚洲狠狠色| 国产v综合v亚洲欧美久久| 91免费视频网站| 成人免费视频在线观看超级碰| 国产精品h片在线播放| 久久久午夜视频| 秋霞成人午夜鲁丝一区二区三区| 国产精品久久久久久久app| 8050国产精品久久久久久| 亚洲欧美日韩图片| 亚洲成人黄色网| 久久91亚洲精品中文字幕| 国产精品老女人视频| 欧美性在线视频| 欧美亚洲视频一区二区| 97av在线视频| 欧美精品福利视频| 久久久综合免费视频| 久久亚洲精品中文字幕冲田杏梨| 亚洲人免费视频| 亚洲男人天堂2019| 91精品国产高清自在线看超| 久久精品久久久久久| 精品人伦一区二区三区蜜桃免费| 亚洲色图第一页| 日本久久久久久| 影音先锋欧美精品| 久久最新资源网| 国产成人精品国内自产拍免费看| 成人444kkkk在线观看| 中文字幕精品网| 亚洲精品美女久久久| 91久久久久久久久久| 九九久久久久99精品| 国产成人精品网站| www高清在线视频日韩欧美| 91九色视频导航| 国产精品高潮呻吟视频| 成人xxxx视频| 国产精品人成电影在线观看| xxxxx成人.com| 久久精品亚洲国产| 久久亚洲精品国产亚洲老地址| 操人视频在线观看欧美| 日本a级片电影一区二区| 日韩欧美福利视频| 久久亚洲综合国产精品99麻豆精品福利| 国产精品永久免费观看| 亚洲精品日韩激情在线电影| 97国产精品免费视频| 亚洲精品国偷自产在线99热| 日韩中文娱乐网| 成人黄色在线免费| 国产精品日日摸夜夜添夜夜av| 国产91在线高潮白浆在线观看| 成人欧美一区二区三区在线| 日韩欧美精品在线观看| 精品自拍视频在线观看| 精品国偷自产在线视频| 欧美乱大交做爰xxxⅹ性3| 亚洲精品日韩av| 成人免费网站在线看| 亚洲欧美日韩久久久久久| 国产成人高清激情视频在线观看| www.久久久久| 国产日韩中文字幕| 最近2019免费中文字幕视频三| 久久免费高清视频| 日韩免费观看av| www.99久久热国产日韩欧美.com| 国产精品三级美女白浆呻吟| 性欧美暴力猛交69hd| 66m—66摸成人免费视频| 亚洲精品成人免费| 不卡毛片在线看| 国产精品jvid在线观看蜜臀| 久久久亚洲成人| 欧美大片在线看免费观看| 欧美大尺度在线观看| 久久久久久av| 亚洲欧美日韩精品久久| 亚洲va欧美va国产综合剧情|