Accelerate embedded software development using QNX® Neutrino® OS on Amazon EC2 Graviton
This blog was authored by Carine MacPherson, Patrick Bartsch, Chavi Gupta, Mehran Najafi, Stefano Marzani, Brett Francis, and Michael Garcia.
Today, BlackBerry announced that customers who build mission-critical, deterministic, embedded systems using BlackBerry QNX, such as those in the automotive, robotics, aerospace, avionics, energy and medical industries, now, have the agility, speed, and scale of the cloud available to their developers. BlackBerry’s QNX AMI makes the QNX Neutrino Real-Time Operating System (RTOS) available in all AWS regions as a preview to select members of the developer community using Blackberry QNX tooling. A very popular RTOS is BlackBerry QNX, which we will discuss in this article, and explain how its availability in the cloud will help customers in regulated industries to embark on their cloud-native journey.
Cloud-native development processes in regulated industries
In regulated industries, system failures can have significant, real-world consequences, including the threat of injury. The regulations and safety certification processes used in these industries exist to reduce these consequences as much as possible. One critical software component is a deterministic RTOS that runs safety-critical software applications.
As more customers in regulated industries expand to explore technology and software initiatives for their companies, these customers need the cloud to develop software with agility and flexibility, delivering functionality, incrementally, into their embedded devices with no compromise on quality or safety.
Cloud development environments can scale quickly and automate various development flows using “proven in use” services for CI/CD pipelines. Centralized storage and secure access of the development and test environment brings additional efficiency for large teams. One big roadblock developers face is that cloud development environments do not match to the industry specific environments used to create safety relevant applications. With the launch of the BlackBerry QNX AMI, developers can experience binary parity in the cloud for the first time. While cloud-native became the reference approach to achieve those objectives for many sectors, application developers in regulated industries are presented with unique challenges. A cloud-native approach able to preserve industry specific characteristics in terms of functional safety concepts and real-time execution is key to achieving faster time-to-market while preserving safety and security of the applications developed and deployed.
The QNX Operating System
BlackBerry’s QNX products have enabled customers in multiple industries to build critical embedded systems using a commercial RTOS, hypervisor, development tools, and services. Today, application developers and testers use these tools in on-premise compute environments that lack the scalability and tooling to automate development and test processes.
QNX Neutrino OS is a microkernel-based operating system (OS), specifically designed and implemented to be secure and safe. It was first released in 1984 by Gordon Bell and Dan Dodge under the name QUINX, later renamed QNX. QNX follows the philosophy of running most typical OS kernel capabilities, outside the QNX kernel as separate processes. This philosophy differs from the approach of traditional, monolithic kernels. Monolithic kernels are composed of a large quantity of capabilities, with each part having its own deeply special abilities. Instead QNX uses a microkernel – named Neutrino – that allows developers to turn off special abilities that do not need to run, all without having to change the OS kernel. Where monolithic kernels would have an inactive piece of logic that still loads into kernel space, the QNX microkernel includes only CPU inter-process communication, interrupt management, and CPU scheduling, everything else runs as processes in user process space. These processes can then be configured as active, or inactive, and align with exactly what is needed to accomplish a software task. By following this approach, the QNX OS isolates the kernel from failures and lays the foundation of the “freedom of interference” that is required many regulations and safety certifications, such as ISO 26262 and IEC61508.
QNX Neutrino OS is widely used to run safety critical applications for military, security, and defense, GE Electric Controllers, Siemens SIMATIC and more. BlackBerry QNX also provides the operating system for a number of safety-certified products like CARIAD ADAS, Hyundai Autron, Magna ADAS, TTTech, NVIDIA Drive OS, and Qualcomm Snapdragon Ride. Now, with the BlackBerry QNX AMI on AWS Marketplace, customers can integrate existing development pipelines to focus on building these systems and start testing these in the cloud. It achieves binary parity, considering that it can now be run on AWS Graviton Processor through Amazon Elastic Compute Cloud (EC2), before the final embedded hardware is available. Having QNX OS running in the cloud will reduce the setup and logistics cost for developers and will allow them collaborate more on the same targets virtually instead of physically (send a link to an environment instead of a box). Target hardware is only needed for specific deployment testing at the end of the dev cycle, allowing developers to do more with less hardware than before. Any industry using the V model for product development can now “shift-left”, automate, and reduce their product time to market.
In a cloud-based development and testing workflow using QNX OS AMI can be scaled through Amazon Elastic Compute Cloud (EC2) – the Graviton powered instances in particular – across the team’s need and stopped when not required, allowing cost saving in the long term. Costly and scarce development hardware can be used more efficiently for the final verification of their software on functional safety (ISO 26262, IEC61508) and cybersecurity regulations (UNECE WP29).
QNX OS is provided as a base AMI that can be stacked up with additional software by any partner. The base AMI will be available on the AWS Marketplace. Additionally, it will unlock the developer community but also new revenue streams and business models for current incumbents as well as new comers. In the next section, we will go through a case study of how the base QNX AMI can be helpful to software solutions in the automotive industry by deploying identical workloads to the cloud and to automotive grade hardware seamlessly.
Case Study: QNX AMI for IVY
BlackBerry IVY is a scalable, cloud-connected software platform that allows automakers to provide a consistent and secure way to read vehicle sensor data, normalize it, and create actionable insights from that data both locally in the vehicle and in the cloud. Automakers can use this information to support any in-vehicle application they wish to deploy. BlackBerry IVY can be deployed on top of multiple OS platforms, including the QNX OS. Now that the QNX OS can be deployed in the AWS Cloud, it means that BlackBerry IVY can also be deployed in the AWS Cloud on top of QNX OS natively.
At AWS re:Invent 2022, the AUT 303 workshop named “Cloud-native development of synthetic sensors with BlackBerry IVY” will take advantage of this technological accomplishment to seamlessly deploy an identical scene detection workload to BlackBerry IVY Edge in a cloud environment and on automotive grade hardware. In the Fig 2. AUT 303 workshop architecture below, you can see on the right the scene detection workload being deployed to a Lantronix SA8295 Qualcomm development board. On the left, you can see that workshop participants will deploy the binary identical scene detection workload to an Amazon EC2 Graviton instance based on the native QNX AMI.
Fig 1. AUT 303 workshop architecture
Let’s zoom in on the parity aspects of this deployment, between the Amazon EC2 cloud instance and the QC8295 automotive hardware board. While there is still a disparity between the cloud and automotive hardware in terms of hypervisors and underlying compute resources, the QNX OS binary parity now enables us to have workload parity at a higher level in the stack (Fig 3. Parity between cloud IVY Target and hardware IVY target). It means that automotive developers can now use the IVY Development Tools to build, deploy and manage their BlackBerry IVY workloads across different IVY targets with increased binary parity for QNX OS deployments.
Fig 2. Parity between cloud IVY Target and hardware IVY target
As outlined in the AUT 303 workshop and mentioned above in this post, this level of parity brings many benefits across multiple dimensions such as agility, cost of operations and performance. For instance, the CPU based machine learning inference performed by the Object Detection synthetic sensor has comparable performance (16% variation) on both IVY targets. Achieving this parity allows development, verification, and validation in-cloud, independent of embedded hardware on developers’ desks. This will enable a shift-left in the development and testing process as well as greater flexibility for post-sale deployment models to drive innovative new business model in the automotive industry.
By making QNX OS available through AWS Marketplace, we are taking a major step to increasing parity between cloud and embedded hardware environments. With the increased power and performance afforded by being able to access the QNX OS on AWS Graviton2 Processors through Amazon Elastic Compute Cloud (EC2), embedded software projects stand to benefit from reduced development time, while ensuring software reliability through testing, verification, and validation at scale. We are demonstrating this work with BlackBerry IVY at the AUT 303 workshop (Cloud-native development of synthetic sensors with BlackBerry IVY) at AWS re:Invent 2022. To learn more, please register for the workshop and see us at the QNX AMI booth at the show.