1 简介

Wind River 公司推出的 VxWorks 系统是过去十年来非常成功的一款实时操作 系统。与桌面/服务器操作系统的复杂性相比,VxWorks 操作系统结构的相对简单性使其成为开发嵌入式系统的最佳选择。但随着现代嵌入式系统软件的日益复杂,加上对其可靠性和适用性的预期不断提高,开发人员需要一种更高级、更灵活而且功能全面的操作系统,以构建面向未来的嵌入式系统。

QNX® Neutrino® 实时操作系统的第三代架构和尖端技术为开发人员提供了开发未来平台软件的途径。嵌入式系统的开发人员现在能使其产品具有与高级操作系统一样的复杂功能,同时又能精确响应嵌入式系统环境的独特需求。QNX Neutrino 可在 ARM、MIPS、PowerPC、SH-4 与 x86 平台上运行。

传统意义上,从实时操作系统(如 VxWorks )向高级操作系统(如 QNX Neutrino)移植应用程序并不容易。需要考虑可能出现的各种问题以及进行的各种选择可能对移植过程产生深远的影响。认识到这种情况后,QNX 开发了功能全面的迁移工具(包括本文件)和移植 Library 库,帮助客户以更可控的方式将其基于 VxWorks 的应用程序移植到 QNX Neutrino 实时操作系统中。

本文重点介绍了确立移植方法的影响范围以及您需要做的决策。如果把移植过程看作一次旅行的话,那么本文就是行程路线图。尽管某些移植可实现自动化,但从 VxWorks 向 QNX Neutrino 移植是仅使用自动化工具无法完成的复杂过程。要知道需要完成什么工作以及如何完成,必须先理解两种操作系统的区别。虽然本文全面介绍了与移植过程有关的所有重要主题,但无法对这一复杂的专题进行详尽论述。必要时,您可参考其它 QNX 文件以深入了解该专题。

QNX Thread Lifecycle

STATE_CONDVAR

  The thread is blocked on a condition variable (e.g., it called pthread_cond_wait()).

实时操作系统:ucOS/VxWorks/QNX/RTLinux

非实时操作系统:Linux/Windows/OSX

1 实时操作系统

实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时任务协调一致运行的操作系统。

在下图中右边的任务优先级("优先级")高于左边的任务,先看实时操作系统的,当优先级更高的任务2就绪的时候,即便任务1正在运行中,也必须立刻交出CPU的使用权,就跟中断一样,先执行任务2,等任务2执行完或者主动挂起(sleep)让出CPU的时候,任务1才能接着运行。

QNX Command Explanation Unix Command
use Print a usage message man
pwd Determine your current directory where
cd Change directory Cd
cp Copy files and file hierarchies cp
ls List the contents of a directory ls
 mv Rename (move) files and directories mv 
 rm Delete (remove) files  rm 
 id Return userid  who 
 ssh Provides secure remote connections  ssh 
telnet User interface to the TELNET protocol telnet
ped Photon editor -
qde Launch QNX IDE -
xpdf PDF file reader -
 mozilla  Internet browser -
 which  Locate a program file which 
grep  Search for string patterns  grep 
Find Find files based on search criteria find
mkdir Create directories mkdir
rmdir Remove directories rmdir
cat Concatenate and display files cat
vi Visual interface editor clone vi
less or more Display output on a page-by-page basis less/more
textto Convert text files to DOS format -
chmod Change a file's permissions/attributes chmod
ln Create hard and symbolic links ln
tar Create/Extract a "tape archive" tar
kill Terminate or signal processes kill
ps Report process status ps

QNX介绍及历史

QNX成立于1980年,是全世界第一个类UNIX的符合POSIX标准的微内核的硬实时操作系统,在过去的几十年中广泛的应用在汽车、工业自动化、国防、航空航天、医疗、核电和通信等领域,提供以嵌入式操作系统为核心的中间件和基础软件解决方案。在上世纪七十年代末,QNX的两位创始人Gordon Bell和Dan Dodge根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫Quick UNIX的系统,后来改名为QNX并于1980年正式发布,历经几十年的演进,QNX公司于2004年10月被哈曼集团以1.38亿美元收购,作为哈曼的一个事业部经营了六年。2010年04月,黑莓以2亿美元从哈曼处收购了QNX,一同被打包收购的还有哈曼下属的一个位于温哥华的叫Wavemaker的音效部门,也就是现在QNX acoustic方案的前身。QNX这个成立于加拿大渥太华的公司,在被美国哈曼买走6年后又重返加拿大,作为黑莓核心部门IOT技术方案事业部的最重要组成部分,承担黑莓业务中操作系统汽车基础平台软件、数据安全、物联网IOT及云计算和专利部门等重要业务内容。