
The article focuses on choosing a new OS for the avionics system on an ultralight jet aircraft. But here's the twist: The avionics system was already using Linux, which, according to the article, "worked without problems." So why did the system designers want to migrate to another OS?
Because in this system, all device drivers have to be certified and "very safe." The problem with Linux, the authors say, is that device drivers run within the same address space as the OS kernel. As a result, it is difficult to ensure that the drivers won't corrupt the kernel and crash the system. In the immortal words of the avionics columnist Walter Shawlee, "pilots really hate to be told they have to reboot their plane while in flight.”
The system also had to deliver smooth frame rates on the LCD display and, not surprisingly, meet hard deadlines.
Given these requirements, the designers decided to opt for a microkernel OS, specifically the QNX Neutrino RTOS. In a microkernel architecture, each OS subsystem (network stack, file system, etc.) has a private address space similar to conventional user-space applications. To quote the article, this approach offers "complete memory protection, not only for user applications, but also for OS components." It also provides "maximum modularity and relies on robust message passing schema."

SCADA — Continuously monitors and displays avionic values.
Communication — Uses the CAN protocol and CAN device drivers; each hardware device is a CAN node.
I/O device control — Uses a GPIO driver for pin-state monitoring.
Audio — Handles voice transmittal as well as the audio warning system.
Motor control — Responsible for everything connected with plane control.
For the full story, click here.
No comments:
Post a Comment