0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

标签 > qnx

qnx

+关注 0人关注

Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick UNIX)的系统,直到AT&T发律师函过来才把名字改成QNX。

文章: 45
浏览: 26181
帖子: 10

qnx简介

  Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick UNIX)的系统,直到AT&T发律师函过来才把名字改成QNX。

  QNX是一种商用的遵从POSIX规范的类Unix实时操作系统,目标市场主要是面向嵌入式系统。它可能是最成功的微内核操作系统之一。

  QNX是一种商用的类Unix实时操作系统,遵从POSⅨ规范,目标市场主要是嵌入式系统[1]。QNX成立于1980年,是加拿大一家知名的嵌入式系统开发商。

qnx百科

  Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick UNIX)的系统,直到AT&T发律师函过来才把名字改成QNX。

  QNX是一种商用的遵从POSIX规范的类Unix实时操作系统,目标市场主要是面向嵌入式系统。它可能是最成功的微内核操作系统之一。

  QNX是一种商用的类Unix实时操作系统,遵从POSⅨ规范,目标市场主要是嵌入式系统[1]。QNX成立于1980年,是加拿大一家知名的嵌入式系统开发商。

  QNX的应用范围极广,包含了:控制保时捷跑车的音乐和媒体功能、核电站和美国陆军无人驾驶Crusher坦克的控制系统[2],还有RIM公司的BlackBerry PlayBook平板电脑。

  2004年10月27日,QNX 软件系统宣布它已经接受来自音响设备制造商 Harman 国际工业公司(纽约证券交易所: HAR)的购买提议。 作为Harman 的最新子公司高级商标的国际家庭,包括 Harman Kardon,JBL 和Becker,QNX 现在将会加速它的生长,向为先进的嵌入式运用,变成优先的操作系统。哈曼集团以1.38亿美元的现金收购了QNX,但也因此承担了1.38亿美元的债务。

  2010年04月14日,黑莓手机(BlackBerry)制造商RIM(Research In Motion Ltd.,RIM)将收购哈曼国际工业集团(Harman International Industries Inc.,HAR)旗下的QNX软件公司,以获取其车载无线连接技术。QNX这个原本的渥太华公司,在被美国哈曼国际 Harman 在买走6年后,又重返加拿大。QNX主要开发汽车,通讯设备所使用的操作系统,哈曼国际的主业则是汽车音像和娱乐设备。此次交易将使得RIM,QNX和哈曼工业在智能手机和车载音频娱乐系统之间找到合作空间。

  QNX被RIM并购的消息传出,才让这个在中国的认知度并不高的“默默无闻”的操作系统厂商被大家所熟知。但在汽车领域,QNX早已是最大的操作系统供应商。据不完全资料显示,QNX在车用市场占有率达到75%,目前全球有超过230种车型使用QNX系统,包括哈曼贝克、德尔福、大陆、通用电装、爱信等知名汽车电子平台都是在QNX系统上搭建的。几乎全球所有的主要汽车品牌包括讴歌、阿尔法-罗密欧、奥迪、宝马、别克、凯迪拉克、雪弗兰、克莱斯勒、戴姆勒、道奇、菲亚特、福特、通用汽车、本田、悍马、现代、英菲尼迪、捷豹、吉普、蓝旗亚、马自达、马赛地、迷你宝马、三菱、尼桑、欧宝、庞迪克、保时捷、萨博、土星、双龙、丰田和大众汽车等目前都采用了基于QNX技术的系统。

  除汽车领域之外,QNX的最大客户订单来源于思科系统,其中高端路由设备几乎全部采用QNX操作系统,因此,网络通信也成为了QNX第二大应用领域。此外,QNX与通用电气、阿尔斯通、西门子、洛克希德·马丁和NASA等公司都有着紧密合作,在轨道交通、医疗器械、智能电网及航空航天中,都发挥着积极作用。

  QNX结构

  QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一。它具有独一无二的微内核实时平台,建立在微内核和完全地址空间保护基础之上,实时、稳定、可靠,已经完成到PowerPC、MIPS、ARM等内核的移植,成为在国内广泛应用的嵌入式实时操作系统。虽然QNX本身并不属于UNIX,但由于其提供了POSIX的支持,使得多数传统UNIX程序在微量修改(甚至不需修改)后即可在QNX上面编译与运行。

  QNX内核简介

  QNX的微内核结构是它区别于其它操作系统的显著特点。

  平板式内存结构,如图1所示,所有的程序都使用同一个地址空间,不加保护;应用程序可以自由访问所有空间,效率较高,但是任何应用程序指针错误都可能会导致内核崩溃。

  大内核内存结构,如图2所示,操作系统内核和各种驱动程序、网络协议在同一个地址空间,应用程序在单独空间;内核模块同处于一个保护空间,运行效率高,应用程序无法直接访问保护空间,系统稳定性大大提高。缺点是,由于内核模块(例如网络驱动)处于保护空间,因此调试困难,任何驱动程序的修改都要重新编译内核,无法做到驱动的动态加载和卸载。

  QNX的微内核结构,内核独立自处于一个被保护的地址空间;驱动程序、网络协议和应用程序处于程序空间中。

  微内核结构的优点:①驱动程序、网络协议、文件系统等操作系统模块和内核相互独立,任何模块的故障都不会导致内核的崩溃;②驱动程序、网络协议、文件系统和应用程序都处于程序空间,都调用相同的内核API,开发与调试和应用程序没有区别;③操作系统功能模块可以根据需要动态地加载或卸载,不需要编译内核。在高可靠性要求的情况下,可以编写监视模块,对可靠性要求高的模块进行监视,必要的时候重新启动或重新加载而无须重启系统。高可靠性的内核结构使QNX具备了高可靠性嵌入式操作系统的本质特征。

  在具有高可靠性内核的基础上,QNX的创新设计使它同样具有很高的效率。QNX最为引人注目的地方是,它是UNⅨ的同胞异构体,保持了和UNⅨ的高度相似性,绝大多数UNⅨ或LINUX应用程序可以在QNX下直接编译生成。这意味着为数众多的稳定成熟的UNⅨ、LINUX应用可以直接移植到QNX这个更加稳定高效的实时嵌入式平台上来。

  QNX网络结构

  QNX网络子系统由三个部分组成:网络管理模块(io-net)、网络协议模块、网络设备驱动模块。

  每个模块各自具有不同的功能,但是它们具有一些相同的属性。如:网络设备驱动、TCP/IP协议栈分别对上层io-net模块和应用程序产生数据,两者都可以被看作数据源;同时它们也接受上层发来的数据,又可以同时被看作数据的消费者。过滤模块对向上的数据进行筛选,分协议进行处理;对向下的数据则进行相应的转换,如进行网络地址转换NAT。转换模块负责不同协议帧结构的转换,在以太网的工作环境下,它就负责对IP数据报进行以太网帧的封装和解包。

  和QNX其它服务进程一样,QNX的网络子系统也在内核外部空间运行。应用程序面对的是一个统一的网络接口,硬件相关的内容被完全包装在网络子系统内。

  QNX网络子系统的三个子模块按层次分开,io-net模块处于中心,是QNX网络的核心和重点,其它模块都挂接在它上面。数据和信息的流动都必须经由io-net调度与转发,所有其它模块所面对的就是一个单一主体。这样的中心交换结构,屏蔽了各个模块间相互协调的复杂细节,在很大程序上方便了模块的编写工作;同时,io-net还是QNX的网络管理中心。任何网络协议和网络设备驱动程序都必须向io-net注册,由它来加载,并接受io-net的配置和管理,用户对网络状态的查询和管理也是通过io-net来实现的。

  QNX网络设备驱动

  QNX网络设备驱动模块处于网络硬件和io-net模块之间。驱动模块负责配置硬件使其正常工作,向io-net报告数据收发情况,接收和传递数据,接受io-net的调度和管理。QNX网络设备驱动程序依照以上功能,分为初始化、接收发送数据、网络设备信息统计几个功能块。要使网络设备工作正常,驱动程序就要对它进行一定的寄存器配置,同时,还要向QNX网络子系统注册自己,表明网络设备的存在和网络通信能力,才能为系统和应用程序所用。在初始化工作完成以后,网络设备就进入了工作状态,收发数据。设备信息的统计也是由设备驱动程序来完成的。

  ⑴初始化

  初始化包括两个方面,一方面是初始化网络设备,使其正常工作;另一个方面,是向io-net正确注册驱动模块,表明自己的属性,方便上层正确操作。网络设备的初始化工作和硬件紧密相关,这里就不一一描述。

  驱动模块向io-net加载自己的时候,系统遵循如下工作流程:

  ①io-net搜索全局的符合io_net_dll_entry。它定义了驱动的初始化函数,io-net会直接调用这个函数。

  ②初始化函数向io-net注册驱动和相应的函数。

  ③初始化函数告诉io-net和它的模块自己的通信能力。

  经过以上流程以后,io-net中就建立起有关此驱动程序的数据和函数调用列表。驱动程序必须正确编写初始化函数,并将该函数正确链接至io_net_dll_entry。

  ⑵从网络设备接收数据

  当有包到达网络设备的时候,网络设备就会用某种方式通知驱动程序(例如中断),此时,驱动程序就要采取某种策略来处理到来的帧或数据。通常驱动程序这时候需要做以下工作:

  ①通过DMA将包取回来;

  ②做相应的必要处理,如通知网络设备释放当前帧的缓存,配置寄存器让网络设备等待下一帧到来等;

  ③通过调用io-net的tx_up_start()函数把包传递给上层模块。

  当上层所有的模块都完成对这个包的处理以后,io-net调用我们驱动中的tx_done()函数,它来做最后的处理工作。

  tx_up_start()函数是设备驱动中比较关键的函数,下面简要部分一下这个函数的入口参数。

  npkt_t*(*tx_up_start)(int registrant_hdl,

  nptk_t *npkt,

  int off,

  int framelen_sub,

  uint16_t cell,

  uint 16_t endpoint,

  uint16_t iface,

  void *done_hdl)

  其中:int registrant_hdl--本驱动在io-net中的句柄,注册时由io-net生成;

  nptk_t *npkt --需要处理的包的指针;

  int off--底层协议包头长度,如以太网帧头部长度;

  int framelen_sub--尾部填充的长度,对于以太网这个值为零;

  uint16_t cell、uint16_t endpoint--endpoint和cell是io-net在注册的时候分配的用来区别不同的驱动;

  uint16_t iface--接口号,可以让同一个驱动负现多个相同硬件;

  void *done_hdl--该指针指向tx_done()函数需要的额外数据。

  ⑶向网络设备发送数据

  当上层模块需要硬件传送包的时候,会调用io-net管理器的rx_down()函数。

  int(*rx_down)(npkt_t*npkt,

  void *func_hdl)

  rx_down函数入口参数中,npkt是指向需要传送的数据的结构指针,func_hdl是相应驱动模块在io-net中的句柄。其中npt结构包含许多成员,其中的重要成员如:

  cell、endpoint、iface 需要处理该包的硬件标识

  buffers 指向包的指针

  tot_iov 包含数据包的所有I/O矢量

  Framelen 所有数据的长度,以字节为单位

  驱动模块在接收到io-net的调用后,就要配置网络设备,让它完成数据的发送工作。网络设备发送数据所需要的信息都会在相应的数据结构中,如net_buf_t结构中保存了等待传送的数据包的链接列表,配置DMA所需的物理地址在net_iov_t中等。驱动模块要等待硬件完成这些包的传送,并调用io-net的tx)done()函数通知上层模块驱动程序已经完成了数据的发送。

  网络设备信息的统计

  应用程序或者用户可以通过网络信息接口nicinfo工具来了解网络工作状态。信息的查询都是通过io-net来进行的。驱动程序必须维护相应的状态数据,方便io-net的查询。网络设备有一些共同的状态属性,如收到和发出的包的个数、发送错误的包的个数等,不同的网络设备还会具有不同的属性和状态,这些都可以在驱动程序中用数据结构详细列明。

  需要维护的数据结构中,主要的是Nic_t,它包括四个子结构;

  CustNicStats--网络信息入口;

  EthernesStats_t--以太网状态;

  GenStats_t--常用统计信息;

  NetStats_t--网络信息(包含常用统计信息)。

  以上是驱动程序需要维护的数据。当用户或应用程序要查询这些信息的时候,它们就通过Nicinfo工具对/dev/io-net/en0调用devctl()函数来取得网络信息。信息的取得是必须通过io-net来完成的,io-net对信息的查询则是通过调用io_net_register_funs_t结构中所指向的函数来取得信息的。例:

  #include《sys/nic.h》

  int generic_eth_devctl(void *hdl,int dcmd,void *data,size_tsize,int *ret)

  {

  Nic_t *nic=(Nic_t *)hdl;

  int status;

  status=EOK;

  switch(dcmd){

  case DCMD_IO_NET_NICINFO;

  memcpy(data,nic,min(size,sizeof(Nic_t)));

  break;

  default:

  status=ENOTSUP;

  break;

  }

  return(status);

  }

  结束语

  网络设备的驱动是网络系统的最低层和最基础的模块,是如今嵌入式开发中首先要解决的问题之一。由于QNX具有微内核的特点,其网络设备驱动程序的开发不需要内核调试,更适合初学者掌握。本文对QNX操作系统及网络设备驱动程序的介绍,可以帮助读者对相关内容作初步了解。

查看详情

qnx知识

展开查看更多

qnx技术

QNX与Linux基础差异对比

对于QNX系统和Linux系统的内核差异,我们抛开宏内核、微内核之类的争议不谈。单纯从开发应用的角度而言,QNX和Linux系统的差异到底有多大,在开发...

2024-04-17 标签:嵌入式系统Linux文件系统 760 0

Linux和QNX操作系统在智能驾驶上的使用区别

Linux和QNX操作系统在智能驾驶上的使用区别

智能驾驶底层软件的核心是其运行的操作系统,该系统主要运行在智能驾驶域控制器上,支持自动驾驶所需的高性能计算和高带宽通信异构芯片。考虑到智驾系统本身对安全...

2023-08-24 标签:Linux智能驾驶qnx 1408 0

QNX和Linux嵌入式发展史

上个世纪90年代末期,Web设备被吹捧为下一个划时代的“大事件”,一种新型设备会产生一个新兴市场从而会产生下一代消费IT巨头。在拉斯维加斯的消费电子展上...

2023-04-06 标签:嵌入式WebLinux 934 0

浅谈QNX安全防御启动设计方案

安全启动想必大家肯定很熟悉,它是通过对启动过程的每个阶段进行加密验证,确保运行系统完整性的一种安全机制。如图1所示,QNX的安全启动可以保证由BootR...

2023-03-15 标签:qnx安全防御系统 1823 0

QNX的特点及其应用场景介绍

QNX是商业类Unix实时操作系统,主要针对嵌入式系统市场。它提供用户可控制的、优先级驱动的、急者优先抢占的调度方式。

2022-11-11 标签:嵌入式系统UNIXIPC 4795 0

基于优先级抢占系统的QNX调度算法

调度算法,是基于优先级的。QNX的线程优先级,是一个0-255的数字,数字越大优先级越高。所以,优先级0是内核中的idle线程。同时,优先级64是一个分界岭。

2022-10-31 标签:cpu操作系统qnx 728 0

QNX在汽车领域的基础软件操作系统地位以及深度的覆盖率

有硬实时、微内核、模块化、弱耦合、分布式的特点,从1980年诞生之初就是基于SOA架构设计,基于Client-Server的模型,

2022-10-20 标签:SOARTOS实时操作系统 1.1万 0

ZYNQ开发实例:在ZedBoard中的QNX操作系统运行过程

打开QNX Momentics IDE开发环境,File->QNX Source Package and BSP->Next...

2020-12-23 标签:操作系统qnxZynq 2515 0

如何启动QNX及使用调试工具的方法

如何启动QNX及使用调试工具的方法

该演示由QNX中国团队提供。展示了在Altera Cyclone V SoC上如何启动QNX,以及如何使用调试工具等等

2018-06-26 标签:socalteraqnx 7964 0

查看更多>>

qnx资讯

QNX与TTTech Auto深化合作,提高高级驾驶辅助系统性能

本次协作项目产物提供区域至域控制器乃至中央计算机架构伸缩能力,以及从故障安全到故障容错解决方案的拓展。利用顶尖调度算法简化设计流程并减轻测试负担,用户仅...

2024-03-10 标签:控制器算法qnx 1371 0

QNX在自动辅助驾驶领域的应用

在汽车领域的高性能处理和功能安全的交叉子域中,QNX是全球最大的商用操作系统提供商。自1999年进入汽车领域至今,QNX紧随并引领了汽车电子嵌入式软件领...

2022-10-20 标签:qnx辅助驾驶 1730 0

德赛西威一次性成功通过Automotive SPICE CL2过程和能力评估

7月30日,德赛西威仪表与信息娱乐系统第二事业单元开发的域控制器项目,一次性成功通过Automotive SPICE CL2过程和能力评估。 标志着德赛...

2021-08-18 标签:控制器qnx智能座舱 2282 0

黑莓舍弃手机切入汽车行业,QNX就是它的王牌

目前很多汽车厂商都采用QNX嵌入式实时操作系统作为自动驾驶的解决方案,而德尔福、瑞萨科技等零部件供应商也使用QNX的系统搭建自动驾驶的电子平台。不过在外...

2017-12-07 标签:黑莓百度qnx 1510 0

TI携手QNX推动汽车信息娱乐系统发展

作为德州仪器 (TI) 汽车信息娱乐系统处理器业务部的业务开发与产品营销经理,我经常有机会游走世界各地,与汽车信息娱乐系统领域的最优秀人士探讨技术问题。...

2017-04-27 标签:tiqnxjacinto5 2123 0

美国中情局将QNX汽车软件列为潜在攻击目标

据彭博社报道,维基解密网站发布的文件显示,美国中央情报局(CIA)将黑莓公司的QNX汽车软件列为攻击的潜在目标。

2017-03-10 标签:QNX中情局汽车软件 1046 0

黑莓不玩手机之后的卷土重来:无人驾驶领域

放眼全球,当下正值传统汽车厂商、科技厂商纷纷进军无人驾驶汽车领域、展开研发竞赛之际。而黑莓公司正试图将自身定位于这场竞赛当中不可或缺的选手之一。

2016-12-20 标签:黑莓qnx无人驾驶 681 0

苹果聘请QNX联合创始人研发无人驾驶

根据业内人士消息,苹果公司已经聘请前黑莓汽车软件部门负责人丹•道奇(Dan Dodge)加入汽车开发项目组,这表明了苹果造车团队日益重视在无人驾驶技术上...

2016-07-29 标签:苹果QNX无人驾驶 826 0

QNX 在CES 2016上展示自动驾驶技术构建模块

黑莓有限公司子公司QNX软件系统有限公司今日在于拉斯维加斯举行的CES 2016上(展位号:拉斯维加斯会展中心北厅325号)展示了其备受信赖的软件基石如...

2016-01-07 标签:CESQNX自动驾驶 1935 0

黑莓QNX“摩拳擦掌” 欲发力无人驾驶领域

CrackBerry表示,它与无人驾驶汽车人工智能软件开发商AdasWorks 达成技术合作协议,开发先进驾驶辅助系统和无人驾驶汽车技术。

2015-12-17 标签:ADASqnx无人驾驶 721 0

查看更多>>

qnx数据手册

相关标签

相关话题

换一批
  • 毫米波雷达
    毫米波雷达
    +关注
    毫米波雷达,是工作在毫米波波段(millimeter wave )探测的雷达。通常毫米波是指30~300GHz频域(波长为1~10mm)的。毫米波的波长介于厘米波和光波之间,因此毫米波兼有微波制导和光电制导的优点。
  • imx8
    imx8
    +关注
  • HUD
    HUD
    +关注
    平视显示器以下简称HUD,是运用在航空器上的飞行辅助仪器。平视的意思是指飞行员不需要低头就能够看到他需要的重要资讯。
  • 行车记录仪
    行车记录仪
    +关注
    行车记录仪即记录车辆行驶途中的影像及声音等相关资讯的仪器。安装行车记录仪后,能够记录汽车行驶全过程的视频图像和声音,可为交通事故提供证据。
  • V2X
    V2X
    +关注
    所谓V2X,与流行的B2B、B2C如出一辙,意为vehicle to everything,即车对车的信息交换。另外还有V2X,即车对外界的信息交换。
  • 平视显示器
    平视显示器
    +关注
      平视显示器,是指将主要驾驶仪表姿态指引指示器和主要飞行参数投影到驾驶员的头盔前或风挡玻璃上的一种显示设备。
  • 汽车雷达
    汽车雷达
    +关注
    汽车雷达顾名思义是用于汽车或其他地面机动车辆的雷达。因此,它包括基于不同技术(比如激光、超声波、微波)的各种不同雷达,有着不同的功能(比如发现障碍物、预测碰撞、自适应巡航控制),以及运用不同的工作原理(比如脉冲雷达、FMCW雷达、微波冲击雷达)。微波雷达在汽车雷达中有着重要的商业意义。
  • CarPlay
    CarPlay
    +关注
  • 贾跃亭
    贾跃亭
    +关注
  • LIDAR
    LIDAR
    +关注
    LiDAR是一种集激光,全球定位系统和惯性导航系统三种技术与一身的系统,用于获得数据并生成精确的DEM。这三种技术的结合,可以高度准确地定位激光束打在物体上的光斑。
  • SpaceX
    SpaceX
    +关注
  • V2V
    V2V
    +关注
  • ECM
    ECM
    +关注
  • CES2017
    CES2017
    +关注
    2017年国际消费类电子产品展览会简称2017年国际消费电子展(CES 2017),于2017年1月5日在拉斯维加斯开幕,多款新一代智能手机和平板电脑亮相本届CES大展,虚拟现实头盔和可穿戴设备是外界普遍关注的焦点。
  • ADAS系统
    ADAS系统
    +关注
  • waymo
    waymo
    +关注
  • PEPS
    PEPS
    +关注
  • 电机测试
    电机测试
    +关注
  • 智能网联
    智能网联
    +关注
  • 汽车互联
    汽车互联
    +关注
  • ZLG致远电子
    ZLG致远电子
    +关注
    在过去的16年,广州致远电子有限公司专注于电子行业,坚持以用户为中心,基于用户需求持续创新,赢得了用户的尊重和信赖。如今,我们的工业控制设备、通讯设备、电源产品以及测试分析仪器已应用于工业自动化、能源、电力电子、轨道交通、医疗等国家支柱产业。
  • 微波雷达
    微波雷达
    +关注
  • Model3
    Model3
    +关注
  • VCU
    VCU
    +关注
    VCU即整车控制器,是整个汽车的核心控制部件,相当于汽车的大脑。它采集加速踏板信号、制动踏板信号及其他部件信号,并做出相应判断后,控制下层的各部件控制器的动作,驱动汽车正常行驶。
  • 蔚来汽车
    蔚来汽车
    +关注
  • AEB
    AEB
    +关注
  • 禾赛科技
    禾赛科技
    +关注
    禾赛科技于2014年创立于中国上海,致力于做“机器人的眼睛”,是全球自动驾驶及高级辅助驾驶(ADAS)激光雷达的领军企业。禾赛在光学、机械、电子、软件等激光雷达核心领域有着卓越的研发能力和深厚的技术积累,在全球范围内拥有数百项专利,其自研芯片、功能安全、主动抗干扰等技术打破了行业多项记录。
  • 辅助驾驶系统
    辅助驾驶系统
    +关注
    车道保持辅助系统对行驶时保持车道提供支持。借助一个摄像头识别行驶车道的标志线。如果车辆接近识别到的标记线并可能脱离行驶车道,那么会通过方向盘的振动提请驾驶员注意。如果车道保持辅助系统识别到本车道两侧的标记线,那么系统处于待命状态。这通过组合仪表盘中的绿色指示灯显示。
  • 驾驶辅助系统
    驾驶辅助系统
    +关注
  • 慧荣科技
    慧荣科技
    +关注

关注此标签的用户(0人)

编辑推荐厂商产品技术软件/工具OS/语言教程专题