Middleware, development tools, realtime operating system
software and services for superior embedded design


Home
Products
QNX Neutrino RTOS
Security

Security

QNX Software Systems
QNX Neutrino RTOS
Overview
Realtime
Microkernel
High Availability
Networking
File Systems
Multi-core
Security
Instant Device Activation

Related resources
Product briefs
Whitepapers
Webinars
Product documentation
Supported hardware

The security of any embedded system can only be as secure as the operating systems (OS) upon which it is built. Fundamentally, all resources required for execution should be secured. These include access to memory, CPU, the kernel and hardware resources. The OS needs to provide different levels of privilege for different applications and mediation to verify all accesses and a mechanism must exist to provide resource protection.

In a real time executive, everything is compiled together and runs at the same privilege level. In such a model, there can be no mediation and by default, full access to all resources is available to all elements within the executive. Typically, the memory management unit (MMU) is not utilized and therefore no protection is available.

A monolithic kernel improves this by providing protection at the application level. This model provides applications with separation of privilege and mediation. Protection is provided via the MMU. However, in such a model device drivers, file systems and protocol stacks are all compiled into the kernel and the shortcomings identified for a realtime executive apply equally to a monolithic kernel.

A microkernel, by its nature extends this concept of securing resources to include all elements of the system including applications, drivers, filesystems and stacks. Full separation of privilege and complete mediation are provided. The protection provided by the MMU similarly applies to all system elements. As there is no user modifiable code in the kernel, privilege levels and mediation are not relevant concepts. The kernel does, however, continue to benefit from memory protection.

For added security and resource protection, the QNX partitioning solution provides CPU time and memory guarantees to ensure critical software has the resources it needs to operate correctly. This contains denial of service attacks that attempt to monopolize compute resources and starve system software.

Technology overview

Secure kernel with memory protection

Security protocols

Hardware acceleration

Partitioning for increased security

Adaptive Partitioning

QNX® Neutrino® Adaptive Partitioning is an innovative partitioning approach that provides minimum CPU time guarantees (time budgets) to a set of processes or threads. However, unlike fixed partitioning implementations, adaptive partitions can exceed their minimum CPU time budget if there are spare processing cycles available. This allows the system to make optimal use of CPU time – handling the processing bursts typically found in embedded systems.

Adaptive partitioning can be added to a system with minimal effort – no recoding (or even recompiling) of applications is required to take advantage of adaptive partitioning.

With adaptive partitioning, developers can: