Open Standards in the technology industry refer to publicly available specifications that can allow disparate technologies to communicate and interoperate with each other. Open Standards also allow innovation in implementation within proprietary products, while preventing vendor lock-in. The “Standards” in Open Standards ensure that there are clear specifications that define the interoperability of the technology element. The “Open”-ness in Open Standards ensures that key industry vendors can collaborate in a neutral consortium to define the specifications that allow for interoperability.
Specifically, the embedded industry is now characterized by multiple industry players, highly specialized technology and unique systems that are purpose-built for specific applications, utilizing embedded operating system & virtualization technologies. Over the last several decades the embedded industry has been active in the development of Open Standards, which has allowed the embedded software ecosystem to thrive. This blog highlights the most relevant Open Standards in the embedded software arena.
The ability of an Operating System to conform to established Open Standards APIs (Application Programming Interfaces) is a key enabler for a critical mass of middleware and applications executing in its environment. It allows application portability among execution environments, thereby allowing end-users the maximum flexibility in creating application software that can be migrated to newer environments with minimal efforts.
One of the best-known and most widely adopted API standards in the embedded and server infrastructure, that has withstood the test of time, is the IEEE POSIX standard. POSIX, an acronym for Portable Operating System Interface, is a family of related standards governed by the Institute of Electrical and Electronics Engineers (IEEE) and maintained and evangelized by The Open Group. POSIX defines the application programming interface (API) for software compatibility with the different flavors of Operating Systems. First released 25 years ago, POSIX defines the specifications for the characteristics of operating systems, database management systems, data interchange, programming interface, networking and user interface. POSIX enables developers to write their applications for one target environment, which can subsequently be ported to run on a variety of operating systems that support the POSIX APIs (a term commonly referred in the industry as “source code compatibility”).
The LynxOS hard real-time OS has been a pioneer in the support of POSIX APIs and was the first hard real-time OS to achieve POSIX conformance.
The FACE Consortium is hosted and managed by The Open Group and provides a vendor-neutral forum for industry and the U.S. government to work together to develop and consolidate the open standards, best practices, guidance documents and business models. The FACE Technical Standard defines the framework for creating a common operating environment to support applications across multiple Department of Defense avionics systems. The standard is designed to enhance the U.S. military aviation community’s ability to address issues of limited software reuse and accelerate and enhance war fighter capabilities, as well as enabling the community to take advantage of new technologies more rapidly and affordably. The current FACE APIs are heavily based on the existing POSIX® standard and define several profiles such as the Security Profile, Safety Profile (Basic & Extended) and the General Purpose profile.
The LynxOS-178 real-time operating system fully supports the Safety Basic, Safety Extended and Security profiles.
The ARINC (Aeronautical Radio Inc), among other things, is an organization that creates and promotes standards for commercial avionics industry. One of the committees within the ARINC organization is the AEEC (Airlines Electronic Engineering Committee), who is primarily responsible for creation of the ARINC Standards. Among the standards created by AEEC, the ARINC 653 standard defines the standard Real Time Operating System (RTOS) interface for partitioning of computer resources in the time and space domains. The standard also specifies the APEX Application Program Interfaces (APIs) for abstraction of the application from the underlying hardware and software. The APEX APIs allow commercial avionics applications to be freely portable between different operating environments that support the ARINC 653 standard.
The LynxOS-178 real-time operating system fully supports the ARINC 653 standard.
The Eclipse open source community was started in 2001 when IBM released the Eclipse Integrated Development Environment (IDE) as an open source development framework for Java and other languages. The Eclipse IDE framework provides an excellent platform for development environment interoperability while providing vendors an extensible mechanism through which proprietary plug-ins can be added to the Eclipse IDE. Starting from a single project, the Eclipse foundation has now expanded to over a 100 projects ranging from development tools, modeling tools, web tools and IoT protocols.
More information about the Eclipse projects can be found here https://projects.eclipse.org/list-of-projects. The Luminosity IDE from Lynx Software Technologies utilizes the Eclipse IDE as a framework and extends it through proprietary plugins.
The Virtual I/O (VIRTIO) specification is a newer standard that provides the definition of a virtual device found in virtualization environments, that mirrors a physical device by design. This allows the guest operating systems that run inside the virtual environment to create standard device drivers that address these virtual devices to achieve network, storage or console capabilities within a virtualized environment. The VIRTIO specification is intended to create a standard interface between the hypervisor that allows multiple virtual guest operating systems to run, and the guest operating system device drivers that address these devices. The creation of a standardized definition for a virtual device allows multiple heterogeneous operating systems to seamlessly provide device connectivity in virtual environments. The VIRTIO 1.0 specification is currently out for public comment and is expected to be ratified soon. For more info see http://docs.oasis-open.org/virtio/virtio/v1.0/csprd01/virtio-v1.0-csprd01.html.
The VIRTIO specification is being created through the OASIS organization. https://www.oasis-open.org/
These are a few of the many Open Standards that allow embedded software portability among different execution environments, thereby allowing end-users the maximum flexibility in creating software that can be migrated to newer environments with minimal effort. As the complexity of hardware & software continues to increase, the ability to preserve the software investment provides significant advantages for embedded developers.