Choosing an embedded OS (or not)
Whether to use an OS (Operating System) such as Linux, and which to use, when developing a new product, will be influenced by a number of factors, including:
How complex is the problem?
If there are lots of sub problems to solve then an operating system is preferable, since it allows us to manage multiple processes cooperatively
What are the available resources on the target system?
If memory resources such as RAM or Flash memory is very limited then directly compiled software is preferable. For example Linux typically requires 1MB – 4MB of memory just for the kernel, before the main software is added.
What is the target hardware cost?
Hardware costs can be minimised by use of a PIC microcontroller with minimal memory. Then the code will be compiled to run directly on the target without an o/s
Is the code likely to be used on future products?
If an operating system is used, then the upgrade is likely to be a matter of weeks, not months.
Is the product expected to be upgraded and enhanced?
Adding product features is easier with an operating system
How critical is the development time?
With an operating system, development and much testing can be done before the hardware target is available by use of virtual machines.
How critical is the speed of operation?
If product speed is important then software running directly on the target will run quicker than it will if sitting on an o/s.
Does the client have any specific requirements?
The client may have other reasons for using an operating system; for example compatibility with previous or future products.
In each case, really understanding the client’s requirements and future plans is a key part of the decision making process, something we take extra care to do. If you are looking to develop a product requiring embedded software, then do talk to our system experts for advice.