基于Linux的嵌入式路由器软件的设计与实现.docx
- 文档编号:10106790
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:55
- 大小:812.56KB
基于Linux的嵌入式路由器软件的设计与实现.docx
《基于Linux的嵌入式路由器软件的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Linux的嵌入式路由器软件的设计与实现.docx(55页珍藏版)》请在冰豆网上搜索。
基于Linux的嵌入式路由器软件的设计与实现
苏州大学
硕士学位论文
基于Linux的嵌入式路由器软件的设计与实现
姓名:
徐向前
申请学位级别:
硕士
专业:
计算机应用
指导教师:
李蓥
2010-11
基于Linux的嵌入式路由器软件的设计与实现中文摘要
中文摘要
路由器作为网络的核心设备,已经越来越受到人们的重视。
随着网络的不断普及,哪怕在家庭中,也广泛使用了路由器,为此,路由器技术的研发已具有普遍化意义和实用价值。
本文从嵌入式的概念着手,继而介绍了本系统所使用硬件开发平台,设计与实现中所必须的开发环境和工具链,详细阐述了目标板引导程序uBoot的移植过程;接着分析了Linux操作系统的运行原理,以及如何移植Linux到开发板,并在该精简的内核的基础上,完成了根文件系统、嵌入式WEB服务、PPPoE拨号服务、DHCP服务,以及防火墙等的模块。
最后,对所实现的系统进行了功能和性能的测试与分析。
本文的具体设计与实现包括以下几个方面:
1.进一步研究嵌入式系统的相关理论,独立构建交叉编译环境,在开发板上完成BootLoad和Linux的移植。
2.深入研究Linux的内核机理,尤其是对网络协议栈的分析。
3.完成根文件系统、嵌入式WEB服务、PPPoE拨号服务和DHCP服务的设计和实现。
4.深入讨论了数据包的收发、CGI、NAT以及Firewall的实现。
5.对整个系统进行了功能和性能的测试,并得出了分析报告。
关键字:
Linux、嵌入式、路由器、固件、
作者:
徐向前
指导老师:
李蓥
I
AbstractThedesignandimplementationofembeddedrouter'ssoftwarebasedonLinux
Thedesignandimplementationofembeddedrouter's
softwarebasedonLinux
Abstract
Ithasbeenpaidmoreandmorecloseattentiontoroutersasthecoreequipmentofnetwork.Withthegrowingpopularityofthenetwork,theroutersareextensiveusedeveninthefamily.Therefore,thetechnologyresearchanddevelopmentforroutersalreadyhasauniversalsignificanceandpracticalvalue.
Startwiththeconceptofembeddedsystem,thispaperhasintroducedtheplatformofhardwaredevelopment,developmentenvironmentneededfordesignandimplementationanditstoolchain,thenexplaineddetailedproceduresofthemigrationprocessfortargetboardwiththeuBoot,andthenanalyzedtheworkingprincipleofLinuxoperatingsystemandhowtotransplantLinuxOStothedevelopmentboard,completedthemodulesofrootfilesystem,embeddedWEBservice,PPPoEdial-upservice,DHCPservice,firewallandetcbasedonstreamlinedkernel.Finally,thefunctionalityandperformancetestingandanalysishavebeenachievedinthispaper.
Specificdesignsandimplementationsareasfollows:
1.Furtherstudythetheoryofembeddedsystems,buildthecross-compilerenvironmentindependently,andthetransplantationofBootLoadandLinuxonthedevelopmentboard.
2.StudyLinuxkernelmechanismindepth,especiallyfortheanalysisofnetworkprotocolstack.
3.Completethedesignandimplementationofrootfilesystem,embeddedWEBservice,PPPoEdial-upserviceandDHCPservice.
4.In-depthdiscussionofimplementationforthepacketsendingandreceiving,CGI,NATandfirewall.
II
Thedesignandimplementationofembeddedrouter'ssoftwarebasedonLinuxAbstract
5.Reportsobtainedwiththefunctionalityandperformancetestingonthewholesystem.
Keywords:
Linux,embedded,router,firmware
Written
Supervisedby
IIIbyXuXiangqianLiYing
基于Linux的嵌入式路由器软件的设计与实现第一章绪论
第一章绪论
本章首先介绍了本课题的研究背景及其研究意义,接着分析了当前路由器的国内外现状,然后阐述了本文的主要的研究内容与贡献,最后概括了本文的组织结构。
1.1研究背景及意义
嵌入式系统出现于60年代晚期,它最初被用于控制机电电话交换机,如今已被广泛的应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多领域[1]。
计算机系统核心CPU,每年在全球范围内的产量大概在二十亿颗左右,其中超过80%应用于各类专用性很强的嵌入式系统。
一般的说,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。
Linux是一种“自由(Free软件”。
所谓自由,是指用户可以自由地获取程序及其源代码,并能自由地使用他们,包括修改或拷贝等。
它是网络时代的产物,众多的技术人员通过Internet共同完成它的研究和开发,无数用户参与了测试和除错,并可方便地加上用户自己编制的扩充功能。
嵌入式Linux是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。
嵌入式Linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。
嵌入式Linux的特点是版权费免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植。
路由器是互联网的主要节点设备。
路由器通过路由决定数据的转发。
转发策略称为路由选择(routing),这也是路由器名称的由来(router,转发者)。
作为不同网络之间互相连接的枢纽,路由器系统构成了基于TCP/IP的国际互联网络Internet的主体脉络,也可以说,路由器构成了Internet的骨架。
它的处理速度是网络通信的主要瓶颈之一,它的可靠性则直接影响着网络互连的质量。
因此,在园区网、地区网、乃至整个Internet研究领域中,路由器技术始终处于核心地位,其发展历程和方向,成为整个Internet研究的一个缩影[2]。
在当前我国网络基础建
1
第一章绪论基于Linux的嵌入式路由器软件的设计与实现设和信息建设方兴未艾之际,探讨路由器在互连网络中的作用、地位及其发展方向,对于国内的网络技术研究、网络建设,以及明确网络市场上对于路由器和网络互连的各种似是而非的概念,都有重要的意义。
1.2国内外研究现状
虽然嵌入式系统是近几年才风靡起来的,但是这个概念并非新近才出现。
从20世纪七十年代单片机的出现到今天各式各样的嵌入式微处理器、微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。
作为一个系统,往往是在硬件和软件交替发展的双螺旋的支撑下逐渐趋于稳定和成熟,嵌入式系统也不例外。
嵌入式系统的出现最初是基于单片机的。
70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:
更容易使用、更快、更便宜[3]。
这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。
90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。
这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的嵌入式操作系统。
除了上面的几家老牌公司以外,还出现了PalmOS、WinCE、嵌入式Linux、Lynx、Nucleux以及国内的Hopen、DeltaOs等嵌入式操作系统。
随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现,而基于开源的Linux便是其中的佼佼者。
Linux的大小适合嵌入式操作系统——Linux固有的模块性,适应性和可配置性,使得这很容易做到。
另外,Linux源码的实用性和成千上万的程序员热切期望它用于无数的嵌入式应用软件中,导致很多嵌入式Linux的出现,包括:
Embedix、ETLinux、LEM、LinuxRouterProject、LOAF、uCLinux、muLinux、ThinLinux、FirePlugLinux和PizzaBoxLinux。
随着通用计算机计算能力的不断增强、网络处理器的出现以及Linux操作系统的成熟和完善,路由器设备的发展也就成为必然[4]。
2
基于Linux的嵌入式路由器软件的设计与实现第一章绪论
近年来IP网络的广泛使用以及上述网络与业务的新需求,路由器设备有了新的进展[5]:
1.接口趋向高速化
2.交换能力趋向海量化
3.越来越关注业务开展
4.逐渐重视安全问题
网络安全是一个全方位的概念,主要包括网络自身的安全、网络服务提供安全、网络用户信息安全以及有害信息控制等方面[6]。
路由器作为主要网络设备,与网络自身安全有着直接的关系,对网络用户信息安全也可以起到一定的保障作用。
1.3本文研究内容与贡献
基于Linux的嵌入式路由器的软件所牵扯的内容比较多,大致可以分为如下几个方面:
嵌入式、操作系统、网络、编程,因此,本文的研究内容包括以下几点:
(1)嵌入式系统的开发平台
(2)内核的精简、移植和编译
(3)LinuxOS的运行原理
(4)TCP/IP协议栈的研究
(5)Firewall的机制与实现
(6)WEB方式的配置管理模式
(7)DHCP的实现
(8)NAT技术
(9)PPPoE拨号服务
(10)路由器测试与分析
本文最终成功验证了基于Linux的嵌入式路由器软件的设计与实现的可行性,其中所描述的一些设计方法和现实细节不仅仅局限于路由器产品,对其他嵌入式网络通信设备的研发人员也具有一定的参考价值。
1.4本文组织结构
全文共分8章,具体组织如下:
3
第一章绪论基于Linux的嵌入式路由器软件的设计与实现
第一章,绪论。
介绍论文的研究背景、意义以及国内外研究现状,并对本文的研究内容和贡献给出概要说明,最后介绍了本文的组织结构。
第二章,软硬件平台概述。
介绍了如何选择硬件平台、MIPS体系结构的介绍以及本文所使用的硬件平台的详细构件、模块示意图和地址空间;交叉编译模式、主机环境和开发板环境、它们的链接方式,最后讲解了主机开发环境的建立。
第三章,BootLoader与Linux内核的移植。
介绍了BootLoader在嵌入式系统中的作用,并较为详细的阐述了在MIPS架构下对U-Boot的移植过程和编译步骤。
然后对Linux内核体系结构及其特性和功能进行了简要介绍,说明了内核移植的步骤和具体的参数选择,最后交叉编译内核,生成了内核压缩映象。
第四章,路由器网络协议栈的分析与实现。
首先概括了Linux网络协议栈的结构和功能;分析了数据包在内核中的游历过程;接着重点讲述了数据包在协议栈内的收发流程,并结合在底层的Realtek8139网卡,最终完成了路由器软件内基本IPv4网络协议栈的实现。
第五章,网络地址转换和防火墙的分析设计与实现。
介绍内核中的Netfilter框架以及iptables工具,从而引入路由器网络地址转换和防火墙的功能实现。
接着详细讨论了软件中防火墙的设计分析和编程实现,最终完成了路由器防火墙的常规功能。
第六章,文件系统和各应用模块的设计与实现。
介绍了cramfs文件系统、busybox工具集,重点阐述了WEB服务的设计与编程实现,并实现了页面对多国语言切换的支持,最后讨论了PPPoE拨号和DHCP服务的分析与实现过程。
第七章,路由器的测试与性能分析。
本章对测试环境进行了说明。
然后对路由器的软件进行了测试与分析。
最后,对路由器进行了吞吐量性能的测试,并分析了测试结果。
第八章,总结与展望。
对整个论文所描述的开发工作进行了总结,概括了该课题在实际研究中所取得的结果,最后对以后可以进行改进与完善的地方做出了展望。
4
基于Linux的嵌入式路由器软件的设计与实现第二章软硬件开发平台概述
第二章软硬件开发平台概述
MIPS是世界上很流行的一种RISC处理器;MIPS技术公司则是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC来设计芯片。
和英特尔相比,MIPS的授权费用比较低,因此被大量采用在批量生产中,本论文就以此架构为平台。
接着介绍了如何搭建一个嵌入式系统的软件开发环境。
首先对交叉编译模式进行了介绍,说明了采用此开发模式的原因,紧接着分别介绍了什么是主机环境和开发板环境、它们链接方式的介绍与实现,最后讲解了主机开发环境的建立。
2.1嵌入式硬件平台的选择
嵌入式系统的核心部件是各种类型的嵌入式处理器。
据不完全统计,目前全世界嵌入式处理器的品种总量已经超过1000多种[7]。
作为企业,从实际生产上,在选择处理器时主要考虑的因素有:
1.生产规模。
打算做1套?
多套?
还是规模生产?
如果生产规模比较大,就需要考虑整个项目的授权费用。
2.开发的市场目标。
如果想使产品尽快发售,以获得竞争力,此时要尽可能买成熟的硬件;反之,可以自己设计硬件,降低成本。
3.软件对硬件的依赖性。
软件是否可以在硬件没有到位的时候并行设计或先行开发。
4.只要可能,尽量选择使用普通的硬件。
在CPU及架构的选择上,一个原则是:
只要有可替代的方案,就尽量不要选择Linux尚不支持的硬件平台[8]。
根据本项目对客户的需求分析:
此路由器的产量将在3k至5k之间,生产规模比较大;任何一款电子产品从项目立案到产品能尽早进入市场,都会带来巨大的经济效益,并且牢牢占据市场份额,因此客户给出的出货时间仅有3个月;作为时下嵌入式产品,大量的应用实现都基于操作系统,屏蔽了很多的硬件相关性;开源的Linux已经能够很完善的支持ARM、MIPS、x86、SPARC、PowerPC等常规架构[9]。
在综合考虑上述因素,尤其是产品单个副本的授权费用在批量生产中给企业带来的压力后,本人还是采用了MIPS的架构体系。
5
第二章软硬件开发平台概述基于Linux的嵌入式路由器软件的设计与实现
2.2MIPS体系结构介绍
MIPS是世界上很流行的一种RISC处理器。
MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessorwithoutinterlockedpipedstages),其机制是尽量利用软件办法避免流水线中的数据相关问题。
它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。
这些系列产品为很多计算机公司采用构成各种工作站和计算机系统[10]。
MIPS技术公司是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC来设计芯片。
和英特尔采用的复杂指令系统计算结构(CISC相比,RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。
MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。
2.3系统硬件平台概述
2.3.1硬件资源
・处理器:
MIPS3224K系列,内部集成3个高性能NPE(网络处理器引擎・SDRAM:
64MB32位PC133SDRAM内存(可扩展成256M
・NORFLASH:
16MB16位INTELNORFLASH
・NANDFLASH:
32MBNandFlash(可扩展到1Gb,选配模块)
・USB2.0全速(12Mbps:
2个USBhost接口+1个USBdevice接口
・USB2.0高速(480Mbps:
USB2.0高速接口卡,同时支持4个USBHOST高速接口(选配模块)
・IDE:
ATA133RAIDIDE接口卡,1块IDE卡可同时支持2个IDE接口硬盘(选配模块)
・千兆网口:
性能超强的10/100/1000M自适应千兆网卡(选配模块)
・PCI总线:
32bit,33MHz~66MHz,3个标准PCI接口和1个MINIPCI-III型接口
・UTOPIA总线:
8bitUTOPIA-2,33MHZ
・LAN:
4个二层线速全交换10/100M以太网,和IXP425的NPEA的MII接口连接(共8个交换网口)
6
基于Linux的嵌入式路由器软件的设计与实现第二章软硬件开发平台概述
・WAN:
1个10/100M以太网口,和IXP425的NPEB的MII接口连接
・RTC:
1个RTC
・控制台:
2个RS232控制台接口
・看门狗:
IXP芯片自带WATCHDOG
・JTAG:
标准20线JTAG接口
・指示灯:
1个电源4个自动定义灯
・按键:
1个复位按键1个GPIO测试按键
・功耗:
典型功耗7W,最大功耗10W
・开发板大小:
21.5CMx20.8CM
图2-1MIPS3224K系列开发板实物图
2.3.2MIPS3224K系列介绍
24k核心采用0.13微米制程技术,运行频率可达550MHz,硬件支持标准IEEE754浮点运算,单一组32×32MDU,以及具备TLB或者是固定式对应功能的可调整式MMU,而在24kPRO部分,内含了MIPSCorExtend功能,芯片设计业者可以加入自行定义的特殊指令,而且还能维持与MIPS32架构间的兼容性[11]。
MIPS3224K系列的可合成处理器内核是嵌入式芯片业性能最高的32位内核。
来自一些业界领先公司定制SOC(片上系统)设计方法、开放内核协议(OpenCoreProtocol,简称OCP)互连架构、标准程序库和片上存储器确保基于24K内核的产品最大限度地缩短设计时间并降低产业成本。
MIPS3224K核心系列针对各种量产应用设计,例如宽带接入、无线网络、数字电视、及办公室自动化。
当以0.13微米工艺实现时,24K内核可达到400MHz
第二章软硬件开发平台概述基于Linux的嵌入式路由器软件的设计与实现以上的性能;若采用高性能0.13LV-OD低介电系数工艺,其性能则可达625MHz,这是目前嵌入式市场中32位可综合内核的较高性能[12]。
图2-2开发板模块示意图
表2-1系统开发板地址空间
2.4交叉编译
交叉编译是一种典型的嵌入式开发模式,它是在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,因此就称这种编译器支持交叉编译。
这个编译过程就叫交叉编译[13]。
简单地说,就是在一个平台上生成另一个
基于Linux的嵌入式路由器软件的设计与实现第二章软硬件开发平台概述平台上的可执行代码[14]。
在做实际工作之前,应该先掌握一些关于交叉编译的基本知识,也就是理解一些经常会碰到的英文单词:
宿主机(host):
编辑和编译程序的平台,一般是基于X86的PC机,通常也被称为主机。
目标机(target):
用户开发的系统,通常都是非X86平台。
host编译得到的可执行代码在targer上运行。
图2-3交叉编译示意图
2.5主机与目标板的连接方式
由于主机和目标板是两个独立的个体,要想在它们之间传输数据,就必须首先建立某种数据连接,才能实现通信、文件传输等功能。
通常,在目标板和主机之间可以使用串口、以太网接口、USB接口和JTAG接口等连接方式。
2.6Minicom的安装配置
Minicom是一款串口通信软件,在嵌入式开发领域应用十分广泛。
类似的软件还有Windows下的超级终端(Hyperterminal),Linux下的kermit等[15]。
它们之间的区别很小,基本上可以互换,选择适合自己的就可以了。
Minicom是在终端下运行的程序,可以通过它配置界面来配置其工作特性。
第一次使用前,通常都需要做一次配置。
在shell下执行命令:
$minicom-s
出现如图2-4所示的配置界面。
第二章软硬件开发平台概述基于Linux的嵌入式路由器软件的设计与实现
图2-4Minicom的配置界面
在图2-4所示的菜单中,可以先通过光标移动键选择菜单项,然后再按Enter键进入子菜单项。
选择第三个菜单项,即“Serialportsetup”,根据目标板的串口通信参数设置。
进入如图2-5所示的配置界面。
这些配置项前的大写字母为该配置项的快捷键,要配置某个配置项可以通过相应的按键选择该配置项,然后再做修改。
图2-5Minicom串口参数配置界面
再次启动Minicom时,直接在shell下执行minicom命令就可以进入Minicom的控制台。
在控制台下通过组合键Ctrl+A,Z可以进入Minicom菜单,如图2-6所示。
基于Linux的嵌入式路由器软件的设计与实现第二章软硬件开发平台概述
图2-6Minicom命令菜单
2.7tftp服务的安装配置
tftp协议是简单文件传输协议,基于UDP协议,没有文件管理、用户控制等功能,因此实现起来简单易行,使用方便,正好适合目标板的Bootloade
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Linux 嵌入式 路由器 软件 设计 实现