The future of Linux in embedded and IoT systems
Except for the most demanding real time and determinisitc applications, the Linux operating system is now a mainstream embedded OS. But for how long? To get a sense of how mainstream, one only need look at how much focus it received at the recent Embedded Systems Conference at the 2014 EE Live!
In addition to special set of certification classes targeted at designing with the most popular Linux distribution, Google's Android, there were many other popular classes on Linux, covering topics such as customizing Linux with Yocto, fast booting Linux, partitioning Linux and Android, Linux debugging techniques, and 'Why mainline Linux makes business cents." If you attended the conference, download the materials used for these courses. If not, find a coworker who did attend and get him or her to give you a copy. They are important to read if you wish to understand both the weaknesses and strengths of Linux.
If you still have any doubts that Linux has gone mainline in embedded systems, check out this week's Tech Focus Newsletter, which includes some recent examples of application environments where Linux has been used: backbone network routers , wireless femtocell base stations, robotics, vehicle navigation , stereo vision , Autosar in vehicles , and automotive infotainment . In addition to the ongoing Open Mke blog on Linux by Michael Eager, among the recent articles about the open source monolithic OS on my Editor's Top Picks list are:
But how long will this last? As has been pointed out by Jack Ganssle in such Break Point blogs as "Linux wins - or does it?" and "Wither Linux," the large size of Linux's monolithic kernel rules it out in most 8- and 16-bit microcontroller designs. And even though 32-bit MCUs such as the Cortex M have displaced many 8- and 16-bit devices in some traditional embedded designs, he points out that ARM's chosen IoT vehicle cannot itself easily accommodate the Linux OS and its monolithic kernel..
In the Internet of Things, resource constraints will likely be even tighter. Even now many M2M and wireless sensor IoT designs have opted for the use of a number of smaller alternatives, some proprietary and some open source. They range from commercial RTOSes such as Micrium's MicroC/OS-II, Express Logic's ThreadX, Mentor Graphics' Nucleus, Green Hills' u-velOSity, and now Wind River's microkernel-based companion to VxWorks, as well as a number of other alternatives such as FreeRTOS, Unison, eCos, Contiki, RIOT, TinyOS, LiteOS, and the OSEK-driven ERIKA.
Compared to many of these light-weight OSes targeting the Internet of Things, Linux has the advantage of being more developer-friendly, with numerous available system libraries, network protocols or algorithms, and allowing developers to write code in standard C or C++. But while it is modular in nature and is easy to slim down by removing utility programs, tools, and other system services that are not needed in the targeted embedded environment, it is with few exceptions simply not small enough for the strict and demanding requirements of the IoT, even on a 32-bit platform such as a Cortex-M.
What has been your experience in using Linux and some of the more light-weight OS alternatives in microcontroller-based wireless sensor and M2M-based IoT designs? Linux, now well established in embedded designs, is certainly not going away. The question is, can it be adapted to these new requirements, and if not, what are the alternatives? I would like to hear from you here or in the form of blogs and design contributions based on your experiences.
Embedded.com Site Editor Bernard Cole is also editor of the twice-a-week Embedded.com newsletters as well as a partner in the TechRite Associates editorial services consultancy. He welcomes your feedback. Send an email to email@example.com, or call 928-525-9087.