Choosing Correct OS for your Embedded Platform
Embedded system is application-oriented special computer system which is scalable on both software and hardware. Lots of consumer electronics have embedded CPU and thus became embedded systems. For example, PDAs, cell phones, point-of-sale devices, VCRs, industrial robot control, or even your toasters can be embedded system. It can satisfy the requirement of functionality, reliability, cost, volume, and power consumption of the particular application. When starting a new Embedded Systems Project, the most critical move is selecting of the Operating System (OS). Currently embedded operating systems are targeted for CPU architectures ranging from x86 (CISC) to ARM. The proper or improper choice of an OS can affect every aspect of the development project such licensing costs, durability, product development time which includes resource availability and performance.
In this article, let’s take a look at the parameters which should be considered for choosing an OS for an embedded system, and how they might affect overall product performance and the software development process. Also let’s see some comparison of some of the well-known embedded operating systems.
What Parameters to be considered before finalizing the OS
Is your application real time? ‘Real time’ does not necessarily mean fast – it means predictable or deterministic. These are not absolute terms. It is a question of how predictably you need your system to respond to events. How critical is the timing? If you need a high level of determinism, then an RTOS is probably your best choice. Under some circumstances, Linux and Windows Embedded OSes may serve, particularly if the use of real time extensions is acceptable.
As designers piece together the requirements for each new project, real-time performance is one of the early considerations. OS vendors use terms like “hard” and “soft” to describe the real-time operation of their systems. Hard real-time systems are scheduled so tasks are guaranteed to start within a precise length of time from an external event. Hard real-time systems are deterministic. Soft real-time systems generally list the average length of time to start the routine, but there is a small probability that the maximum time can be much longer. Mission-critical applications must be deterministic. For example, industrial actuators, airbag controllers, and even arcade games must react in a known time. Soft real-time applications usually respond within a few seconds but an occasional slow response is not critical.
A proprietary OS would increase the cost of the product. For example, Windows Embedded compact OS require license to be paid for every product whereas Linux is open source and free.
Time to Market
The time-to-market constraint in an embedded system has become especially demanding in recent years. Introducing an embedded product to the market place at early can make a big difference in the system's profitability. The main contributors which affect the time-to-market constraint are design time, product development time and testing time.
Choosing the right OS for an embedded product can greatly reduce development time and testing time which helps launch the product in market at time and ensures quality of the product. To achieve this, it is necessary to consider following main criteria to choose right OS,
- Board Support Package (BSP) and device drivers should be available and integrated with OS for the target machine.
- Greater Technical support is a key requirement.
Flexibility of the OS helps to ease the porting of device drivers for custom peripherals. It also helps to extending/configuring the kernel if systems are peripheral rich and could ease the upgrading of product by adding new hardware in feature
Networking and Connectivity
Most of the embedded products are nowadays requires a greater networking performance. This is indeed becoming essential as connectivity is a crucial requirement almost in all the embedded products due to Internet of Things (IoT) or machine to machine (M2M) communication trend. So it is very important to consider the OS that is promising most effective networking performance. For instance, Linux provides better performance than Windows Embedded Compact when considering networking performance. Apart from bandwidth performance, support for connectivity SDKs like AllJoyn should also be considered as using these standard SDKs would make the development easier and faster.
In the case of systems with real-time characteristics, a hard, real deterministic OS would be the right choice, whereas for Human Machine Interface (HMI) applications that require no real-time behaviour but run a set of applications with rich user experience, Windows Embedded Compact with Silverlight library or Android would be the right fit.
Power management is a metrics to measuring performance of an embedded system products especially for battery operated devices. The OS should render support for power management and could supply with various power management techniques at different levels, say from complete system active state to suspend state. Almost all the full featured OSes like Windows Embedded Compact, Linux, etc supports effective power management to greater extent compared to RTOSes.
Comparison between some of the well-known Operating Systems
Let’s see how some of the well-known embedded operating systems scores on the OS parameters we have discussed so far.
|Parameters / OS||Windows Embedded Compact||Linux||Android||RTOS|
|Relative Score (1-Low, 4-High)|
|Graphical User Interface look and Feel||4||2||3||1|
|Speediness of Time to Market||3||3||2||1|