Home
Download Center 

QNX Whitepapers

  Operating Systems      Download Options  



Grant Courville
GCourville@qnx.com
Security Awareness

In order for a system to be useful, it needs to interact with the environment and provide some level of functionality. Historically, embedded systems were mostly islands – that is, they provided their functionality in a stand-alone manner, and weren’t connected, or had limited connectivity to other systems. With these kinds of systems, it was relatively easy to analyze their security – the number of ways of getting in and compromising the operation was extremely limited.
Read More...

April 2016
Download Now
Download




Chris Ault
cault@qnx.com
Total cost of ownership Linux vs. QNX - Part3

The Linux OS provides for open access to its source code. This has led some to choose Linux as a viable development platform, on the perceived basis that its cost is less than commercial alternatives. To examine this, we present a three-part whitepaper series that closely examines the total cost of ownership of Linux and how that compares to a commercial off-the-shelf realtime operating system like QNX. In Part 3 we examine the challenges of certifying a Linux-based system.
Read More...

February 2016
Download Now
Download




Dennis Kelly
dkelly@qnx.com
Breaking up is hard to do

Contrary to the title, this paper is not about romance. It is about embedded software design and how to avoid professional heartache.It’s a fact of life – embedded systems need human interaction. With some systems, so much work is invested in the HMI that it’s easy to lose sight of the fact that the system exists for the purpose of performing work! This paper will deal with life-cycle issues of embedded systems requiring an HMI.
Read More...

February 2016
Download Now
Download




Chris Ault
cault@qnx.com
Total cost of ownership Linux vs. QNX - Part 2

The Linux OS provides for open access to its source code. This has led some to choose Linux as a viable development platform, on the perceived basis that its cost is less than commercial alternatives. To examine this, we present a three-part whitepaper series that closely examines the total cost of ownership of Linux and how that compares to a commercial off-the-shelf realtime operating system like QNX. In Part 2 we examine the costs of maintaining Linux.
Read More...

February 2016
Download Now
Download




Chris Ault
cault@qnx.com
Total cost of ownership Linux vs. QNX - Part1

The Linux OS provides for open access to its source code. This has led some to choose Linux as a viable development platform, on the perceived basis that its cost is less than commercial alternatives. To examine this, we present a three-part whitepaper series that closely examines the total cost of ownership of Linux and how that compares to a commercial off-the-shelf realtime operating system like QNX. In Part 1 we examine upfront costs, selecting the right version, and time to market.
Read More...

January 2016
Download Now
Download




Yi Zheng
yzheng@qnx.com
Architectures for ISO 26262 systems with multiple ASIL requirements

To satisfy consumer demand while building better cars and controlling costs, automakers are consolidating multiple in-vehicle systems onto one board. This consolidation creates problems, however. In particular, automakers must find a way to incorporate into the same system components running consumer-grade applications, and components whose dependability and freedom from undesired interference must be rigorously engineered and proven.
Read More...

September 2014
Download Now
Download




Tina Jeffrey
tjeffrey@qnx.com

Chris Ault
cault@qnx.com


Client-side Challenges of M2M-enabled Updates for Mobile Embedded Systems

The number and diversity of current and possible M2M implementations in cars make them an excellent paradigms for examining issues of software and firmware upgrades to mobile and embedded platforms. All things being equal on the server side and with the network infrastructure (they are reliable and secure), M2M-enabled updates to automotive systems present three major client-side challenges: safety-related components, limited computing resources, and connectivity.
Read More...

April 2013
Download Now
Download




Chris Hobbs
chobbs@qnx.com


The Dangers of Over-Engineering a Safe System

Attempts to increase dependability of a specific component without considering the question of overall system dependability may lead to the introduction of new problems. We examine the effect on dependability of adding software error detection to a 2oo2 system, consider the benefits and adverse consequences of this addition, and suggest other approaches to improving dependability.
Read More...

April 2013
Download Now
Download




Chris Hobbs
chobbs@qnx.com

Yi Zheng
yzheng@qnx.com


Protecting Software Components from Interference in an ISO 26262 System

Automobile safety often depends on the correct operation of software-based systems constructed from many different components. Good design requires that these components be isolated from each other on multiple axes so that they do not inadvertently interfere with each other. In this paper we present techniques that can help a) ensure that a system implements the component isolation required by ISO 26262, and b) demonstrate that this isolation has been implemented.
Read More...

March 2013
Download Now
Download




Yi Zheng
yzheng@qnx.com

Chris Hobbs
chobbs@qnx.com

Ten Truths about Building Safe Embedded Software Systems

Obtaining safety certifications and approvals for safety-related systems and the larger systems, devices, components, machinery, and vehicles in which they reside is an arduous and costly undertaking. If the projects developing these systems are to be successful, manufacturers must look beyond the strictly technical challenges, and focus also on the environment and culture needed to develop safe software systems.
Read More...

December 2012
Download Now
Download




Grant Courville
gcourville@qnx.com
Choosing an OS for Embedded Train Control Systems

Trains are no longer run by men in overalls with lantern signals. They are controlled by software in embedded systems. In this whitepaper we look at some requirements of this software and discuss OS characteristics that support these requirements, in particular where real-time performance is needed and why, the importance of the OS for certifications to standards such as the EN 5012x series and IEC 61508, the OS architecture, and some OS features that support system dependability.
Read More...

October 2012
Download Now
Download




Chris Hobbs
chobbs@qnx.com
Which OS for IEC 62304 Medical Systems?

This paper is for anyone who must select an OS for a safety-critical medical system. It provides information to help with estimates of the real cost of choosing a Linux or QNX OS. It lists requirements identified by standards such as IEC 62304, ISO 14971 and IEC 61508, and offers comparative estimates of the effort required to meet these requirements. These estimates are for initial certification and pre-approval, subsequent re-certifications following OS upgrades, and ongoing costs.
Read More...

August 2012
Download Now
Download




Paul Leroux
paull@qnx.com
Exactly When Do You Need an RTOS?

Together, the speed of today’s high-performance processors and realtime patches for general-purpose OSs appear to have re-opened the question of whether embedded systems still need an RTOS. The answer hasn’t changed: the guarantees only a true RTOS can offer on relatively low-end processors mean that these OSs are here to stay in embedded environments.
Read More...

February 2012
Download Now
Download




Yi Zheng
yzheng@qnx.com
An Introduction to QNX Transparent Distributed Processing

Imagine if any device in a network could access the hardware resources of any other device as easily as devices now share data. In this paper we introduce QNX transparent distributed processing (TDP), and explain how this technology can be used to connect disparate devices into a single logical computer. We present examples of how TDP can be used to meet requirements ranging from reducing hardware component counts to building fault-tolerant systems with hundreds of processors.
Read More...

November 2011
Download Now
Download




Ben VandenBelt
bvandenbelt@qnx.com
Building Embedded Industrial Applications with PPS

A Persistent Publish/Subscribe (PPS) messaging model is an excellent choice for embedded industrial systems which must integrate many disparate devices and components, as well as support a sophisticated Human-Machine Interface (HMI). PPS messaging simplifies the design of these systems and facilitates implementation of HMIs built with disparate technologies, such as HTML5, OpenGL ES, Qt, Elektrobit Guide or Crank Storyboard.
Read More...

September 2011
Download Now
Download




Chris Hobbs
chobbs@qnx.com
Clear SOUP and COTS Software for Medical Device Development

Medical device manufacturers may be reluctant to use COTS (commercial-off-the-shelf) because it implies SOUP (software of uncertain provenance), and thus may compromise device safety and pre-market approval by regulatory agencies. If we make the distinction between opaque SOUP and clear SOUP, that is, SOUP for which source code, fault histories and long in-use histories are available, we will find that COTS software may be the optimal choice for many safety-related medical devices.
Read More...

September 2011
Download Now
Download




Rick Pitz
sales@certicom.com

Yi Zheng
yzheng@qnx.com

Meeting Security Certification Requirements with Certicom and QNX

To reduce the complexity and costs of its expanding networking and security needs, the U.S. federal government has published Federal Information Processing Standard (FIPS) 140-2 Security Requirements for Cryptographic Modules. In this paper we describe how the QNX Neutrino RTOS and the Certicom Security Builder Government Security Edition (GSE) cryptographic library can help ease the burden of building and delivering FIPS 140-2 compliant software.
Read More...

July 2011
Download Now
Download




Chris Hobbs
chobbs@qnx.com
Building Functional Safety into Complex Software Systems, Part II

Proofs that software systems meet standards for functional safety have depended on exhaustive testing. This method is inadequate for today’s multi-threaded systems, whose complexity precludes their being treated as deterministic systems in practice.

In Part II of this whitepaper series, we propose how a combination of procedural rigor, statistical testing, and design verification can be used to increase confidence in the functional safety of complex software systems.
Read More...

March 2011

Download Now
Download




Jeff Schaffer
jpschaffer@qnx.com

Steve Reid
stever@qnx.com

The Joy of Scheduling

The scheduler is at the heart of the OS: it governs when everything runs. Scheduling is especially important in realtime systems, where tasks must run in a deterministic manner. If the designer doesn’t have complete control of scheduling, unpredictable and unwanted system behavior can and will occur. This paper describes some commonly used scheduling algorithms and how scheduling works, This knowledge can help developers correct scheduling problems and create more efficient systems.
Read More...

February 2011
Download Now
Download




Chris Hobbs
chobbs@qnx.com
Building Functional Safety into Complex Software Systems, Part I

Proofs that software systems meet standards for functional safety have depended on exhaustive testing. This method is inadequate for today’s multi-threaded systems, whose complexity precludes their being treated as deterministic systems in practice.

In Part I of this whitepaper series we discuss the limits of testing of complex software systems, and some factors that should be weighed when deciding how to build complex software systems that must meet functional safety standards.
Read More...

January 2011

Download Now
Download




Chris Hobbs
chobbs@qnx.com
Using an IEC 61508-Certified RTOS Kernel for Safety-Critical Systems

This whitepaper presents the characteristics of a safe kernel,and briefly describes the QNX® Neutrino® RTOS Safe Kernel, which has been certified to conform to IEC 61508 at Safety Integrity Level 3. The paper then describes some important support requirements for developing applications with safe kernels: a comprehensive tool suite, documentation and training.
Read More...

September 2010
Download Now
Download




Shiv Nagarajan
shiv@qnx.com
Processor Affinity or Bound Multiprocessing: Easing the Migration to Embedded Multicore Processing

Migrating systems designed for single core processors to multicore environments is still a challenge. Bound multiprocessing (BMP) can help with these migrations. It improves SMP processor affinity. It allows developers to bind all threads (including dynamically created threads) in a process or even a subsystem to a specific processor without code changes.
Read More...

June 2010
Download Now
Download




Chris Hobbs
chobbs@qnx.com
Protecting Applications Against Heisenbugs

Virtually-synchronous replication provides a mechanism that allows developers of mission- and safety-critical applications to reduce the impact of elusive and non-reproducible bugs—commonly known as Heisenbugs—in their applications.
Read More...

February 2010
Download Now
Download




Chris Hobbs
chobbs@qnx.com
Fault Tree Analysis with Bayesian Belief Networks for Safety-Critical Software

The flexibility of Bayesian Belief Networks makes them particularly suitable for presenting a quantified safety case incorporating hard and soft evidence. This paper describes their application to one component of an overall safety assessment of the QNX Neutrino microkernel.
Read More...

January 2010
Download Now
Download




Andy Gryc
agryc@qnx.com
Meeting Early Boot Requirements with the QNX Neutrino RTOS

Typically, a full-featured RTOS cannot load and initialize quickly enough to handle early boot deadlines of 100 milliseconds or less. For such deadlines, system designers need a solution such as the QNX instant device activation technology. This paper doesn't cover instant device activation. Rather, it focuses on longer timelines in the order of one second or more, and on optimizing your RTOS and application startup to boot as quickly and efficiently as possible.
Read More...

November 2009
Download Now
Download




Ben Biron
bbiron@qnx.com
Fastboot Techniques for the x86 Architecture

Embedded developers whose systems must boot quickly need a way to bypass the x86 BIOS, which can be the cause of unacceptably long boot times. This paper explores factors that affect boot time, and discusses the dramatic boot-time and performance gains that result from replacing the BIOS with customized early initialization of peripherals.
Read More...

May 2009
Download Now
Download




Paul Leroux
paull@qnx.com
Using Resource Partitioning to Build Secure, Survivable Embedded Systems

By providing guaranteed access to system resources, partitioning can ensure the availability of critical services, even when your system experiences a heavy processing load or a denial-of-service attack.
Read More...

April 2009
Download Now
Download




Paul Leroux
paull@qnx.com
Secure by Design: Using a Microkernel RTOS to Build Secure, Fault-Tolerant Systems

Virtually every embedded system today is connected. Unfortunately, this connectivity makes systems vulnerable to attack. To thwart such attacks, organizations surround their systems with a protective barrier: network, cryptographic, and even physical security. As the software that provides centralized access to the CPU, memory, and other resources, the realtime operating system (RTOS) can play a major role in achieving this goal of building secure, survivable embedded systems.
Read More...

April 2009
Download Now
Download




Paul Leroux
paull@qnx.com
Managing Flash Memory in Embedded Systems

This paper explores how to choose the most appropriate file system for your embedded design. For example, should your design use a FAT file system or a transaction-based file system? Does it need to run reliably on low-cost NAND flash or recover quickly from file errors? This paper addresses these issues and examines the importance of dynamic wear leveling, static wear leveling, read-degradation monitoring, write buffering, background defragmentation, and other techniques.
Read More...

October 2008
Download Now
Download




Paul Leroux
paull@qnx.com
Using Static and Runtime Analysis to Improve Developer Productivity and Product Quality

Static analysis can uncover a variety of defects and weaknesses in system source code, even before the code is ready to run. Runtime analysis, on the other hand, looks at running software to detect problems as they occur, usually through sophisticated instrumentation. This paper begins with static analysis, then explores runtime analysis, and, finally, discusses how developers can combine static and runtime analysis to prevent regressions as a product matures.
Read More...

April 2008
Download Now
Download




Kerry Johnson
kjohnson@qnx.com
Software Optimization Techniques for Multi-Core Processors

This paper provides examples of multicore optimization techniques and discusses how developers can use visualization tools to characterize multicore behavior and measure performance improvements. The paper explores how developers can use threading models to create multiple concurrent tasks and parallel processing; it also discusses how to minimize lock contention by using mutexes to engineer the optimal level of lock granularity.
Read More...

February 2008
Download Now
Download




Kerry Johnson
kjohnson@qnx.com
Using Time Partitioning to Ensure Guaranteed Access to Industrial Control Systems

An "always on" HMI is a key requirement for many industrial control systems. Nonetheless, the HMI can become unresponsive or unusable under heavy CPU loads. This paper explores how system designers and developers can use CPU time partitioning to prevent this problem and guarantee both local and remote operator access. With time partitioning, developers and system designers can allocate a guaranteed portion of CPU time to each software subsystem, regardless of system load.
Read More...

February 2008
Download Now
Download




Romain Saha
rsaha@qnx.com

Paul Leroux
paull@qnx.com

Real Time or Real Linux? A Realistic Alternative

Designers of embedded systems have become increasingly interested in the Linux operating system, largely because of its open source model. However, the standard Linux kernel can't deliver the hard realtime capabilities that a large number of embedded systems demand. In this paper, we look at using a POSIX-based RTOS designed for embedded systems that not only allows Linux developers to keep their programming model, but also maintains the key advantages of Linux's open source model.
Read More...

May 2007
Download Now
Download




Kerry Johnson
kjohnson@qnx.com

Romain Saha
rsaha@qnx.com

Lowering the Development Costs of Network Elements through Software Partitioning

Networking and telecommunication OEMs are at the forefront of design complexity. A network element can contain hundreds of thousands or even millions of source lines and employ hundreds of software tasks, all of which contend for a finite amount of memory and CPU time.
Read More...

February 2007
Download Now
Download




Paul Leroux
paull@qnx.com
Case Study: Making a Successful Transition to Multi-Core Processors

Multi-core processors are, in effect, multiprocessing systems on a chip. Consequently, embedded developers must graduate from a serial execution model, where software tasks take turns running on a single processor, to a parallel execution model, where multiple software tasks can run simultaneously. The more parallelism developers achieve, the better their multicore systems perform. This paper looks at how one development team minimized its migration efforts while maximizing system throughput.
Read More...

February 2007
Download Now
Download




Kerry Johnson
kjohnson@qnx.com
Using POSIX Threading to Build Scalable Multi-Core Applications

Multicore processors offering better performance per watt than conventional processors has changed embedded system designs and increased the demands on these systems. POSIX threading and symmetric multiprocessing offer a scalable approach to achieve the highest possible performance from processors based on two, four cores or more. This paper examines how worker threads and symmetric multiprocessing can leverage the hardware parallelism offered by multicore chips.
Read More...

February 2007
Download Now
Download


Other whitepaper topics: Recent, Automotive, German Whitepapers, HMI + Graphics, Industrial, Medical, Multimedia + Acoustics, Networking, Operating Systems, Security + Defense, Safe Systems, Tools