qnx 订阅
Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick UNIX)的系统,直到AT&T发律师函过来才把名字改成QNX。 展开全文
Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick UNIX)的系统,直到AT&T发律师函过来才把名字改成QNX。
信息
POSⅨ
规范
简    介
1980年
成立时间
嵌入式系统
实    时
操作系统
中文名
QNX
QNX系统简介
QNX是一种商用的遵从POSIX规范的类Unix实时操作系统,目标市场主要是面向嵌入式系统。它可能是最成功的微内核操作系统之一。 [1]  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

    千次阅读 2011-10-18 23:16:49
    QNX 求助编辑百科名片   QNX界面 Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick U
     
    

    QNX

    求助编辑百科名片

    QNX界面  
    QNX界面

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

    编辑本段简介

      QNX是由QNX软件系统有限公司开发的实时操作系统

    编辑本段基本特征

      * QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具)、部分遵循POSIX.1b(实时扩展)。它最早开发于1980年,到现在已相当成熟。

    编辑本段体系结构

      * QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。

    编辑本段调度策略

      QNX 提供POSIX.1b标准进程调度:
      * 32个进程优先级
      * 抢占式的、基于优先级的正文切换;
      * 可选调度策略:FIFO、轮转策略、适应性策略。

    编辑本段系统服务

      QNX的系统服务:
      

    QNX

    * 多种资源管理器,包括各种文件系统和设备管理,支持多个文件系统同时运行,包括提供完全POSIX.1及UNIX语法的POSIX文件系统,支持多种闪存设备的嵌入式文件系统,支持对多种文件服务器(如Windows NT/95、LAN Manager等)的透明访问的SMB文件系统、DOS文件系统、CD-ROM文件系统等。
      * 设备管理。在进程和终端设备间提供大吞吐量、低开销接口服务。
      * 图形/窗口支持。包括QNX Windows、X Window System for QNX、对MS Windows NT/95和X Window系统的远程图形连接。
      * TCP/IP for QNX。
      * 高性能、容错型QNX网络——FLEET,使得所有连入网络的计算机变成一个逻辑上的超级计算机。
      * 透明的分布式处理。FLEET网络处理与消息传递和进程管理原语的集成,将本地和网络IPC统一起来,使得网络对IPC而言是透明的。

    编辑本段系统开放性

      QNX的开放性:
      * QNX的POSIX兼容性和其提供的UNIX特色的编译器、调试器、X Window和TCP/IP都是UNIX程序员所熟悉的。
      * 支持多种CPU:AMD ElanSC300/310/400/410、Am386 DE/SE、Cyrix MediaGX、x86处理器(386以上)、Pentium系列、STMicroelectronics 的STPC。
      * 多种总线:CompactPCI、EISA、ISA 、MPE (RadiSys)、STD、STD 32、PC/104、PC/104-Plus、PCI、PCMCIA、VESA、VME。
      * 各种外设:多种SCSI设备、IDE/EIDE驱动器、10M/100M以太网卡、Token Ring网卡、FDDI接口卡、多种PCMCIA设备、闪存、声卡等等。

    编辑本段QNX结构

      QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一。它具有独一无二的微内核实时平台,建立在微内核和完全地址空间保护基础之上,实时、稳定、可靠,已经完成到PowerPC、MIPS、ARM等内核的移植,成为在国内广泛应用的嵌入式实时操作系统。

    1 QNX内核简介

      QNX的微内核结构是它区别于其它操作系统的显著特点。
      平板式内存结构,如图1所示,所有的程序都使用同一个地址空间,不加保护;应用程序可以自由访问所有空间,效率较高,但是任何应用程序指针错误都可能会导致内核崩溃。
      大内核内存结构,如图2所示,操作系统内核和各种驱动程序、网络协议在同一个地址空间,应用程序在单独空间;内核模块同处于一个保护空间,运行效率高,应用程序无法直接访问保护空间,系统稳定性大大提高。缺点是,由于内核模块(例如网络驱动)处于保护空间,因此调试困难,任何驱动程序的修改都要重新编译内核,无法做到驱动的动态加载和卸载
      QNX的微内核结构,内核独立自处于一个被保护的地址空间;驱动程序、网络协议和应用程序处地程序空间中。
      微内核结构的优点:①驱动程序、网络协议、文件系统等操作系统模块和内核相互独立,任何模块的故障都不会导致内核的崩溃;②驱动程序、网络协议、文件系统和应用程序都处于程序空间,都调用相同的内核API,开发与调试和应用程序没有区别;③操作系统功能模块可以根据需要动态地加载或卸载,不需要编译内核。在高可靠性要求的情况下,可以编写监视模块,对可靠性要求高的模块进行监视,必要的时候重新启动或重新加载而无须重启系统。高可靠性的内核结构使QNX具备了高可靠性嵌入式操作系统的本质特征。
      在具有高可靠性内核的基础上,QNX的创新设计使它同样具有很高的效率。QNX最为引人注目的地方是,它是UNIX的同胞异构体,保持了和UNIX的高度相似性,绝大多数UNIX或LINUX应用程序可以在QNX下直接编译生成。这意味着为数众多的稳定成熟的UNIX、LINUX应用可以直接移植到QNX这个更加稳定高效的实时嵌入式平台上来。

    2 QNX网络结构

      QNZ网络子系统由三个部分组成:网络管理模块(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来实现的。

    3 QNX网络设备驱动

      QNX网络设备驱动模块处于网络硬件和io-net模块之间。驱动模块负责配置硬件使其正常工作,向io-net报告数据收发情况,接收和传递数据,接受io-net的调度和管理。QNX网络设备驱动程序依照以上功能,分为初始化、接收发送数据、网络设备信息统计几个功能块。要使网络设备工作正常,驱动程序就要对它进行一定的寄存器配置,同时,还要向QNX网络子系统注册自己,表明网络设备的存在和网络通信能力,才能为系统和应用程序所用。在初始化工作完成以后,网络设备就进入了工作状态,收发数据。设备信息的统计也是由设备驱动程序来完成的。
      (1)初始化
      初始化包括两个方面,一方面是初始化网络设备,使其正常工作;另一个方面,是向io-net正确注册驱动模块,表明自己的属性,方便上层正确操作。网络设备的初始化工作和硬件紧密相关,这里就不一一描述。
      驱动模块向io-net加载自己的时候,系统遵循如下工作流程:
      ①io-net搜索全局的符合io_net_dll_entry。它定义了驱动的初始化函数,io-net会直接调用这个函数。
      ②初始化函数向io-net注册驱动和相应的函数。
      ③初始化函数告诉io-net和它的模块自己的通信能力。
      经过以上流程以后,io-net中就建立起有关此驱动程序的数据和函数调用列表。驱动程序必须正确编写初始化函数,并将该函数正确链接至io_net_dll_entry。
      (2)从网络设备接收数据
      当有包到达网络设备的时候,网络设备就会用某种方式通知驱动程序(例如中断),此时,驱动程序就要采取某种策略来处理到来的帧或数据。通常驱动程序这时候需要做以下工作:
      ①通过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()函数需要的额外数据。
      (3)向网络设备发送数据
      当上层模块需要硬件传送包的时候,会调用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()函数通知上层模块驱动程序已经完成了数据的发送。

    4 网络设备信息的统计

      应用程序或者用户可以通过网络信息接口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_t size,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有一个非常华丽的图形界面,并且号称运行速度比Windows或Linux更快。不用不知道,一用你会忘不掉:P
      垄断的微软Windows操作系统和自由的Linux操作系统都是很多朋友熟知的计算机主要的操作系统。但是您听说过QNX计算机操作系统吗?如果我告诉您QNX操作系统运行的速度比Windows或Linux还快,而且用户界面也十分华丽,您相信吗?
      别以为QNX是刚刚诞生的计算机操作系统,它早就在20年前就诞生了,但是QNX作为一种专业的操作系统,至今它还未能进入普通用户的计算机为我们服务。其中的原因无疑是很复杂的。

    有趣的发音

      QNX的发音也十分有趣,大家知道Linux用汉语发音就是“里讷克斯”,而QNX的发音就是“cue-nix”:)。如果您使用的是Pentium处理器系列的计算机,那么在这台计算机的硬盘上安装QNX操作系统是很容易的事情,QNX可以在Windows下安装,它和Linux一样,是一种类UNIX的操作系统。另人惊异的是QNX也是免费的操作系统,可以直接到QNX的网站上下载这个原版操作系统。当然,购买一张QNX的CD-ROM也是很方便的。一张QNX的安装盘CD-ROM售价为30美元。在QNX的主页上有很详细的介绍和资料,还有关于QNX的新闻及应用软件可供用户阅读下载。

    可以和Windows切换

      有了QNX,您计算机里的操作系统不只是Windows独霸了,QNX完全可以取代霸道的Windows平台。很多初学计算机的朋友因为接触最多的是Windows平台,以至于他们误认为Windows98就是“OS”的唯一选择。现在不同了,使用QNX同样也能很好的管理计算机了。
      简单的说,操作系统就是给计算机一个灵活的大脑,一个强健的心脏和突出的个性。没有操作系统,计算机什么也做不了,只能是一堆废物。

    编辑本段加拿大QNX软件系统公司

      QNX是由一家位于加拿大的QNX软件系统公司(简称QSSL)推出的。该公司位于渥太华(加拿大城市)的市郊。最近从该公司传来好消息说,该公司已经面向普通用户推出了可以免费使用、非商业用的个人用户版本的QNX实时平台或称作QNX RTP,最小的在Windows下安装文件只有24MB。当这个版本正式向公众推出的时候,大约有400000人次从网上下载了这个QNX RTP版本。这大大出乎了意料,没有想到竟然有这么多人对这个操作系统感兴趣。因为很多人在以前根本就没有听说过世界上还有这么一个免费的QNX操作系统。
      该公司已被RIM(Research In Motion)收购。

    编辑本段系统配置要求

      现在要在这么一台电脑上试装这个QNX操作系统。电脑的硬件配置为233 MHZ AMD K6 处理器,96MB内存,ATI All-in-Wonder Pro显示卡,Sound Blaster AWE 32 声卡,两个硬盘驱动器和两个CD-ROM驱动器,一个SCSI硬盘和一块标准的网卡。

    编辑本段安装

      在安装的过程中除了遇到一个小故障之外,一切还算顺利。那块SCSI卡没有能被QNX自动配置。查阅QSSL公司的资料,该公司说他们正在努力的修正这个SCSI的问题。

    编辑本段操作

      如果您是一位有经验的Linux用户,那么QNX会使您很快就能上手。虽然它和Linux有很大的区别。QNX RTP使用的命令和操作是和Linux的许多“shell”命令是兼容的。更令人满意的是QNX的文件分级目录(组织,文件名和目录)和Linux几乎是一样的。可以说QNX RTP和旧的Linux是十分相象的。这对许多喜欢Linux,对Linux有一定实际操作经验的用户来说无疑是一个福音。QNX在他们手里很快就能玩转。
      但QNX和Linux最大的不同就是QNX的图形用户界面设计的十分漂亮。尽管Linux使用的是经久世故的X Window系统,但是和QNX的称为“Photon”的图形用户界面相比还是显得Linux略胜一筹。

    编辑本段不用不知道,一用忘不掉

      QNX RTP的图形用户界面-Photon MicroGUI非常酷
      QNX的Photon MicroGUI窗口系统是最“酷”的GUI(图形用户界面)。安装QNX后,你就会发现QNX的默认桌面背景“炫”得让你晕倒,得让人给你叫个医生来了:)。
      另外要提到的是,QNX RTP 的运行速度是那样的快,是否所有的用户都能够接受?没有错,在同样的电脑硬件配置情况下,QNX确实运行速度要比其他的Windows系统要快得多。在使用鼠标和窗口的操作界面下,QNX的运行速度确实是让人满意的。给人以一种“豪爽”的感觉。
      以上关于QNX的优点介绍得让你立刻想鼓掌,狠不得马上下载一个QNX试一试,但是有些问题是要说清楚的。QNX尽管是非常好的一个操作系统。但是你平时主要工作如果需要处理电子表格,管理金融等等,那么QNX可能不太适合你。因为能在QNX下运行的应用软件并不多。这也是制约QNX发展的一个重要原因了。
      但是也不必太担心软件不够用的问题,起码QNX能让你进行很多基本的操作。你可以用QNX来计算数据,播放CD音乐,使用电子邮件程序,进行文字处理工作,简单的图象浏览,还有一些Linux上已经除去的屏幕保护程序,桌面背景转换,软件的安装管理功能等等。甚至你还可以在QNX上添加专用版本的Real Player软件,喜欢玩游戏的朋友还可以安装Quake这个著名的游戏。所有在QNX上玩过Quake的朋友都说Quake在QNX上的运行速度比任何操作系统都要快。这确实是一个对游戏迷来说是非常好的消息。

    编辑本段QNX的所有优点

      好了,现在我们来总结一下QNX的所有优点:
      速度极快:QNX的运行速度非常快,其他的操作系统没有办法和它相比。
      系统非常安全:QNX上没有计算机病毒,这是和Linux一样的,所以QNX RTP不存在被病毒破坏资料的危险,只有在微软Windows系统中才会有被病毒感染的噩梦。另外,QNX的用户管理相当出色,它绝对不会让一个没有输入正确密码的人闯入计算机系统中。
      QNX有一个最好的网页浏览器:QNX里的网页浏览器叫做“Voyager”,浏览网页的速度快得象火箭。和Voyager相比,微软的IE和网景公司的NC浏览器简直就是一辆破旧的老爷车。但是这个Voyager浏览器目前还有些BUG,QSSL公司的软件工程师正在改进它。
      QNX的最大不同:QNX完全不像Windows,那是一件好事情。它是免费的操作系统,可以在网上下载安装使用。它的使用和操作也十分的容易。
    扩展阅读:
    开放分类:
    操作系统计算机
    我来完善 “QNX”相关词条:

    百度百科中的词条内容仅供参考,如果您需要解决具体问题(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

    189本词条对我有帮助
    展开全文
  • QNX raspibarry

    2017-07-31 15:25:47
    QNX raspibarry
  • QNX SDP 7.0 QNX_Neutrino_RTOS_System_Architecture.pdf
  • 学习QNX系统指令。
  •  的互联嵌入式系统厂商QNX软件系统有限公司日前发布新一代QNX Neutrino操作系统。此QNX Neutrino操作系统能够提供丰富的全新图形、用户界面、多媒体、安全性和电源管理能力,为安全的嵌入式系统提供移动级用户体验...
  • qnx Neutrino

    2018-02-06 18:25:26
    qnx Neutrino 源码,和2007公开的那个版本进行对比,比2007版本多出Neutrino rtos字样
  • QNX系统资料

    2018-01-08 14:48:01
    QNX系统资料,QNX系统资料,QNX系统资料,QNX系统资料
  • 这意味着更多的厂商可以结合自身特点利用QNX的技术,充分利用多核处理器来进行大规模的数据包处理。  QNX  Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出...
  • 颠覆QNX4端口
  • OpenSSH QNX4 端口
  • 该项目的重点是将OO解释器语言Python及其扩展(GUI,CORBA,SOAP,XML-RPC,QNX消息传递,Database aso)移植到QNX4和QNX6(QNX RTP)。 网址:www.python.org
  • qnx-graphic

    2018-05-30 09:35:23
    qnx Advanced Graphics Developer’s Guide qnx Advanced Graphics Developer’s Guide
  • 我猜想QNX Momentics应该有工具直接进行部署,不过找了一轮没找到,就决定使用最笨的办法:FTP先从我的WIN 7 CMD命令行窗口通过FTP命令进入FTP界面,输入:open 其中是QNX虚拟机的IP地址,可以在QNX虚拟机上通过...

    我猜想QNX Momentics应该有工具直接进行部署,不过找了一轮没找到,就决定使用最笨的办法:FTP

    先从我的WIN 7 CMD命令行窗口通过FTP命令进入FTP界面,输入:

    open

    其中是QNX虚拟机的IP地址,可以在QNX虚拟机上通过ifconfig命令查看。

    然后FTP命令提示输入用户名和密码,想起来QNX虚拟机安装起来后root用户没有设置密码,于是重新回到QNX虚拟机上启动terminal, 使用passwd命令为root用户设置了密码,然后再次从我的WIN7 的CMD命令行执行FTP命令,使用open 命令重新连接QNX系统,输入root用户的用户名和密码,不幸地发现root用户不能使用ftp命令登陆,错误如下:

    530 User root may not use FTP.

    这样的话只能在QNX虚拟机上新建一个用户了,于是又重新回到QNX虚拟机上,通过passwd命令创建一个用户,命令格式如下:

    passwd

    然后按系统提示输入id号,密码等信息。

    创建新用户后回到WIN7 上再次通过ftp命令连接QNX系统,使用新建的QNX用户登陆,登陆后记得使用bin命令将FTP上传方式换成I格式。

    然后使用put 命令上传编译好的程序,编译好的程序在QNX Momentics环境workspace目录下的“\x86\o”目录中,文件名和项目名相同,不带后缀,命令执行截图如下:

    b9ca5d6d7e38e4e186e0ee7b52061b37.gif

    应用上传后在上传用户的home目录下,如使用的是用户user1上传的,则应用在/home/user1目录中,执行的时候记得要带上当前目录,如 ./Hello

    不过,如果刚上传应用,执行该应用系统会提示:

    cannot execute - Permission denied

    意思是因为权限的原因无法执行,需要通过chmod命令修改权限,我自己比较懒,直接给它777的权限,命令格式如下:

    chmod 777 ./Hello

    表示给文件./Hello所以权限。

    这样就可以执行啦:

    ./Hello

    I am running on QNX!0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • QNX IDE training

    2018-03-01 18:08:04
    QNX IDE使用教程,Developing, Debugging and Analyzing Performance with the QNX® Momentics® IDE
  • Python 编程语言 QNX4 端口
  • Perl 编程语言 QNX4 端口
  • qnx学习资料

    2018-06-06 17:53:28
    包括qnx书籍和ppt,还有官方的开发手册,以及api使用说明书
  • qnx驱动编程

    2018-06-17 10:44:46
    qnx 嵌入式操作系统的驱动开发的详细介绍,适合具有一定Linux开发经验的人学习。
  • QNX Hypervisor FuSa training

    2019-01-27 22:57:01
    QNX Hypervisor FuSa 实想培训材料。含有现有QNX Hypervisor框架。
  • 打开 Watcom QNX4 Port C、C++ 编译器和工具
  • Qt for QNX

    2021-04-17 21:22:50
    Qt for QNXQt for QNX Qt for QNX 支持的体系结构和QNX版本 从应用程序开发平台的角度来看,Qt在QNX Neutrino RTOS之上运行。系统集成商和应用程序开发人员使用QNX SDP(软件开发平台),其中包括针对各种目标的QNX ...

    Qt for QNX

    支持的体系结构和QNX版本
    从应用程序开发平台的角度来看,Qt在QNX Neutrino RTOS之上运行。系统集成商和应用程序开发人员使用QNX SDP(软件开发平台),其中包括针对各种目标的QNX Neutrino RTOS组件和全套开发工具。

    Qt 5当前已在QNX SDP 7.0上进行了测试并受其支持,同时支持32位和64位目标体系结构:

    ARMle-v7和x86(32位)
    AArch64le和x86-64(64位)
    QNX SDP 7.0中添加了对64位体系结构的支持。

    以前的版本
    较旧的QNX SDP版本和其他体系结构也可以使用,但不需进行常规构建和测试。

    适用于QNX SDP 6.6的Qt
    有关可用板卡,显示器和输入设备的特定列表,请联系QNX软件系统(info@qnx.com)或KDAB(qnx-info@kdab.com)。Qt还支持QNX在设备上创建QNX Neutrino OS上的Qt,

    支持的模块
    QNX Neutrino RTOS几乎支持所有Qt Essential模块和某些附加组件。

    如果从已发布的源代码分发档案库中构建Qt,则该configure工具可确保仅针对已知针对指定目标进行构建的模块来进行构建。此外,您可以-skip 在运行该configure工具时通过该选项从构建中明确排除不支持或不需要的模块。

    如果直接从Git存储库构建Qt,则应仅使用受支持的模块初始化存储库,或者分别构建和安装模块。这有助于防止意外的构建问题。

    建造要求
    构建Qt 5需要QNX网站上提供以下软件包(访问下载需要注册):

    带有http://www.qnx.com/download/group.html?programid=26808的QNX SDP 7.0
    SDP软件包中提供了编译器和工具链的其他部分。您不需要在主机PC上进行任何其他安装。但是,建议确保也可以在主机上为桌面目标构建Qt。所有支持的QNX Neutrino RTOS目标都完全集成在Qt源中提供的makespec中。

    配置Qt构建时,需要指定交叉编译的目标名称:
    在这里插入图片描述

    该configure工具运行各种测试以检测SDP及其附件的功能。根据测试结果设置相关标志。在控制台上或在./qtbase/config.summary需要的地方检查配置摘要,并根据需要手动设置其他标志。

    您正在构建的平台无关,请考虑使用-prefix选项时configure为好,例如-prefix。这指定将在其中安装Qt的目标文件夹,并将所有构建工件放置在源代码树之外。

    Qt运行时目标要求

    QNX软件系统提供用于制造嵌入式设备的软件解决方案。这包括以非常灵活的方式创建QNX Neutrino RTOS引导映像。即使QNX为OS映像创建提供了几种参考脚本,迟早您还是需要进行更改,或者您可能决定从头开始创建OS映像。Qt依赖于几个第三方组件和选定的OS服务的存在。因此,运行Qt的目标设备的QNX Neutrino RTOS引导映像必须满足几个要求,以确保Qt能够按预期工作。以下各节列出了Qt的关键部分。

    QNX屏幕图形子系统

    必须先运行QNX屏幕图形子系统(也称为“屏幕”),然后才能启动任何Qt应用程序。屏幕不仅包括驱动程序,还包括Qt使用的一些实用程序和其他服务。这也包括鼠标和键盘事件的处理。您可以通过验证是否gles2-gears可以启动并运行图形应用程序(如)来确保屏幕已正确配置并运行。SDP中最近的大多数示例OS构建脚本都包含带有所有组件的部分以及用于Screen的启动命令。使用它们作为参考。

    IPv6支持

    Qt的网络堆栈要求启用IPv6支持,而与实际的网络使用IPv4还是IPv6无关。这意味着io-pkt-v6-hc必须正在运行,而不是 io-pkt-v4。

    随机装置 /dev/random

    Qt必须/dev/random存在并起作用。在启动任何Qt应用程序之前或在系统启动过程中启动它:

    random -p
    waitfor /dev/random
    

    系统记录仪

    QNX提供了针对特定嵌入式系统的slog2日志记录框架。它的主要优点是性能比文本输出到文件好得多。默认情况下,Qt使用此框架来处理通过QNX Neutrino RTOS上的QDebug进行的任何日志记录输出。该slog2服务应在系统启动期间启动。在slog2还依赖于是否存在/tmp,其必须被配置为好,例如文件夹:

    [type=link] /tmp=/dev/shmem
    display_msg "Starting slogger2..."
    slogger2 -U1001:1000 &
    waitfor /dev/slog2
    

    环境变量

    启动Qt应用程序时,应设置一组环境变量。它们中的大多数实际上并不是特定于QNX Neutrino RTOS的。这里仍然提到它们,因为知道它们只会在出现问题时节省很多时间。

    Qt运行时位置

    如果未在启用RPATH的情况下构建Qt,则可以将Qt运行时组件放置在文件系统中的任何文件夹中。假设Qt安装位于以下环境变量应指向有效位置:

    LD_LIBRARY_PATH 应该包含Qt库中的路径 /lib
    QT_PLUGIN_PATH定义Qt插件的位置。应该设置为/plugins
    QML2_IMPORT_PATH定义Qt Quick插件的位置。应该设置为/qml
    如果Qt不使用fontconfig,则必须使用来提供字体的路径QT_QPA_FONTDIR,或者将字体放在/lib/fonts默认字体位置下。

    物理屏幕尺寸

    Qt需要有关所连接显示器的物理尺寸的信息,以确定DPI值,从而设置正确的字体大小。通常,此信息由屏幕提供。在某些情况下,您可能会看到无效的屏幕尺寸,例如0mmx0mm。在这种情况下,Qt需要QQNX_PHYSICAL_SCREEN_SIZE根据值设置环境变量以获得所需的信息。如果Qt应用程序退出并显示错误消息,提示无法确定物理屏幕尺寸,请在启动Qt应用程序之前像这样设置变量:

    export QQNX_PHYSICAL_SCREEN_SIZE=150,100
    

    告知Qt在这种特殊情况下,屏幕的宽度为150mm,高度为100mm。屏幕的物理尺寸以毫米(mm)为单位,应与最终配置中显示器的实际物理尺寸相对应。

    对Qt应用程序的首次启动进行故障排除

    QNX Neutrino RTOS提供的灵活性的唯一缺点是存在风险,即目标上的运行环境与Qt预期的略有不同。这是新目标上的Qt应用程序无法启动的常见原因。一些通用的环境变量可以帮助找到问题的根本原因:

    设置QT_DEBUG_PLUGINS为1有助于查看为什么无法加载QPA插件。
    设置LD_DEBUG为1有助于查看共享库的加载位置和加载方式。QT_DEBUG_PLUGINS当插件无法加载其他共享库而无法加载时,可以将其结合使用。
    设置QT_LOGGING_TO_CONSOLE将强制将所有日志记录消息发送到,stderr而不是slog2。这对于分析应用程序启动问题很有用,因为您无需使用其他工具来查看消息。

    第三方库

    确保您的系统映像包含以下附加的第三方库,这些库通常不包含在最小的QNX Neutrino RTOS映像中:

    libfontconfig
    libfreetype
    libiconv
    libicui18n
    libicudata
    libicuuc
    libpng14
    libxml2
    libsqlite3
    libssl
    libcrypto
    注意:这不是Qt在QNX Neutrino OS上使用的共享库的完整列表。多个共享库在典型的OS映像中已经可用,或者包含在系统的其他部分中,例如Screen。

    访问环境变量

    setconf并且getconf是访问POSIX环境变量所必需的,尤其是主机名以及时间和日期。

    Qt Creator目标要求

    用于Qt Creator开发的QNX Neutrino RTOS目标应提供一些其他命令行工具和服务。

    SSH协议

    部署和远程应用程序启动依赖于SSH。SSH守护程序(sshd)必须在系统启动期间安装并运行。请注意,它要求/dev/random已经提到的内容。它还期望正确地为其配置文件设置特定的访问权限。后者使得不可能从不具有完全访问权限支持的文件系统(例如FAT)中启动SSH。

    SCP和SFTP

    scpsftpQt Creator使用实用程序和实用程序进行部署,并且应在目标上可用。另外,inetd守护程序必须在系统启动时启动,然后根据需要启动服务,包括FTP(在需要时)。

    QNX远程调试工具

    远程调试要求pdebug(进程级调试器)在开发设备上运行。它通常由qconn过程启动,该过程还向Qt Creator提供各种过程信息。通常,Qt Creator使用与SDP中提供的QNX Momentics IDE相同的远程调试接口。

    目标设备上的其他实用程序

    QNX为许多常见平台及其各个变体提供了板级支持包(BSP)。但是,如果您需要QNX不提供的板的BSP,则可以修改现有的BSP或自行开发。

    在为电路板开发BSP时,应包括以下实用程序,以使Qt Creator能够在QNX设备上部署,运行,调试和停止应用程序:

    awk
    cat
    cut
    df
    grep
    kill
    ln
    mkdir
    netstat
    print
    printf
    ps
    read
    sed
    sleep
    slog2info
    tail
    tar
    zip
    uname
    unzip
    实用程序必须位于标准位置,例如/bin或/usr/bin。或者,您可以使用该~/.ssh/environment文件来设置远程命令的变量,例如PATH。另外,您必须enable PermitUserEnvironment在SSH守护程序配置中进行设置。

    在Qt Creator中配置新的目标设备时,运行测试以验证所有必需组件均可用并正在运行。

    部署目标文件夹

    在远程启动之前,Qt Creator将应用程序部署到目标设备。在大多数嵌入式设备上,它只是将应用程序二进制文件和相关的数据文件复制到目标设备上的文件夹中。但是,没有关于此文件夹的调用方式和位置的标准。/tmp为此使用了许多配置,这些配置通常映射到RAM磁盘。当部署的应用程序在下一次设备关闭时消失时,这可能会引起一些混乱。

    另一个受欢迎的目标是/opt。该文件夹位于许多系统上的只读分区中,因此无法进行部署。确保使用符合您需求的目标文件夹。您可以在项目文件的install.path变量中进行设置

    展开全文
  • qnx快速入门教程

    2018-09-12 09:46:13
    qnx快速入门教程
  • 虚拟机安装QNX

    2015-11-16 10:18:18
    用于在虚拟机上安装QNX操作系统,包括如何设置虚拟机参数等;内含QNX操作系统的序列号.
  •  全球领先的互联嵌入式系统厂商QNX软件系统有限公司日前发布新一代QNX Neutrino操作系统。此QNX Neutrino操作系统能够提供丰富的全新图形、用户界面、多媒体、安全性和电源管理能力,为安全的嵌入式系统提供移动级...
  • Apache HTTP服务器QNX4端口
  • QNX资料大全

    热门讨论 2015-11-28 19:24:54
    QNX的各种教程(中文和英文),包括安装到系统编程,非常详细。 本来是想贡献自己的所有资料,但是csdn上传的文件,很抱歉啦。 自己现在也在做QNX的毕设,资料什么的搜集了不少。如果有志同道合的朋友或者想和我深入...
  • QNX BSP driver datasheet

    2020-12-10 11:34:22
    QNX BSP driver datasheet for QNX SDP6.6 比较详细地描述了个部分驱动程序接口
  • 1、准备说明 VMware Workstation (Pro) win7虚拟机(可参考win7虚拟机详细搭建过程) qnx虚拟机(QNXNeutrino650Target) ...然后连接qnx系统,首先在查看一下qnx虚拟机的ip地址(此操作在qnx虚拟机下完成,不是win

    1、准备说明

    1. VMware Workstation (Pro)
    2. win7虚拟机(可参考win7虚拟机详细搭建过程)
    3. qnx虚拟机(QNXNeutrino650Target
    4. QNX Momentics IDE 4.6

    以上资源均可在网络上找到。

    2、搭建步骤

    1. 安装好QNX Momentics IDE 4.6后双击打开,然后直接点击确定在这里插入图片描述
    2. 显示界面如下图所示
      在这里插入图片描述
    3. 然后连接qnx系统,首先在查看一下qnx虚拟机的ip地址(此操作在qnx虚拟机下完成,不是win7界面!可以看到我的qnx地址是192.168.199.128)
      在这里插入图片描述
    4. 然后回到win7界面打开Target File System Navigator窗口,操作如下图所示
      在这里插入图片描述
    5. 然后在下方大的红色框内点击右键,点击Add New Target
      在这里插入图片描述
    6. 输入qnx的ip地址,点击完成
      在这里插入图片描述
    7. 可以看到qnx系统下的文件了,表明已经连接成功,可以开始建立工程跑程序了
      在这里插入图片描述

    3、说明

    1. QNX Momentics IDE 4.6只能试用30天,解决此问题的方法有两种:一是记录下来其安装时间,在快到期的时候回调win7系统的时间,一旦回调不及时就会过期只能使用第二种方法;二是重装win7系统,重新安装IDE。
      因此利用虚拟机学习qnx个人认为是一种好的方法,重装虚拟机对自己的机器并没有什么影响,开发环境相对来说好建立一点,推荐双虚拟系统。
    2. win7系统可不可以代替?本人只试过win10可以,应该其他的linux和xp系统也都可以,个人还是最推荐win7系统,且任何系统都推荐断开外网连接,防止系统升级或后台使用网络占用开发资源。

    4、如何学习

    1. 通过IDE自带的帮助文档进行学习,虽然全都是英文的,但是可以打印成pdf用知云文献翻译看,个人感觉还是很方便的
      在这里插入图片描述
      在这里插入图片描述
    2. 如果对类linux系统不太了解的话,建议先学习一下linux,毕竟资料多。这里个人推荐b站的视频Linux系统编程,重点对进程线程及其通信有所了解,qnx所不同的就是有消息传递的机制,并且可以建立资源管理器,剩下的很大一部分内容都与linux类似。
    3. 在上图中点击10 Steps to Developing a QNX Program: Quickstart Guide的链接就可以写一个helloworld的程序运行在qnx系统上了,详细的步骤可以看这个文档,也可以看第一个QNX程序这个博客
    展开全文
  • QNX开发总结

    千次阅读 2021-01-20 15:02:05
    QNX开发总结
  • QNX编写程序-QNX程序例子

    千次阅读 2017-04-28 12:07:21
    QNX开发环境和QNX虚拟机都搭建好了,开始写第一个QNX程序。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,231
精华内容 5,292
关键字:

qnx