阅读前言
本文以QNX系统官方的文档英文原版资料“Getting Started with QNX Neutrino: A Guide for Realtime Programmers”为参考,翻译和逐句校对后,对在QNX操作系统下进行应用程序开发及进行资源管理器编写开发等方面,进行了深度整理,旨在帮助想要了解QNX的读者及开发者可以快速阅读,而不必查看晦涩难懂的英文原文,这些文章将会作为一个或多个系列进行发布,从遵从原文的翻译,到针对某些重要概念的穿插引入,以及再到各个重要专题的梳理,大致分为这三个层次部分,分不同的文章进行发布,依据这样的原则进行组织,读者可以更好的查找和理解。
那么首先,就让我们来看一下,官方文档英文原文“Getting Started with QNX Neutrino: A Guide for Realtime Programmers”之中对于整个“QNX Neutrino 编程入门”这本书是如何介绍的:
1. QNX Neutrino 编程入门
QNX Neutrino 入门:实时编程程序员指南旨在向你介绍 QNX Neutrino 实时操作系统,并帮助你开发它的应用程序和资源管理器。
原文编者注释:这本书最初是由罗伯·克顿所写。我们继续更新它,同时仍然保持他的语气。
下表可以帮助你快速查找信息。
可以找到的内容: | 英文原文跳转目录: |
使用进程和线程 | Processes and Threads |
发送、接收和回复消息 | Message Passing |
使用时间和定时器 | Clocks, Timers, and Getting a Kick Every So Often |
中断 | Interrupts |
编写资源管理器 | Resource Managers |
完整源代码实例程序 | Sample Programs |
QNX文档中使用的术语 | Glossary |
这本书是给谁看的?
这本书适合任何希望对 QNX Neutrino 实时操作系统的关键特性及其工作原理有良好基础认知的人。有一定计算机基础的读者仍能从本书中收获颇丰(尽管每章的论述随着内容推进变得越来越具技术性)。即便是顽固的黑客们也应该能发现一些有趣的独特之处,尤其是 QNX Neutrino 的两个基本特性,即操作系统的消息传递特性以及设备驱动程序的构建方式。
本文尝试以一种易于阅读的 “对话式” 风格来阐释内容,预想了一些常见问题并用示例和图表来解答它们。由于并非要求读者对 C 语言有全面的了解,但掌握 C 语言绝对是个优势,所以书中各处穿插了不少代码示例。
这本书里有什么?
这本书向你介绍 QNX Neutrino 实时操作系统是什么以及它是如何运行的。书中包含多个章节,涉及进程状态、线程、调度策略、消息传递、操作系统模块化等等内容。如果你此前从未使用过 QNX Neutrino,但熟悉实时操作系统,那么你会想要特别留意关于消息传递和资源管理器的章节,因为这些都是 QNX Neutrino 的基本概念。
进程与线程
介绍 QNX Neutrino 中的进程和线程、实时性、调度以及优先级设定。你将了解调度状态和 QNX Neutrino 的调度策略,以及用于控制调度、创建进程和线程以及修改已在运行的进程和线程的函数。你会看到 QNX Neutrino 是如何实现对称多处理(SMP)的,以及这带来的优势(和隐患)。“调度与现实世界” 部分讨论了线程在运行系统中是如何被调度的,以及哪些情况会导致正在运行的线程被重新调度。
消息传递
介绍 QNX Neutrino 最基本的特性 —— 消息传递。你将了解什么是消息传递、如何利用它在线程间进行通信,以及如何通过网络传递消息。无处不在的实时系统的克星 —— 优先级反转以及其他高级主题也在这部分有所涉及。这是本书最重要的章节之一!
时钟、定时器以及定期触发
全面了解系统时钟和定时器,以及如何让定时器向你发送消息。这里有大量实用信息以及众多代码示例。
中断
本章将教你如何为 QNX Neutrino 编写中断处理程序,以及中断处理程序如何影响线程调度。
资源管理器
全面了解 QNX Neutrino 资源管理器(也被称作 “设备驱动程序” 和 “I/O 管理器” 等不同名称)。在编写自己的资源管理器之前,你需要阅读并理解消息传递章节的内容。书中包含了几个完整资源管理器的源代码。资源管理器是每个基于 QNX Neutrino 的系统的另一个重要方面。
专栏注释:后续会有专门的专栏进行资源管理器专题的讲解,敬请期待!!!
术语表
包含本书中使用的术语的定义。
其他参考资料
除了自定义内核接口,QNX Neutrino 还实现了众多行业标准。这使得你在查找来自美国国家标准学会(ANSI)、可移植操作系统接口(POSIX)、传输控制协议 / 网际协议(TCP/IP)等标准函数相关信息时,可以参考你偏好的发布方的资料。