赞
踩
说到操作系统,先来列举一些 UNIX 和 类Unix 操作系统
分类 | 操作系统 |
UNIX System V家族 | A/UX、AIX、HP-UX、IRIX、LynxOS、SCO OpenServer、Tru64、Xenix、Solaris、OS/2 |
BSD UNIX-386BSD家族 | BSD/OS、FreeBSD、NetBSD、NEXTSTEP、Mac OS X、iOS、OpenBSD、SUN OS、 OpenSolaris |
UNIX-Like | GNU、Linux、Android、Debian、Ubuntu、Red Hat、Linux Mint、Minix、QNX、GNU/Linux、GNU/Hurd、Debian GNU/Hurd、GNU/kFreeBSD、StartOS |
其他 | DOS、MS-DOS、Windows、React OS |
QNX是一种商用的分布式、嵌入式、可规模扩展、遵从POSⅨ规范的类Unix实时操作系统。
QNX是微内核架构,其核心仅提供4种服务,分别为:进程调度、进程间通信、底层网络通信和中断处理。驱动程序、协议栈、文件系统、应用程序等都在微内核之外内存受保护的安全的用户空间内运行,组件之间能避免相互影响,在遇到故障时也能重启。
下图为QNX系统架构图:
对许多依照POSIX1.003.1标准实现的实时执行程序来说,它们的运行时环境通常是单进程、多线程的模型,线程之间没法做到内存保护,而这样的环境只是POSIX假设的多进程模型的一个子集,它不支持fork()函数。相比之下QNX Neutrino利用MMU,在受保护的环境中实现了POSIX的线程模型。
针对内存保护,有以下几种情况:
1. 不提供内存保护:所有程序位于同一个地址空间,应用程序可以访问所有空间,效率较高,但是程序指针错误可能造成内核崩溃,典型的比如Nuttx平板模式。
2. 单内核OS提供部分内存保护:用户层和系统层进行了隔离,内核和各种驱动、协议栈在同一个地址空间,应用程序在单独空间。内核模块处于一个保护空间,效率较高,应用程序无法访问,系统的稳定性也得到提高。由于内核模块处于保护空间,调试会比较困难。比如Linux系统。
3. 微内核OS提供完整的内存保护:内核处于一个被保护的地址空间,驱动程序、网络协议及应用程序等处于程序空间中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。