Not long ago, I was telling a friend about an iPad app that I had found useful. I commented that it was very reasonably priced at $10. They were very proud to tell me that they never pay for apps on their phone or tablet and only use free ones. I am always suspicious of the word “free”. I am a firm believer in the TANSTAAFL [There Ain’t No Such Things As A Free Lunch] principle – everything has a price, which may be monetary or something else.
I started pondering about how TANSTAAFL applies in the world of embedded software …
In the case of “free” apps, like software of any kind, there must be some source of funding, as software takes time [=money] to develop. Many such apps constantly nag you to upgrade to the paid-for version. In this case the “cost” is the aggravation of the nagging. Other apps include advertisements, which are not only annoying and distracting, but they are commonly updated by performing a data download. So the costs are annoyance and network bandwidth.
A common type of “free” software in the world of embedded systems are operating systems – RTOS and otherwise. There are quite a few products around that claim you can just download the code and build your application – all for free. Here the TANSTAAFL principle applies in various ways:
Limited Functionality – Many RTOS products [including our own Nucleus RTOS] are available in a limited form for evaluation purposes. This is a perfectly legitimate way for a potential user to assess the functionality, facilities and performance of an RTOS prior to making a purchase.
Deployment – An initial challenge with any embedded OS is getting it to work on new hardware. A commercial product is likely to have support tools and/or services to make this job less painful. With a “free” product, it is likely to be down to the user to figure out. The “cost” here is time.
Support – Ongoing support for a “free” OS is likely to be via online forums etc., where finding answers to problems is somewhat uncertain and time consuming. The cost here is time. It may be possible to purchase a support package from a commercial supplier, then the cost is money.
Open Source Implications – Many people equate “open source” with “free”. This stance needs great care, because, even though the code can be obtain at no cost, support may need to be bought. The cost here is money. There are also legal implications of open source licensing. Typically this can require that any code directly linked to the open source OS must itself be declared open source. It is very unlikely that the embedded software developer will want to make their code visible to the world. This can be avoided by a careful build of the application to avoid such direct linking. There are tools available to audit the code and specialist lawyers who can advise. The costs here are time and money – buying tools and paying legal fees.
Usage Declaration – There is at least one “free” OS available, where the license specifies that the end users of the device, in which the OS is deployed, are clearly advised of its presence. This does not sound like a problem, except the logistics of distributing this information might be costly. This reminded me of an idea that I had some years ago. I suggested that we could promote Nucleus using a sticker saying “Nucleus Inside” [inspired by Intel’s similar stickers]. A little research revealed the fact that many device manufacturers would not want to announce to the world which OS they are using. One concern was that it might give a competitor an advantage. Another worry was from feature phone manufacturers, who felt that the use would be confused if they were told there was an OS inside their non-smart phone.
So, the bottom line is: There ain’t no such thing as a free operating system.