<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于PowerPC的VPN網(wǎng)關(guān)設計

基于PowerPC的VPN網(wǎng)關(guān)設計

作者: 時(shí)間:2014-07-28 來(lái)源:網(wǎng)絡(luò ) 收藏

  嵌入式L inux操作系統的構建

本文引用地址:http://dyxdggzs.com/article/256143.htm

  通常的嵌入式系統開(kāi)發(fā)大致可以分為硬件設計、裝載或引導嵌入式系統、在嵌入式系統上建立開(kāi)發(fā)平臺以及開(kāi)發(fā)應用等四個(gè)步驟。

  利用ppcboot引導

  ppcboot是德國Denk軟件工程中心開(kāi)發(fā)的引導程序,我們在研究開(kāi)發(fā)中使用了其中的ppcboot-1. 1. 5作為開(kāi)發(fā)藍本,對其代碼進(jìn)行了修改,以滿(mǎn)足硬件設計的要求。

  ppcboot源碼樹(shù)的目錄結構

  CHANGELOG / /記錄歷次版本升級時(shí)的修改內容

  COPYING

  CRED ITS

  MAKEALL

  Makefile / /制作文件

  README / /必讀的文件

  System. map / /當編譯連接完成后,所生成的ppcboot二進(jìn)

  / /制中所有函數、數據的地址信息

  board / /各種與板子硬件關(guān)聯(lián)的. c模塊

  common / /一些通用ppcboot命令集的. c模塊

  config. mk

  cpu / /與MPC8xx硬件關(guān)聯(lián)的系統初始化. c代碼

  disk / /磁盤(pán)分區支持

  doc / /技術(shù)文檔目錄

  examp les / /一些簡(jiǎn)單的、無(wú)需操作系統的應用程序

  fs / /ppcboot中對文件系統的支持

  include / /頭文件

  net / /網(wǎng)絡(luò )協(xié)議支持

  ppc  / /處理器運行時(shí)環(huán)境支持

  ppcboot / / elf32格式的ppcboot二進(jìn)制執行文件

  ppcboot. bin / / raw二進(jìn)制格式的ppcboot執行文件

  ppcboot. map / / s2record格式的ppcboot執行文件

  rtc / /實(shí)時(shí)時(shí)鐘支持

  tools / /與ppcboot相關(guān)的一些工具軟件

  ppcboot的特點(diǎn)

  經(jīng)修改后, ppcboot-1. 1. 5 具有如下特性: ( 1 ) 支持bootm,直接從flash引導L inux,并提供軟件工具集,可構建出最終燒結用的影像; (2) 支持從doc或flash memory引導L inux,并提供工具集,可構建出最終燒結用的影像; (3) 板上flash /doc讀、寫(xiě)、擦除功能; (4) 支持串行口kermit協(xié)議下載代碼或數據; (5) 支持scc1以太網(wǎng)口啟動(dòng)tftp下傳數據:如內核、ramdisk、autoscrip t等影像; ( 6) 支持串行口srecord下載代碼或數據; (7) 支持autoscrip t; (8) 提供板上內存讀寫(xiě),格式化顯示,可進(jìn)行簡(jiǎn)單測試。

  當完成ppcboot-1. 1. 5的改寫(xiě)后,對其進(jìn)行編譯,得到二進(jìn)制的ppcboot. bin代碼,然后將其燒錄在板上的BOOTEPROM中,這樣就可以在上電后完成對系統的引導。

  建立L inux開(kāi)發(fā)平臺

  修改和編譯嵌入式L inux內核

  Linux內核有自己的結構體系,進(jìn)程管理、內存管理和文件系統是其最基本的三個(gè)子系統。圖2 為L(cháng) inux 內核的結構。圖中虛線(xiàn)框中部分可以看成是Linux內核的單內核結構,因此修改內核必須注意各子系統間的協(xié)調。



  Linux開(kāi)發(fā)平臺使用內核版本為2. 4. 4的嵌入式L inux操作系統作為 網(wǎng)關(guān)的基本軟件平臺。為了支持硬件平臺,需要對內核進(jìn)行修改,并增加相應設備的驅動(dòng)程序。

  (1) 驅動(dòng)程序列表。

  DOC 驅動(dòng)程序源碼: /home / sjw01 / linux/drivers/mtd /devices/ doc2000. c;

  以太網(wǎng)驅動(dòng)程序源碼: / home / sjw01 / linux/ arch /ppc /8xx _ io / enet_scc1. c fec. c;

  RTC 驅動(dòng)程序源碼: /home / sjw01 / linux/drivers/unis _ rtc / rtc8xx. h rtc8xx. c setrtc8xx. cMkaefile setrtc8xx;

  串口驅動(dòng)程序源碼: /home / sjw01 / linux/ arch /ppc /8xx_ io / uart. c;

  flash memory 驅動(dòng)程序源碼: /home / sjw01 / linux/drivers/mtd / map s/unis. c。

  (2) 交叉編譯環(huán)境。

  使用hardhat CDK2. 0作為開(kāi)發(fā)工具,需將下面的路徑加入用戶(hù)環(huán)境變量$PATH 中: /op t/hardhat/devkit/ppc /8xx/bin; #export PATH = $PATH: /op t/hardhat/devkit/ppc /8xx/bin或編輯“. bash_p rofile”文件的PATH行。對于應用軟件,一般情況下只要替換編譯器cc為ppc_8xx-gcc,重新編譯一下源代碼即可。

  構建目標文件系統

  配置DOC或FlashMemory中的文件系統是件很講究的事情,主要是因為DOC /Flash容量有限,在保證正常功能的前提下,要盡可能地少占用資源。

  總體上,文件分成如下幾類(lèi): (1)共享庫類(lèi):這類(lèi)文件必不可少。(2) L inux/GNU系統實(shí)用工具:盡量用busybox、tinylogin代替,能減則減。(3)配置文件:多出現在/ etc下,不太占地方,但要注意協(xié)調關(guān)系。(4)用戶(hù)應用程序:編譯時(shí)盡量使用動(dòng)態(tài)連接,編譯后strip一下,放到固定位置。

  目標文件系統列表如表1所示。



  所有配置文件、可執行文件、庫文件的位置均符合L inux操作系統的慣例。

  IPSec實(shí)現中的硬件加密算法

  在安全網(wǎng)關(guān)中,加密算法的安全、高效,是網(wǎng)關(guān)安全性和有效性的重要保證。為此,在設計中采用了一種硬件加密模塊的方式,使得我們的VPN網(wǎng)關(guān)可以在硬件上使用不同的加密算法。在我們的默認配置中,使用國密辦批準的分組加密算法芯片SSF10。

  為了使用硬件加密模塊,需要在L inux內核的IPSec實(shí)現中添加和修改相應的代碼,下面對其簡(jiǎn)單說(shuō)明。由于IPSec實(shí)現在內核中的特殊位置,并且MPC855T的主頻較低 (80MHz) ,采用訪(fǎng)問(wèn)設備驅動(dòng)文件的方式訪(fǎng)問(wèn)硬件SSF10加密模塊會(huì )造成速率大幅降低。因此,我們采用I/O直接訪(fǎng)問(wèn)硬件SSF10芯片。這需要將模塊驅動(dòng)中的操作分散到IPSec實(shí)現的相關(guān)部分,替換原來(lái)的軟件加密算法。同理,可以使用硬件DES/3DES、硬件AES算法和其他國密辦批準的算法,用硬件實(shí)現數據加密。對IPSec的一個(gè)實(shí)現freeswan算法部分進(jìn)行修改,使其可以實(shí)現硬件算法。與硬件加密算法有關(guān)的文件如下:

  freeswan-1. 94 /klip s/net/ ip sec /Config. in;

  freeswan-1. 94 / libdes/des_enc. c;

  freeswan-1. 94 /klip s/net/ ip sec / ip sec_sa. h;

  freeswan-1. 94 /klip s/net/ ip sec / ip sec_tunnel. c;

  freeswan-1. 94 /klip s/net/ ip sec / ssf10. h;

  freeswan-1. 94 /klip s/net/ ip sec / ip sec_init. c;

  freeswan-1. 94 /klip s/net/ ip sec /pfkey_v2_parser. c;

  freeswan-1. 94 /klip s/net/ ip sec_rcv. c。

  完成修改后, 使用內核make menuconfig 命令, 選中Networking op tions→[* ] IPSEC: Use SSF10..,重新編譯即可使用SSF10硬件算法模塊。

  結束語(yǔ)

  為了滿(mǎn)足VPN安全網(wǎng)關(guān)設計的目標,本文在基于Motorola 和嵌入式L inux的VPN網(wǎng)關(guān)設計中使用Motorola通信處理器PowerPC、采用L inux和加密算法,構建出了具有自主知識產(chǎn)權的VPN安全網(wǎng)關(guān)。理論分析表明,本文提出的VPN安全網(wǎng)關(guān)設計方案、嵌入式L inux操作系統的構建方法以及硬件加密模塊的實(shí)現方法能夠滿(mǎn)足10Mbp s的網(wǎng)絡(luò )環(huán)境中提供虛擬專(zhuān)用網(wǎng)的安全服務(wù)。但是,由于其定位在低端,不適合在100Mbp s的網(wǎng)絡(luò )環(huán)境中使用。如果要在100Mbp s的環(huán)境中使用VPN網(wǎng)關(guān),就要考慮使用基于PowerPCMPC82xx的硬件平臺。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: PowerPC VPN 嵌入式Linux

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>