Skip Navigation
BlackBerry Blog

How to Choose the Right OS for Your Embedded System: 10 Criteria for Success

AUTOMOTIVE / 08.13.20 / Malte Mundt

At many companies, the choice of operating system (OS) for an embedded project is no choice at all; it is often either:

  • the OS used on the last project;
  • the OS pre-installed by the hardware manufacturer; or
  • the OS the developer used in the past.

Those selection criteria do not necessarily ensure the best fit for a given embedded project. Unfortunately, when the OS selected for an embedded project is a poor fit for that embedded project’s requirements, development is prone to take longer, features can be limited and customers are often left dissatisfied.

Imagine the freedom to make the best choice based on different selection criteria! What criteria would you use? Consider starting with the following to make a better OS decision for your next project:

  1. Fit with Hardware: Embedded OS vs. General-Purpose OS. A general-purpose OS is built to be easy for end users of PCs or mobile devices. How difficult is the general OS for embedded system developers to work with? That’s a completely different story. In contrast, an embedded OS is built from the ground up with embedded developers and system restraints in mind. The embedded OS is designed to be easy for developers under time pressure, on constrained hardware, and with requirements such as fast boot, advanced security, and a long low-maintenance product lifecycle.

  2. Open Standards: Build on What Your Team Knows. You (and your developers) are likely familiar with Linux® OS – and for that reason alone you may choose to build a Linux OS. But if you choose a commercial OS that is POSIX compliant, you will find that porting is easy and OpenGL ES for graphics ensures a wide choice of human machine interface (HMI) solutions. Eclipse as a base for the integrated development environment also shortens the learning curve. Consider leveraging the advantages of a commercial OS built on top of open standards instead of building your own OS.

  3. RTOS: Real-Time Determinism. A real-time deterministic OS ensures that the embedded system does what it was designed to do. Whether your end users require a highly responsive user experience or whether you have safety-critical or mission-critical scenarios, determinism delivers reliability and responsiveness.

  4. Isolation: Flexibility and a Path to the Next Generation. Preventing software components from interfering with each other or the kernel enables developers to deliver more stable, reliable, available, safety-certifiable, and maintainable systems:

    • A microkernel OS and an embedded hypervisor are two tools to achieve isolation and separation. With a microkernel, a developer can enhance the OS or add components without changing the kernel in any way.

    • An embedded hypervisor allows multiple OS to run without interference on a single system-on-chip (SoC). That’s a powerful way to enable readiness to add new features and innovate for generations to come.

    The ultimate flexibility is provided by an embedded OS that is also an embedded hypervisor. With this approach, developers can run another OS in a virtual machine as needed.

  5. Safety Certification: Pre-Certified OS. Sometimes you need safety certification to demonstrate compliance with an industry standard. A pre-certified OS can reduce the time, uncertainty, and costs of functional safety certification. You may even be able to switch from a non-certified OS to a pre-certified version of the same OS with minimal effort, simplifying your certification efforts.

  6. Embedded Systems Security: Prevent Malicious Access. Embedded systems are often connected to the Internet or a communications network that exposes the system to threats, increasing the risk of attack. Many embedded systems are difficult to update, and so, an OS requiring frequent security patches poses an additional risk. A secure embedded OS has a microkernel architecture, adaptive time partitioning, and preemptive scheduling to guarantee CPU availability for critical threads without wasting processing time, and a layered approach to security that facilitates the creation of a system that has zero user code running with maximum privileges.

  7. Support Services: Get to Revenue Faster. Although open source user communities are helpful, volunteer time is limited. A commercial embedded OS vendor that has written its kernel from the ground up can offer high-quality support in a timely manner. Some embedded OS vendors provide broad and deep support services covering all aspects of development. Ideally, select an OS supplier who has successfully supported large multimillion-dollar projects. They can contribute to your success by sharing their expertise through subject matter expert consulting and engineering services.

  8. Development Tools: Pre-integrated, Validated and Supported. Give all your developers the best tools without having to do a lot of research yourself. If you choose a commercial OS, typically a complete tool chain is supplied – pre-integrated, validated and, most importantly, supported. Stop worrying about compilers, debuggers, and profiling and memory leak detection tools. Give that job to your OS vendor.

  9. Beyond Benchmarks: Find the Right Performance Criteria. OS speed is important, but how do you benchmark overall system stability, security, and ability to provide functional safety? Some criteria may even be conflicting, so don’t sacrifice too much for a single, simplified metric. Ultimately, the right hardware platform and an elegant application design will have a more significant impact on speed than the OS.

  10. Open Source or Commercial OS: Real Costs of a Free OS.  Human nature makes us want to take advantage of free offerings, like open source software. In reality, open source software can come with hidden costs and introduce risk. Choosing between a commercial OS and an open source OS is a big decision. The free software may not be such a good deal if community support is lacking, the community heads in a different direction, or maintaining and updating an OS ties up your best engineers and limits your ability to add new features and innovations. Free yourself from the burden of endlessly tweaking an OS and pass this job to a vendor who does all things OS. Watch this webinar to learn why Zebra Technologies made the difficult decision to move from open source to a single commercial OS for all their products and increased their new product introductions fourfold.

How Can BlackBerry QNX Help You?

BlackBerry QNX has been providing trusted software, development tools and professional services to embedded developers for 40 years, and we’re here to help you meet your production deadlines.

  • QNX® Neutrino® RTOS provides reliability and responsiveness through determinism and freedom from interference enabled by our microkernel architecture.
  • Linux developers will find it easy to work with the QNX® OS and ramp up quickly, as it looks and feels like Linux. The QNX® Momentics® Tool Suite provides a unified and extensible Eclipse-based development environment including the GNU compiler collection (gcc), plus tools to save developers time for everything from bringing up a board to remote diagnostics. Also, Linux works out of the box on the QNX® Hypervisor.
  • A common code base across multiple OS versions enables QNX developers to switch between the QNX Neutrino RTOS, and our pre-certified QNX® OS for Safety, or the QNX Hypervisor and pre-certified QNX® Hypervisor for Safety.
  • BlackBerry® QNX® Professional Services help bring safe, secure, and reliable products to market on time, on budget and with quality. With a 40-year proven track record, full-stack expertise and flexible engagement models, we can fit your needs.

Learn more about BlackBerry® QNX® solutions at

Malte Mundt

About Malte Mundt

A field application engineer at QNX Software Systems, Malte Mundt is a primary contact for software developers and project managers facing new challenges and quickly want to find their way in the world of QNX technology. After completing his degree in computer engineering, Malte worked as an editor and later editor-in-chief for several professional IT journals. He subsequently worked as a software developer and project manager for 8- and 16- bit systems, and in 2001 he entered the world of 32-bit operating systems when he joined QNX Software Systems.