首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 开发>Linux 嵌入式>文章内容
文档分析__嵌入式Linux在网络处理器中的应用
来源:http://www.unix5.com 作者:riechelr_hl 发布时间:2007-07-25  

引言

在最近的二年,由于供应商组织面临经济状况不景气,加上Intel IXP 和 IBM Power NP,Raza,Cavium, Xilinx等公司的网络处理器(多核处理器)的出现,使得Linux在基于这些处理器设备的控制和管理层面上有了更多的用武之地。

控制层面包括逻辑和物理接口,它们本身并不传输网络数据,而是启动,监视和控制芯片的传输数据活动。在现有的网络处理器设计当中,像Linux这样的嵌入式操作系统通常运行在控制层面的处理器上,代表包引擎进行控制操作和事务性处理,实际的网际协议包(IP包)由专门的芯片进行处理。控制层面的处理器和数据/转发层面的包处理引擎之间的连接,可以通过连接协处理器的本地总线方式,或者直接使用标准的PCI总线,也可以采用以太网或者特殊应用的网络结构那样的连接方式。

在本地总线或者PCI总线的情况下,主控处理器把可把转发/数据层面的处理器视为专用外设,它具有简单内存映射接口。在采用网络方式来连接各层面的情况下,主控处理器必须使用分离的设备驱动设计。首先,结构接口需要一个通用的驱动(以太,异步传输等),通过它发送专门的命令包来控制包处理器。嵌入式 Linux具有丰富的网络功能(以太网和ATM在开源社区都很容易获得),与非开源操作系统相比具有显著的优点:无须定制,有现成的内核。这些对于开发专门的网络系统,即使是以太网驱动都是重要的附加投资。

现成的网络处理器一直努力地把高性能网络紧密地与主控处理器捆绑,并与本地连接集成到一起。第一代设计在控制节点和数据层仍然遇到了带宽限制的难题-数据包在进出控制层时遇到瓶颈,在网络处理器内部的并行包引擎也有同样的问题。此外,实践证明在功能强大的网络处理器和复杂的包引擎集上编程非常困难。网络处理器开发商在他们的芯片开发计划上标明了解决这些问题和推出新一代的库和工具箱的时间表。

运行Linux的网络处理器应用

主要的设备制造商把Linux和网络处理器一起发布,同时不断增加应用的数量,特别是网络基础件和客户端设备。

Linux在网络处理器平台上的一个重要应用领域是小型办公,家庭办公(SOHO)设计,比如接入点,家庭网关和数字媒体服务。这些消费电子领域的设备通常要求高性能和低成本。

许多这样的设计包括先前遗留下来的实时操作系统平台。人们对嵌入式Linux能否满足这些实时性能有些疑问。很多控制层面的应用,更多地关注吞吐量,而并没有硬实时的需求(抛开先前的实时操作选择)。较新的,基于网络处理器的设计很少对控制处理器有及时响应的需求,网络处理器包含专门的芯片来完成要求及时响应的操作。当控制层面必须满足严格临界时间要求时,比如在消费电子应用中所使用的路由和桥接到特定的同步接口的技术,在Linux中有多种途径来达到实时响应的要求,其中包括现在Linux2.6内核里所使用的MontaVista软件公司的可抢占技术。

在较大型系统,比如更复杂的基于IP的系统,包括办公中心和涉及IP技术的基础设备应用系统,高速接入和交换,网络处理器都采用了有两层或者更多层控制来进行刀片式设计,并在其上来进行硬件和软件的管理。大约60%的这种系统要求在数据和控制层面有高级别的冗余。在这种系统中,基于网络处理器的刀片和基于Linux的控制器被当成低层的,几乎是‘原子’性的接口,这些接口从属于故障恢复(fail-over),它们堆叠在一起来获得高可用性和容错管理。

这些较高层次的管理层面处理器越来越多地在运行Linux ,比如开放源码开发实验室公司(OSDL, Beaverton, Ore.)、 MontaVista软件公司、英特公司(Santa Clara, Calif.)等定义和实现的电信级Linux 。这些管理层面的CPU管理可用的资源(比如启动刀片和给他们分配负载)、响应硬件和软件异常,提供应用桥接到专门的系统(常常运行Linux)-比如帐单系统和客户数据库。

网络处理器开发的技术挑战和对策

对于多核微处理器来说,网络处理器面临着多种开发和调试的挑战。这些挑战包括以下三个层次:

·开发和部署运行在网络处理器上的代码和包处理算法;

·定义网络处理器和控制 处理器之间的接口;

·开发控制层面的应用

对于运行嵌入式Linux的控制层面处理器来说,网络处理器初看起来就像一个巨大、复杂且未被支持的外设。在最简单的情况下,内核启动代码或者驱动程序初始化代码中会对共享内存和寄存器的组合进行映射,这些寄存器代表了网络处理器在内核或用户内存的接口。这样驱动程序和应用程序就可以同网络处理器进行交互操作。这种映射关系能够通过调用用户层的API、或者直接调用驱动有关的API来终止它,或者也可以终止包含一个分离协议栈的底部,或者中止建立套接字或者基于流的抽象。。

主要设备制造商指望Linux平台提供商和构建不断增长的生态链的独立软件提供商,能够付出努力来建立网络处理器为基础的网络应用。这些由独立软件提供商提供的应用模块有以下几类:

·包处理算法,桥接口和特定的网络处理器针对运行在数据层面的网络引擎开发工具(包引擎代码汇编器,仿真器和性能分析器);

·控制和管理层应用单元-简单网络管理协议(SNMP)代理和管理信息(MIBs),Web控制接口等,协议栈,路由守护进程,控制和数据层接口库;

·用于类似于家庭网关和安全应用这样特定应用的大协议栈;

·用于Linux的其他系统和应用开发工具。

使用网络处理器接口和为嵌入式Linux 提供IP的公司包括:Ashley Laurent, Hughes, IP Infusion, LVL7 Systems, NextHop Technologies 和 Motorola 的 Netplane Systems,他们提供栈和库。像Intel和IBM这样的芯片提供商,还有Teja技术公司这样的独立软件提供商,他们所提供开发工具填补了用于特殊网络处理器芯片、特定体系结构的开发工具的空白。

共2页: 上一页 1 [2] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·嵌入式Linux系统下图形库讲解及
·Qt/Embedded在嵌入式Linux中的应
·嵌入式Linux:uClinux操作系统移
·嵌入式系统 Boot Loader 技术内
·嵌入式 用户图形接口uC/GUI的简
·基于GTK+和X的GUI在嵌入式Linux
·嵌入式Linux系统下的MiniGUI研究
·Linux串口上网的简单实现 (图解)
·在Ubuntu上建立Arm Linux的开发
·嵌入式Linux操作系统启动信息完
·Linux 2.6 内核的嵌入式系统应用
·嵌入式Linux在Blackfin处理器上
  相关文章
·嵌入式Linux移植实时设备驱动程
·嵌入式Linux系统的低功耗策略研
·一种嵌入式Linux平台的软硬件设
·嵌入式Linux系统下的MiniGUI研究
·Qt/Embedded在嵌入式Linux中的应
·嵌入式Linux系统下图形库讲解及
·嵌入式Linux操作系统名词资源讲
·Sharp Zaurus 手持式系统是嵌入
·Linux 2.6 内核的嵌入式系统应用
·基于嵌入式Linux的PMP系统设计与
·嵌入式Linux的DiskOnChip设备驱
·嵌入式Linux系统的触摸屏驱动开

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!