Should you choose Linux or Windows for your next embedded project?
Before you begin an embedded project, you have a number of choices to make. Some of these decisions about hardware will be no-brainers based on the target device or the specific purpose of the embedded system. However, deciding on an operating system isn’t always so clear cut. Assuming your development team is comfortable working with both Linux and MS Windows, you should closely examine the pros and cons of each OS to see which one will provide the most value for your project.
It’s been a wild ride for these competitors
There have been some pretty steep fluctuations since 2002. That year, proprietary in-house systems led the way in embedded development for current projects. Windows Embedded came in second and Linux a distant third. Respondents said they were most likely to use Windows for future projects with Linux a close second.
Roll the clock forward to 2007, and almost 50% of respondents said they had used Linux for embedded projects. Windows Embedded outpaced in-house operating systems but lagged far behind Linux at about 13% usage. Once developers actually started using the Windows and Linux operating systems rather than proprietary in-house systems, they started migrating strongly toward Linux.
Is “free” the difference?
As open source software that is readily available in free versions, Linux has the most obvious advantage of low price (although the TCO may vary depending on how many specialty pieces you need). With the constant pressure to make IT projects leaner, that’s a huge incentive for businesses to choose Linux. But it would be an oversimplification to say that this is the only decision driver.
In the 2007 Linux for Devices survey, 2 out of 3 respondents actually said they would be willing to pay for development and support services from Linux vendors. 22% reported that they had purchased commercial Linux products rather than using free versions. Finally, businesses are more likely than ever to have their legal advisors perform due diligence to avoid potential legal pitfalls associated with the use of open source software. So, IT firms are using Linux even when it’s not viewed as a no-cost or ultra-low cost option.
Many heads are better than one
As operating systems for embedded technology development become more and more complex, Embedded Linux has a distinct lead when it comes to trouble shooting. With the collaborative culture that open source products support, many common issues have already been addressed and the “fixes” shared with the community at large. In contrast, with Windows products, the steps a development team at an OEM takes to fix a problem when they are building an embedded solution may not be made readily available to other users.
The other major perk of using Linux is that competition among support & development vendors remains healthy. There are several big names (and dozens of smaller players); but no one company has cornered this market. Because there are few aspects of Linux that are considered proprietary to one vendor, making the switch to a new provider becomes a real possibility rather than an empty threat. Greater choice almost always translates into more negotiating power for customers.
This is where the claims made by supporters of each system get kind of murky. Some say that only Windows CE can offer real-time capabilities. Others note that Linux can do the same thing (or at least approximate real-time performance) with the right patches.
Security is a major concern with today’s embedded systems. The U.S. military uses Linux embedded technology – with custom modifications – for many different mission critical applications. MS Windows embedded is trusted by various financial institutions for devices that handle monetary transactions. Your mileage may vary.
Tools & talent – Two halves of the equation
If you are new to the field of embedded development, there’s something to be said for keeping your project as straightforward as possible. Windows has a reputation for providing simpler build tools than Linux when it comes to embedded tech. It also has a more integrated approach compared to the patchwork of solutions available in open source.
So, if you’re looking for a system that’s designed for entry-level development and you need to get up and running fast, Windows might be the better option. The company offers quick and affordable training courses on how to use its products (so you’ll get hooked). Just don’t expect to learn how things work below the surface with Windows CE. MS won’t give you all the source code for their embedded solution (although they do provide a lot), but they will often fix a problem for you instead. In some cases, you may need to hire a third party for any tinkering at the deeper levels of the OS because of its notorious complexity.
Don’t want to get tied into a vendor/customer relationship with Microsoft? Consider adding an experienced Linux developer to your staff to get your team up to speed with how to use Linux properly instead. The open source approach will end up giving you access to a much larger library of free applications, drivers, and kernel extensions in the long run.
Either way, talent development is a major factor to consider when you start budgeting for an embedded project. Even more than individual software solutions, embedded system knowledge that your team will be able to use again and again in future projects is worth the investment.