It is imperative for industrial applications to be stable, for both safety and performance reasons. However, applications for industrial components tend to have a long life cycle and see many changes to the underlying platform that can create instability.
For example, one of the major components of the platform is the operating system (OS). The choices surrounding the OS are numerous. You have over 100 different commercial OS vendors to evaluate. You must take into consideration many variables:
- What is the OS functionality?
- Has the OS been certified?
- What is the OS code size?
- How fast is the kernel?
- What is the interrupt latency?
- Are the price and business model right for my project?
As the product matures over its lifecycle, the operating system may need to be changed. Coupling too closely to the OS can lead to dependency on the future of the operating system vendor. As vendors drop support for your hardware platform or prices change, your project could be jeopardized. As the platform changes, application code must be re-written, which can introduce bugs and create the need for more testing.
source
By using an OS abstraction platform, these code changes can be avoided. By acting as a safety zone between your code and the application, the abstraction technology creates a seamless separator from the application code to the operating system, minimizing any application switching or upgrading costs with the operating system. This way, when the underlying OS changes due to technical or business requirements, the application code will remain stable and unchanged.
In addition, many industrial products require two operating systems, one for the front-end user interface and one for the back-end embedded platform. Using an OS abstraction component allows developers to write code using one Interface for both, which reduces the learning curve of the second OS and decreases the overall complexity of the development effort.