QNX操作系统及网络设备驱动模块.docx 立即下载
2025-08-15
约4.9千字
约25页
0
17KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

QNX操作系统及网络设备驱动模块.docx

QNX操作系统及网络设备驱动模块.docx

预览

免费试读已结束,剩余 20 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

QNX操作系统及网络设备驱动模块

摘要:介绍嵌入式操作系统QNX的微内核结构、基于io-net的网络子系统、网络设备驱动程序的组成;给出以以太网网设备驱动程序为例的详细说明,包括初始化、从网络设备接收数据,向网络设备发送数据和网络设备信息的统计。关键词:QNX网络驱动程序QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一。它具有独一无二的微内核实时平台,建立在微内核和完全地址空间保护基础之上,实时、稳定、可靠,已经完成到PowerPC、MIPS、ARM等内核的移植,成为在国内广泛应用的嵌入式实时操作系统。本文简单介绍QNX内核和网络结构的特点,针对目前热门的网络应用环境,讨论QNX网络设备驱动程序的结构和编写。1QNX内核简介QNX的微内核结构是它区别于其它操作系统的显著特点。目前嵌入式系统中,操作系统和应用程序之间的关系大概可以归纳为图1~图3所示的三种情况。平板式内存结构,如图1所示,所有的程序都使用同一个地址空间,不加保护;应用程序可以自由访问所有空间,效率较高,但是任何应用程序指针错误都可能会导致内核崩溃。大内核内存结构,如图2所示,操作系统内核和各种驱动程序、网络协议在同一个地址空间,应用程序在单独空间;内核模块同处于一个保护空间,运行效率高,(范文先生网www.fwsir.com收集整理)应用程序无法直接访问保护空间,系统稳定性大大提高。缺点是,由于内核模块(例如网络驱动)处于保护空间,因此调试困难,任何驱动程序的修改都要重新编译内核,无法做到驱动的动态加载和卸载。QNX的微内核结构,如图3所示,内核独立自处于一个被保护的地址空间;驱动程序、网络协议和应用程序处地程序空间中。微内核结构的优点:①驱动程序、网络协议、文件系统等操作系统模块和内核相互独立,任何模块的故障都不会导致内核的崩溃;②驱动程序、网络协议、文件系统和应用程序都处于程序空间,都调用相同的内核API,开发与调试和应用程序没有区别;③操作系统功能模块可以根据需要动态地加载或卸载,不需要编译内核。在高可靠性要求的情况下,可以编写监视模块,对可靠性要求高的模块进行监视,必要的时候重新启动或重新加载而无须重启系统。高可靠性的内核结构使QNX具备了高可靠性嵌入式操作系统的本质特征。在具有高可靠性内核的基础上,QNX的创新设计使它同样具有很高的效率。QNX最为引人注目的地方是,它是UNIX的同胞异构体,保持了和UNIX的高度相似性,绝大多数UNIX或LINUX应用程序可以在QNX下直接编译生成。这意味着为数众多的稳定成熟的UNIX、LINUX应用可以直接移植到QNX这个更加稳定高效的实时嵌入式平台上来。2QNX网络结构QNZ网络子系统由三个部分组成:网络管理模块(io-net)、网络协议模块(npm-qnet.so、npm-tcpip.so)、网络设备驱动模块(devn-ne2000.so)。模块之间的层次关系如图4所示。图4中的每个模块各自具有不同的功能,但是它们具有一些相同的属性。如:网络设备驱动、TCP/IP协议栈分别对上层io-net模块和应用程序产生数据,两者都可以被看作数据源;同时它们也接受上层发来的数据,又可以同时被看作数据的消费者。过滤模块对向上的数据进行筛选,分协议进行处理;对向下的数据则进行相应的转换,如进行网络地址转换NAT。转换模块负责不同协议帧结构的转换,在以太网的工作环境下,它就负责对IP数据报进行以太网帧的封装和解包。和QNX其它服务进程一样,QNX的网络子系统也在内核外部空间运行。应用程序面对的是一个统一的网络接口,硬件相关的内容被完全包装在网络子系统内。QNX网络子系统的三个子模块按层次分开,io-net模块处于中心,是QNX网络的核心和重点,其它模块都挂接在它上面。数据和信息的流动都必须经由io-net调度与转发,所有其它模块所面对的就是一个单一主体。这样的中心交换结构,屏蔽了各个模块间相互协调的复杂细节,在很大程序上方便了模块的编写工作;同时,io-net还是QNX的网络管理中心。任何网络协议和网络设备驱动程序都必须向io-net注册,由它来加载,并接受io-net的配置和管理,用户对网络状态的查询和管理也是通过io-net来实现的。3QNX网络设备驱动QNX网络设备驱动模块处于网络硬件和io-net模块之间。驱动模块负责配置硬件使其正常工作,向io-net报告数据收发情况,接收和传递数据,接受io-net的调度和管理。QNX网络设备驱动程序依照以上功能,分为初始化、接收发送数据、网络设备信息统计几个功能块。要使网络设备工作正常,驱动程序就要对它进行一定的寄存器配置,同时,还要向QNX网络子系统注册自己,表明网络设备的存在和网络通信能力,才能为系统和应用程序所用。在初始化工作完成以后,网络设备就进入了工作状态,收发
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

QNX操作系统及网络设备驱动模块

文档大小:17KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用