Micro Kernel: The best choice for embedded systems

BlackBerrys Micro Kernel is the better choice

In the past, companies repeatedly tried to bring an operating system from the PC to a mobile device. Microsoft, HP, Dell and other manufacturers have failed again and again to build a solution. Regardless of whether it was a Windows or Linux system.

Already in 1995, Palm published a pure mobile operating system
for one of the first smartphones. Unfortunately, Palm was ahead of its time and the user interface was anything but smart. Throughout history, many manufacturers tried to build “real” smartphones, including BlackBerry. A manufacturer who certainly got his name from the word “smartphone”.

In 2007, Apple’s iPhone was released. Some may argue that it was not a revolution. However, there was one.
Through strong adjustments in the graphical representation. Finally, they removed all the buttons and switches, the user interface has been simplified and you could completely operate the operating system with your fingers.
Later Andy Rubin’s Android, which now belongs to Google, followed and a few other systems, such as WindowsPhone or MeeGo.

Although all these manufacturers have changed their operating systems for mobile use, they all have one thing in common:
None of them has a specially developed kernel for the “smartphone”.
Apple is using the Mac OSX kernel XNU for the iPhone, Android and MeeGo are using the Linux kernel, WindowsPhone 7 the Windows CE kernel and WindowsPhone 8 Windows NT kernel.

In January 2013, BlackBerry introduced two new devices:
The Z10 and Q10.
The special feature of these devices is not the completely new own operating system called BlackBerry OS10, it is the own microkernel in the BlackBerry OS10.
For fairness we have to say that BlackBerry has no custom kernel for their smartphones, but they use the QNX microkernel.

QNX, which was acquired by BlackBerry 2010, is specialized in embedded systems. This fits very well, because a smartphone is an embedded system, too.

What is a kernel?

A kernel or operating system kernel (or shortened kernel), is the central part of an operating system. The process and data organization is established in it and all other software components of the operating system are build on it. It is the lowest software layer of the system and has direct access to the hardware. The design of an operating system kernel belongs to the field of computer science and software engineering.
Common requirements for system kernels are parallel processing of different tasks (multitasking), compliance with time-critical boundaries and openness to diverse Applications and extensions.

A kernel communicates with the hardware e.g. the processor (CPU) and the memory (RAM), manages all of these parts and passes the information to the operating system (OS).
The OS processed all the information and prepares it for graphically presentation. The driver of the device hardware, for communication between the hardware and the OS, are also presented in the kernel.
A kernel can also contain a lot more, such as a file system. So a kernel has a lot of tasks and accordingly to this the code could be very large.

What is a micro kernel?

A microkernel is an operating system kernel. The microkernel features as opposed to a monolithic kernel only basic features – usually only functions for memory and process management as well as basic functions for synchronization and communication. All other functions are stored as separate processes (server), which communicate with the querying programs (client), or as a library, which is included by the querying programs, implemented in the user mode.

Unlike a conventional kernel, the microkernel takes only the minimum requirements and these are the most important. As storage management in RAM or Process Management in the CPU. The rest, such as the file system or driver, is managed by the operating system.

Comparison between micro kernel and normal kernel
Vergleich Kernel MicrokernelWhy is a microkernel more secure / reliable than a “normal” conventional kernel?

The conventional kernel
File system will fail (some Windows users may be familiar with). 

The entire system crashes and in some cases you see the Blue Screen of Death (BSOD). Here is an example of a driver, that is no longer capable of communication:
NDIS_BSODOn an operating system with standard kernel the system totally crashes, but with a microkernel everything still works.
The file system is acritical part and some applications may not getting correct data, but the system remains stable and continues to run.

Those systems with a microkernel are essential like airbags in cars. Therefore, they are used more and more. Especially in mission-critical systems. In the case of QNX: in vehicles, medical equipment, air traffic control, ship navigation equipment etc.

Why does a microkernel or the QNX kernel provides more security than a Windows, Apple or Linux kernel?

To understand this, we have to take a few steps back.

Conventional kernels are first developed with the idea of ​​functionality and reliability.
Security and data integrity are the next step or the end of development in worst case.
QNX has taken a different approach and has already taken up the issue of security in the concept of the kernel.

A conventional kernel such as the Linux kernel has about
14 million lines of code.
QNX kernel has only 97,000 lines of code.
The QNX Neutrino kernel is as stable and safe as it gets and the amount of code lines has been kept as small as possible.
qnx_microkernel_wheelAgain the example of the airbag. It takes only one line of code to trigger the airbag. So everything must have been previously reviewed.
The fewer lines of code, the fewer errors and greater efficiency, so economical in terms of resources, CPU time and memory requirements.

The QNX Neutrino kernel is also a realtime OS microkernel.
The kernel and the corresponding operating system must execute some functions in real time. In a worst case scenario it means that the core functions need to be processed in a predetermined time frame.
The airbag: in case of an accident and an expected system and or power failure, the function is guaranteed by advance calculation and guaranteed processing time.

Suppose all the points together the quote from BlackBerry CEO John Chen is logically:

Blackberry has security in the DNA
and does not build a fortress on an insecure foundation.

Translation of this article by bb10qnx.de

Tagged on:

5 thoughts on “Micro Kernel: The best choice for embedded systems

  1. Pingback: Micro Kernel: The best choice for embedded systems – TechSecurity.news

  2. Pingback: Google Fuchsia, a Microkernel OS like QNX or BlackBerry 10? | TechSecurity.news

Schreibe einen Kommentar