QNX操作系统简介

2023-10-26

QNX是商业类Unix实时操作系统,主要针对嵌入式系统市场。该产品开发于20世纪80年代初,后来改名为QNX软件系统公司。QNX软件系统公司,黑莓公司旗下子公司,是全球领先的创新嵌入式技术供应商,包括中间件、开发工具和操作系统。QNX Neutrino实时操作系统,QNX Momentics工具套件和QNX Aviage中间件系列基于组件的架构共同构成业界可靠性和延展性最强的架构,帮助建立高性能的嵌入式系统。包括思科、戴姆勒、通用电气、洛克希德·马丁和西门子在内的众多全球知名技术领先企业,都将QNX技术应用在网络路由器、车载远程信息处理和信息娱乐系统、工业控制系统、医疗设备、安全防卫系统和其他任务关键性和生命关键型应用中。QNX软件系统公司成立于1980年,总部位于加拿大渥太华,其产品行销全球100多个国家或地区。

QNX是一种商用的遵从POSIX(可移植操作系统接口, Portable Operating System Interface,缩写为POSIX, IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称)规范的类Unix实时操作系统,目标市场主要是面向嵌入式系统

QNX采用微内核架构,操作系统中的多数功能是以许多小型的task来执行,它们被称为server。这样的架构使得用户和开发者可以关闭不需要的功能,而不需要改​​变操作系统本身。QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧而且运行速度极快。QNX的微内核独立自处于一个被保护的地址空间,驱动程序、网络协议和应用程序处于程序空间中。

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

QNX Neutrino实时操作系统(RTOS):内存受保护的微内核架构。

QNX Neutrino实时操作系统架构如下图所示:

QNX Neutrino RTOS是功能齐全性能可靠的简化版操作系统,可满足最小规格的实时嵌入系统的有限资源要求。其真正的微内核操作系统和模块化架构可使客户以较低的运行总成本创建高度优化的可靠系统。

(1). 该系统建立在真正的微内核架构上。在这种系统中,所有驱动程序、应用程序、协议栈和文件系统都在内核外部内存受保护的安全的用户空间内运行。几乎所有组件在出现故障时都能自动重启而不会影响其他组件或内核。

(2). 该系统采用模块化结构,可允许用户动态升级模块、引入新功能或实施问题修复,而无高增加停机时间和系统中断的成本。

(3). 该系统采用多核技术和内置透明分布处理技术。

(4). 该系统根据POSIX标准设计,只需通过简单地重新编译,就可移植既存代码、开源UNIX、Linux和因特网代码。通过标准应用程序接口,用户能重新使用应用程序代码。

(5). 该系统利用自适应分区技术确保系统资源满足应用要求。

(6). 该系统支持x86、PowerPC和ARM平台。

QNX Momentics工具套件(Tool Suite):基于Eclipse的灵活集成开发环境。

(1). 该工具套件包含用户所需的所有工具,便于迅速创建和优化用于QNX Neutrino实时操作系统的应用程序。从板卡启动到远程诊断,QNX Momentics工具套件为用户提供在整个开发周期内节省时间的工具,而且全部在单独、使用简便的环境中进行。

(2). 用户可选择自己喜欢的编程语言、主机和目标机。利用QNX Momentics工具套件,用户可使用C、C++、嵌入式C++编程;可以在Windows或Linux主机中开发程序;并以ARM、PowerPC和x86处理器为开发目标,所有工具都取自相同的集成开发环境(IDE)。该工具套件还提供极大的灵活性,允许用户同时混用多种编程语言和处理器架构。

(3). 该工具套件提供了大量的优质高效的分析工具,以加快产品交付所有阶段的进展。该工具套件包括许多非侵入式图形分析工具,以帮助用户轻松隔离并呈现资源的使用情况、定位瓶颈并对系统性能进行精确调整,包括应用程序剖析、系统剖析和内存分析。

(4). 该工具套件支持所有QNX Neutrino实时操作系统技术,包括多核技术、扩展网络、闪存文件系统、高级图形和透明分布处理技术等。

(5). 该工具套件中含有经过优化的GCC编译器、GDB调试程序。

关于QNX的中文论坛:https://www.openqnx.com/chinese/

注:以上整理的内容全部来自于QNX官方文档及网络

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QNX操作系统简介 的相关文章

  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • 如何在linux中以编程方式获取dir的大小?

    我想通过 C 程序获取 linux 中特定目录的确切大小 我尝试使用 statfs path struct statfs 但它没有给出确切的大小 我也尝试过 stat 但它返回任何目录的大小为 4096 请建议我如何获取 dir 的确切大小
  • 如何阻止ubuntu在使用apt安装或更新软件包时弹出“Daemons using outdatedlibraries”? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我最近新安装了 Ubuntu 22 04 LTS 我发现每次使用 apt 安装或更新软件包时 它都会询问我有关Which servic
  • CMake 链接 glfw3 lib 错误

    我正在使用 CLion 并且正在使用 glfw3 库编写一个程序 http www glfw org docs latest http www glfw org docs latest 我安装并正确执行了库中的所有操作 我有 a 和 h 文
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 如何查找哪个 Yocto 项目配方填充图像根文件系统上的特定文件

    我经常与 Yocto 项目合作 一个常见的挑战是确定文件为何 或来自什么配方 包含在 rootfs 中 这有望从构建系统的环境 日志和元数据中得出 理想情况下 一组命令将允许将文件链接回源 即配方 我通常的策略是对元数据执行搜索 例如gre
  • 如何使用Android获取Linux内核的版本?

    如何在 Android 应用程序中获取 Linux 内核的版本 不是 100 确定 但我认为调用 uname r 需要 root 访问权限 无论如何 有一种不太肮脏的方法可以做到这一点 那就是 System getProperty os v
  • 使用os.execlp时,为什么`python`需要`python`作为argv[0]

    代码是这样的 os execlp python python child py other args this works os execlp python child py other args this doesn t work 我读过

随机推荐

  • H5跳转微信公众号

    更多内容可参考我的博客 首先找到目标公众号 用电脑打开里面的任意一篇文章 比如 打开深圳卫健委里的任意一篇文章 点击 Network gt Fetch XHR 点击任意一个接口请求 点击 Payload 获取 biz MzIxNDA0MTE
  • CocosCreator多语言包的处理

    如果项目需要国际化的处理 也就是需要切换语言的功能时 一般有两种方案 单个包 优点 1 可以动态切换语言 当然要代码上实现 2 只有一个版本 容易维护 缺点 1 安装包大 多个包 优点 1 安装包小 2 可以对不同语言做深入的本地化 比如功
  • 计算机专业英语课后题第四,计算机专业英语课后习题解

    内容简介 计算机专业英语课后习题解 Unit 1 About Computer Unit 2 More about Computer Unit 3 Brief Introduction of Computer Unit 4 the Fund
  • MySQL笔记(二)SQL语句“增删改查”及高级用法

    新建表 对应代码 创建后刷新表 出现 CREATE TABLE user1 id INT NOT NULL auto increment id 整型 非空 自增 NAME VARCHAR 50 age INT sex VARCHAR 4 D
  • 你的个人隐私信息泄露了吗?大数据时代如何保护好个人隐私?

    很多人在上网或者日常生活中 都需要填写各种个人信息 身份证号码 银行卡号 联系电话 家庭住址等等 这些信息虽然经过加密处理 但是对于拥有专业网络知识的黑客来说 这些所谓的加密方式都只不过是一层薄纸 一捅就破 比如说 2018年8月底 在美上
  • qt添加资源文件后编译失败,提示Qt:Error:No rule to make target ’ … /…/??.png’,needed by ‘debug/qrc_qrc.cpp’ stop

    提要 项目本来编译没有问题 资源文件忘记添加了 于是添加资源文件后 编译没有通过 提示错误 Qt Error No rule to make target png needed by debug qrc qrc cpp stop 解决方法
  • 基于AntDesignVue的自定义Dropdown下拉选择组件

    组件效果 组件代码
  • Kettle8.2转换组件之排序与去除重复记录

    Kettle8 2转换组件之排序与去除重复记录 一 相关说明 二 设计转换 三 转换配置 四 运行转换 五 查看结果 一 相关说明 需求说明 从Excel读取数据 去除其中重复的字段 并把结果数据保存在数据库表中 排序记录组件说明 排序记录
  • 圆的碰撞检测

    bool CollisionBetweenCircles circle c1 circle c2 bool hit float distanceOfCenter sqrt pow c1 center x c2 center x 2 pow
  • Python基础入门笔记(一)

    前言 认识Python 既然学习 Python 那么至少得了解下这门语言 知道 Python 代码执行过程吧 Python 的历史有兴趣的百度百科下就有 这个不多说了 1 我们先来了解下什么是解释型语言和编译型语言 计算机是不能够识别高级语
  • 【毕业设计】 基于Stm32的家庭智能监控系统 - 单片机 图像识别 人体检测 AI

    0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求 为了大家能够顺利以及最少的精力通过毕设 学长分享优质毕业设计项
  • 【NSGA2三维路径规划】非主导排序遗传算法2求解无人机三维路径规划【含Matlab源码 1455期】

    一 无人机简介 0 引言 随着现代技术的发展 飞行器种类不断变多 应用也日趋专一化 完善化 如专门用作植保的大疆PS X625无人机 用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机 以及用作水下救援的白鲨MIX水下无人机等 决定飞行器
  • 获取当前时间点的毫秒值,对std::chrono类的简单小结

    C 11 std chrono主要类与函数总结 duration time point system clock duration cast f 先来看一段获取当前毫秒值的代码 我们根据这个代码进行拆分学习 include
  • windows 执行bat脚本

    bat脚本中运行另外一个bat脚本 call 命令 call1 bat内容如下 echo running call1 call2 bat内容如下 echo off echo start call call1 bat echo running
  • Ogre 界面(Overlay)

    Ogre 界面 Overlay 标签 border脚本buttontemplatesplugins引擎 2011 10 16 23 12 4725人阅读 评论 2 收藏 举报 分类 引擎技术 9 这里的界面是指菜单 HUD及提示信息框在内的
  • 各个join区别

    在数学中 笛卡尔乘积是指两个集合X和Y的笛卡尓积 Cartesian product 又称直积 表示为X Y 第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员 假设集合A a b 集合B 0 1 2 则两个集合的笛卡尔积为
  • 基于MATLAB的几种图像分割算法

    最大类间方差法 基本思路是根据直方图以某一会灰度为阈值将图像分割成两部分 计算两组的方差 当被分成的两组之间的方差最大时 这个灰度为阈值灰度值 img imread C Users dell Desktop 前单图 3 3 JPG 原图 I
  • 最新版本Android-Studio2.1.2 Windows7 64bit系统下搭建Android开发环境

    windows7 64bit系统下搭建Android开发环境 最新版本Android Studio2 1 2 注 现在在使用i MX6Q开发板做嵌入式系统开发 跑的是Android系统 想在开发板写一些测试程序 因此搭建了Android开发
  • FreeRTOS 事件组

    实现功能 当任务A B完成后执行串口任务 不同任务用不同的位表示 configUSE 16 BIT TICKS 1 bitx 0 7 configUSE 16 BIT TICKS设置为0 bitx 0 23 串口任务的头文件 ifndef
  • QNX操作系统简介

    QNX是商业类Unix实时操作系统 主要针对嵌入式系统市场 该产品开发于20世纪80年代初 后来改名为QNX软件系统公司 QNX软件系统公司 黑莓公司旗下子公司 是全球领先的创新嵌入式技术供应商 包括中间件 开发工具和操作系统 QNX Ne