Why a commercial microkernel keeps winning the safety-critical slot, what certification actually buys, and how a safety OS sits next to Android on the same chip.
Advanced8 minQNX · Safety · RTOS · Platforms
Every cockpit consolidation project eventually hits the same wall: some content on
the screen is legally required to be there, and Android cannot promise it will
be. and its peers exist for exactly that gap.
QNX is a microkernel, and the architectural difference has direct safety
consequences.
MONOLITHIC (Linux, Android) MICROKERNEL (QNX) ┌───────────────────────────┐ ┌────────────┐ ┌────────────┐ │ applications │ │ apps │ │ drivers │ ├───────────────────────────┤ │ user space │ │ user space │ │ drivers │ fs │ net │ mm │ └──────┬─────┘ └──────┬─────┘ │ KERNEL SPACE │ │ message │ └───────────────────────────┘ ┌──────┴──────────────┴─────┐ │ microkernel: scheduling, │ a bad driver panics │ IPC, memory protection │ the whole system └───────────────────────────┘ a bad driver is a process that can be restarted
This phrase gets used loosely, so be precise about what is being bought.
Gotcha
Certification is conditional. The safety manual will say things like "the
following filesystem is not certified" or "this scheduling mode is out of scope".
Step outside the envelope and the certificate does not cover you.
Teams have discovered late that the configuration they shipped was not the
configuration that was certified. Read the safety manual early, and treat its
constraints as requirements rather than suggestions.
Here is how QNX and Android actually coexist, and it is the pattern you will meet
in almost every consolidated cockpit.
One SoC, partitions with different safety levels — The hypervisor enforces freedom from interference: Android cannot starve, corrupt or delay the safety partition, whatever it does.
You will not write QNX code. You will still hit its consequences constantly.
Boot ordering. The safety partition boots first and fast. Android boots
later and slower. Anything of yours that assumes it is up early is wrong.
Resource limits are hard limits. Your partition has N cores and M megabytes,
fixed by configuration. There is no borrowing from the safety partition under
load. Performance work has a ceiling you cannot argue with.
You do not own the whole display. The safety overlay sits above your surfaces.
A full-screen layout that assumes it can use every pixel of the cluster will be
partly covered, by design.
Some properties are read-only to you for a reason. If a value originates in
the safety domain, Android sees it and cannot set it. That is not a missing
feature request.
Crashes are contained but visible. Android restarting is survivable, and it
is also noticeable to the driver. "The partitioning protects us" is not a reason
to be relaxed about stability.