Operating system for Embedded Edge

Operating system for Embedded Edge

Selecting the operating system for embedded edge computing

This is so wide topic that most likely you would need to write an book to cover this issue. Let's try to cover some aspects of this topic with additional reading from links.

Today there are quite few possibilities selecting software for embedded computing. The obvious candidate is Linux which is open source. There are others as well like Microsoft Windows 10 IoT, Azure RTOS, Apple iOS, Android, Android Things, VxWorks, FreeRtos, Integrity, Windriver, QNX and many more. Most of the different OS builds are based on Linux kernel and are customized variants of Linux. The most popular operating system (OS) in world is Android (which is as well Linux based) because it is widely used in mobile phone devices. Linux and it’s variants have become the most popular operating system data centers, routers and internet devices. Microsoft Windows is dominating the PC -market and is most used in corporations. Market share does not define the which OS should be used in embedded Edge computer.

Here is good detailed article about things to consider when selecting embedded OS by Risto Avila QT

Hardware and software are dependent

Most of the HW -manufacturers are supporting and Yocto Linux or buidlroot as the base support line for HW (Hardware). You can as well use some Windows 10 IoT is as well supported by leading x86 manufacturers like Intel and AMD. Thinking what your goal is always helpful and gives good basis for decision. What kind of device you are building? is it very simple device with very limited functionality or is its full-blown computer with high scale computing capabilities. What kind of HW -budget you have and what are the available resources What kind of ecosystem & API’s it is offering for your application? Or maybe you need to have real time capabilities. But maybe the most important questions are: what is your time to market, and do you want to maintain the operating system yourself?

What is Yocto project?

Open-source software considerations

Many embedded developers prefer Linux as it is open source and therefore considered to be free as well. But this is only partial true as there are costs involved in maintenance & development of the operating system. Many companies are constraint with resources, and they are tiding lot of resource for development & upkeep of the operating system. You might end up having your own distribution of Linux and maybe maintaining it and some cases need to contribute to mainline Linux as well. This can easily draw your limited resources and tie up resources and slow down your application development. As we are more and more in IoT world the upkeep security batching is vital part of maintaining the operating system. It is wise to give a thought or two and discuss if it makes sense to do this.

What is open source?

Make or buy your software?

The other option is to buy operating system from some of the Linux houses or Microsoft. I do not consider Apple iOS as embedded OS as it is not open source and not really supported outside of Apple ecosystem. Linux distributions you can buy example from Canonical, Red hat or Suse who all have their flavor of distributions and support models. Basically, you are paying license fee for support & maintenance of the Linux distribution. Same kind of model is Windows 10 IoT where you pay a license fee and will get the maintained and supported OS for 10+ years. Top of that you have lot of more narrow target OS providers who are example focusing on like real time. Conclusion is that regardless how you do there is a cost involved and you should consider the total cost of ownership before any selection.

Good thoughts regarding make or buy?

What challenges there are for future software?

Virtualization and cloud native software as well have stepped into picture for edge computers as well. Most embedded applications are quite deeply connected to the used hardware platform. I think that in future we will see more embedded applications as well running cloud based and maybe in containers. The more specialized workload for AI, ML etc. is driving heterogenous computing where you could write your code without considering the hardware under the hood. It is quite ineffective and hard to write code for all different type of computing power available. There are CPU, GPU, Fpga, specific AI accelerators and various new workloads where there is specific coding needed. For this kind of problem there are solutions available example oneAPI which is offering a common API for all workloads. This enables you to write one software and utilize all workloads available. World is evolving and getting more complex but selecting the right software and frameworks it is easier to make future proof products.

Accelerate all workloads with oneAPI

Tiitus Aho

| Tria | Sales Director | Management | OEM | Strategy | Key Account Management | Technology | Leadership | Innovation | P & L | Growth | B2B | Business | Coaching |

2 年

Good article just appeared about challenges in embedded software in todays HW architecture: https://semiengineering.com/big-changes-in-embedded-software/

要查看或添加评论,请登录

社区洞察