Content area
Full Text
Every RTOS has its own proprietary API, but some also support the POSIX standards, Here's a look at the parts of POSIX that apply to real-time systems.
In today's computing systems, it is becoming increasingly important to design software with an open system architecture utilizing industry-adopted standards. The need to develop open systems is driven by three major factors. First, gone are the days when a single developer could implement the entire system from scratch. Software development programs are growing in scale, requiring teams of increasing size. Second, software does not operate in isolation; it must co-exist with the vast amount of commercially available software. Last, the lifecycle of a software application is typically long, requiring numerous modifications and updates as new features are added.
An open software architecture addresses the challenges of today's software development process by defining standard software interfaces, which promote interoperability and portability. Openly published standard interfaces also reduce the cost of adding functionality in the future.
Standards are pervasive in today's computer systems. New standards are constantly being defined to address the ever-changing state of software technology. A standard will not be effective if it is not used, or if it is gone tomorrow. To be effective, a standard must be based on well-established technology and accepted by a wide portion of the industry.
The original Portable Operating System Interface for Computing Environments (POSIX) standard was first published in 1990.1 POSIX is based on UNIX, a well-established technology dating back to the early 1970s. POSIX defines a standard way for an application to interface to the operating system. The original POSIX standard defines interfaces to core functions such as file operations, process management, signals, and devices. Subsequent releases of POSIX have also been defined to cover realtime extensions and multi-threading.1
In a perfect world, because of the previously cited advantages, one would always choose a standard. However, in the real world, a number of questions must be answered before deciding to use a standard. These include:
Does the standard provide the functionality that my application needs?
Is the performance of the standard, or implementation of the standard, suitable for my application?
Do commercially available implementations of the standard exist?
In this article I will discuss the usefulness of...