Major Project Report
Major Project Report
Major Project Report
forecasters
Executive Overview............................................................................................ 3
Appendix B: The POSIX 1003.13 Standard for Embedded and Realtime .... 20
Copyright 2005 by American Technology International, Inc, 1257 Worcester Road #500,
Framingham, MA 01701. All rights reserved. No part of this book covered by copyright hereon may
be reproduced or copied in any manner whatsoever. Every effort has been made to provide
accurate data. To the best of the editor’s knowledge, data is reliable and complete, but no
warranty is made for this.
Executive Overview
This paper is intended to acquaint the reader with the opportunities that are
manifest by changes in the direction of military, communications, and commercial
initiatives. The POSIX standards are presented along with documented
government and military requirements for POSIX conformant operating systems
and how they will be utilized.
More than a decade has past since the first POSIX (Portable Operating System
Interface) standard was set forth to promote portability of applications across
different OS platforms. The first standard was based on Unix – a robust OS –
and it defined a standard methodology for which applications interfaced with the
operating system.
Since the inception of POSIX in 1990, systems designs have become much more
complex and newer POSIX standards have been defined to incorporate the
characteristics and features of realtime operating systems including realtime
capabilities, interoperability, multi-threading, etc.
The key goals of the current POSIX standard (POSIX 1003.1-2003) are to enable
programs written to the original standard to be interoperable with new systems
applications (legacy continuity) and to ensure that programs written to the new
standard will continue to be supported in the future. Another goal was to unify
and synchronize the different fragmented standards (e.g., POSIX.1a, .1b, etc.).
Such standardization has implications beyond POSIX since a standardized OS
interface that enables higher level abstraction layers such as CORBA can be
implemented across many applications without creating unforeseen or system
incompatibility problems for developers.
This is hugely important for military and avionics programs, having lifetimes
measured in decades, to ensure backward and forward compatibility. Major
military programs across all services are embracing the POSIX standard,
including;
Weapons Systems Common Operating Environment (Army)
Common Integrated Infrastructure (Air Force)
Open Systems Architecture (Navy)
This is a source of confusion because virtually all vendors can claim in their
marketing literature that they are POSIX compliant. This includes all of the major
commercially available operating systems – particularly those used for
telecom/datacom, VME bus applications, and networking.
POSIX compliant vendors have argued that only a minimal set of interfaces and
functionality is required for all POSIX systems and that the majority of
functionality specified under IEEE 1003.1 is not applicable to embedded and
real-time systems. The interfaces singled out are always those that depend on
the use of an MMU and virtual memory, e.g., fork() and exec(). It would be no
surprise that those that most argue the irrelevance of POSIX conformance might
be those who do not support memory protection.
While this may sometimes the case, and it is made by a number of vendors to
support their decision to remain POSIX compliant and not seek conformance
certification, it is EMF’s position that given the need for systems interoperability
between the branches of the military and given the charge to the Department of
Homeland Security for cross departmental communications compatibility, that
POSIX conformance will emerge as a vendor requirement. One must remember
that certification by an independent certifying authority – not in-house testing –
remains the key issue.
These changes, almost all agree, will define the new military and its technological
implementation for at least a decade into the future.
Major military programs, across all services are embracing the POSIX standard,
including (as previously stated);
Looking at the U.S. Navy, for example, consider the findings of a conference
sponsored by the Carnegie-Mellon Software Engineering Institute.
The next generation of Navy ships will have a 30 to 50 year life expectancy. The
Navy discovered that the cost of on board personnel (sailors) is extremely costly
and the expense forecast on current staffing levels would double the cost of the
ship itself. With an all volunteer military there is also the uncertainty of
maintaining staffing levels.
Central to this strategy is the ability to create applicable software that can be
used and upgraded across a large number of installations. The mission can be
summarized:
U.S. Navy released the following Open Architecture statement on POSIX. Capt
Tom Strei, the Navy’s Open Architecture (OA) project lead, recently stated that
one of the primary goals of the OA effort is to reduce the cost of warfare systems
through warfighting software application portability and code re-use. In addition,
the Navy seeks to take more advantage of the commercially driven technology
market place by adopting standards driven by the global community. Systems
built to OA standards based approach will allow more competitors into the
market, allow these competitors to service a larger customer base, and at the
same time provide the basis for the introduction of new and innovative solutions.
The Navy OA project office has adopted IEEE’s Portable Operating System
Interface (POSIX) as a standard for computer operating systems. The POSIX
family of standards specifies application programming interfaces (APIs) at the
source level in order to support source code portability across multiple operating
systems. Additionally, by providing a standard set of APIs in the underlying
operating system, system integrators can choose re-usable components built to
those APIs and have confidence that those components will be supported by the
operating system(s) in their target systems. As industry continues to develop
operating systems that are POSIX conformant (certified), the Navy’s Open
Architecture goals continue to become more realizable. Capt Strei concluded that
“those who take the time to seek third party testing for POSIX conformance, will
be in a much better position to offer their products to defense system integrators
because the integrator’s follow on testing will be far easier knowing that POSIX
conformance has been achieved.”
The following Figure (originally presented in open forum by Dr. Rebecca Callison
of the Boeing Company) illustrates the interdependability and interoperability
requirements of realtime command and communications.
Standardization is the key and two activities are on-going to assure that the SCA
is widely accepted as the programmable radio system definition standard. By
continuing to evolve the SCA with established standards groups, it is planned
The functionality and expandability of the Joint Tactical Radio System is built
upon the Software Communications Architecture (SCA). The SCA is an open
architecture framework that informs and specifies to developers how elements of
hardware and software are to operate in harmony within the JTRS. The SCA
governs the structure and operation of the JTRS, enabling programmable radios
to load waveforms, run applications, and be networked into an integrated system.
The SCA Hardware (HW) Framework provides the developer minimum design
specifications that must be met by hardware devices. These specifications
assure software written to the SCA guidance will run on SCA compliant
hardware. Similar Software specifications are provided for software applications.
The core framework provides an abstraction layer between the waveform
application and JTR sets, enabling application porting to multiple vendor JTR
sets.
POSIX plays a key role in the SCA framework and the JTRS.
If the system was originally constructed in both a modular and scalable manner
the developer can minimize hardware changes thereby make the new hardware
applicable to a wider range of radio applications. The emergence of
reconfigurable FPGAs not only enhances systems upgrades, but many can be
done remotely via a secure connection.
With the steady proliferation of new wireless services and standards, SDR might
revolutionize the commercial cell phone and PDA markets eliminating the need
for single-purpose dedicated special purpose phones which either cannot be
upgraded or are prohibitively expensive to upgrade and maintain. SDR offers the
flexibility and upgradeability necessary to satisfy these user needs.
So we can see both a military (including JTRS initiatives) and commercial benefit
to embedded vendors that seek POSIX 1003 conformance.
The original POSIX standard was based on the Unix operating system – a very
large OS - so it is easy to draw the mistaken conclusion that a POSIX conformant
operating system is too large for embedded applications.
In truth, POSIX is not Unix and the POSIX standards working groups are quite
clear in defining the standards in terms of “interface” rather than
“implementation”.
There has been an erroneous assumption that because Linux is very similar to
Unix that Linux therefore is POSIX conformant. However, Linux is NEITHER
compliant nor conformant.
Real time support is mostly missing from the POSIX thread library
implementation. The system calls to select scheduling parameters are available
but they have no guaranteed effect as large parts of the kernel do not follow the
rules for real time scheduling. There are additional places where the kernel
misses appropriate real time support. For this reason the NPTL [latest version of
the POSIX thread library] does not attempt to support something which cannot be
achieved at the kernel level.
Given Torvald’s power and respect within the Linux community the use of Linux
as a POSIX conformant (or compliant) OS is doubtful.
JTRS SDRs are destined to replace tactical radio systems currently in use by
U.S. armed forces. JTRS technology removes the communications barriers
between the many different types of incompatible radios presently used in
battlefield operations. JTRS radios will eventually replace the military's many
different legacy technologies with a small number of radio designs that share a
common SDR architecture.
"In the U.S. military, at least 750,000 radio network elements are being replaced
with SDR-enabled equipment. SDR devices will allow an operator to
communicate with forces on different frequencies by downloading a protocol in
real time," reports William Fellows, principal analyst for the451, a research firm
that identifies and reports on emerging trends in wireless communications.
It is interesting that the “big boys” forecast the market for such interoperable
systems as being in the $200 billion range. This is consistent with announced
Naval, Army and Air Force directions and initiatives. Boeing, a major contributor
to software interoperability under contract to numerous government agencies
continues to develop alliances within and outside of the embedded RTOS
community to further its pursuit of systems interoperability for military and
commercial deployments.
Wind River Systems’ VxWorks and LynuxWorks’ LynxOS are two of the oldest
truly realtime operating systems found in military systems. Wind River is currently
POSIX compliant (not conformant) whereas LynuxWorks claims LynxOS to be
POSIX.1 conformant. They continue to support the POSIX standard with both
LynuxWorks claims its LynxOS and LynxOS-178 operating systems are POSIX
conformant. While it was true that an old version of LynxOS (3.0.1.1) was certified
to an old version of POSIX (1990), it is not clear whether the current generation
of LynxOS (4.0) has been POSIX certified to the new, 2003 version of the POSIX
standard. Inquiries for clarification made to an executive of the company were not
responded to. It is also not clear if any version of LynxOS-178 has been certified
to any POSIX edition.
LynuxWorks appears to suggest on their web site that their BlueCat Linux product is
POSIX conformant, being “similar” to other robust OSes such as Unix and Solaris.
Linux is not POSIX conformant, notwithstanding the company’s claim that their product
can run thousands of off the shelf applications. Whereas it is true that Linux can be
isolated in a high security EAL7 environment (as is the case when operated with Green
Hills’ INTEGRITY OS) in a secure partition (as can any OS), Linux is neither EAL7
certifiable nor POSIX conformant.
LynuxWorks announced that its LynxOS-178 realtime operating system (RTOS) will
be used by Rockwell Collins as part of the recently awarded contract from the
U.S. Army Aviation Applied Technology Directorate (AATD) for the
Manned/Unmanned Common Architecture Program Phase III (MCAP III). Note
that this is not a Linux product.
MCAP III will develop and demonstrate an avionics architecture for Army unmanned
aircraft that is common to mission processing systems currently under development for
Army helicopters and Future Combat System (FCS) ground vehicles. Rockwell Collins
is developing the common computing and open-systems network architecture with
application to the Army AH-64 Apache helicopter, Unarmed Combat Armed Rotorcraft
(UCAR), Shadow 200, A-160 Hummingbird and Fire Scout. Rockwell Collins will also
deliver mission processor prototypes and perform a laboratory demonstration on the
Shadow 200 platform of several applications including live HDTV video transmission,
'See-and-Avoid' autonomous operation, automatic target cueing, backup automatic
target recognition and passive target ranging.
Wind River Systems declared its commitment to seek POSIX.13 and PSE54
conformance certification. Wind River’s VxWorks General Purpose Platform is
currently POSIX.1 compliant (not conformant). Organizations including Boeing,
Lockheed Martin, Northrop Grumman and the Department of Defense have used
Wind River technology. Wind River recently released VxWorks 6.0, which
includes process model memory protection and significantly enhanced levels of
POSIX compliance. The company states that it is committed to achieving full
conformance with the IEEE 1003.13 POSIX real-time application environment
profile, PSE54.
The 2003 edition of the specification triples the scope of programming interfaces
required for conformance. To become POSIX certified, the QNX Neutrino RTOS
will be tested with more than 1,300 POSIX interfaces. QNX expects that full
certification will be achieved in 2005.
“Of the more than 30 POSIX standards, the most pertinent and most
implemented for embedded and real-time systems are: POSIX 1003a, 1003b and
1003c. We include about 285 of functional API's included in these standards in
our Neutrino POSIX offering,” stated Hutchins.
Note: Although Mentor and QNX speak to POSIX 1a, 1b and 1c, these are no
longer separate standards and have been integrated into the .1 base standard
since 2001.
One thing to note concerning Nucleus POSIX is tools set support. The bulk of the
"Porting" work is involved in supporting and testing against a particular toolset.
They have shipped POSIX support for toolsets: TI, ARM and GNU. Additionally
they have ported to and tested: Metaware, Metrowerks, Hatachi, Paradigm,
Microtec and Visual C.
The POSIX standard also opens up opportunities for RTOS related technologies
to support POSIX compliant and conformant vendors. An example is Aonix, a
leader in Ada and realtime Java. Aonix provides Ada and PERC (Java)
development tools for mission-critical and safety-critical systems according to
Ben Goodwin, chief operating officer. For mission-critical systems that have soft
real-time constraints, their Ada and PERC development tools are used to target
commercial (real-time) operating systems, almost all of which are POSIX
compliant. The POSIX standard makes it much easier for Aonix to support a
variety of Unix-like operating systems in the soft real-time domain. Certainly, the
POSIX standard simplifies the porting effort, but does not eliminate it entirely.
There are still differences between POSIX-compliant solutions from different
vendors, further supporting the idea that POSIX conformance is the more
desirable option. For example, Aonix just completed a port of PERC to LynxOS-
178 under contract to a leading defense/aerospace supplier.
Interestingly, the need for standards conformance increases the potential for
product differentiation rather than commoditizing it. The expressed need for
interoperability vastly increases the sold-available-market (SAM) for embedded
vendors and OEMs due to the vast number of installations that are required to
fulfill the nation’s defense needs. These requirements will be enabled by software
conformant to standards such as POSIX that offers additional capabilities and/or
innovative architectures.
So the potential market is greatly expanded. How then does this enable product
differentiation and market capture?
POSIX standards working groups are quite clear in defining the standards in
terms of “interface” rather than “implementation”. In such, an RTOS vendor can
differentiate their POSIX conformant OS by footprint, power requirements,
memory protection, realtime latency, etc., while remaining conformant to the
standard.
The ticket to the party is clearly certified POSIX conformance. Its importance can
be summarized as follows:
Since most extant POSIX code is written to full POSIX.1, it is much more
valuable than POSIX.13, which only provides for portability between
software written to the same POSIX.13 profile—none of which are
currently supported by any OS.
Embedded RTOS vendors should be careful to read the fine print of .13
before they say that they intend to conform.
POSIX Standards:
This standard is based on Unix. It covers basic interfaces including support for
single process, multi process, job control, signals, user groups, file system and
attributes, file device management, file locking, device specific control, system
database, pipes, FIFO and C language (basis for FIPS 151-1 and FIPS 151-2
Support for multiple threads within a process including thread control, thread
attributes, priority scheduling, mutexes, mutex priority inheritance, mutex priority
ceiling, and conditional variables
Support for new process create semantics, sporadic server scheduling, execution
time monitoring of process and threads, I/O advisory information, time outs on
blocking functions, device and interrupt control
All Profiles are based on POSIX .1 for the development platform (which is likely
to be on a host system for Profiles 51-53). The Realtime profiles can be
summarized as follows:
Process
Single Multi
No 51 53
File System
Yes 52 54
In its December 1991 report prepared for the JTRS, the Modular Software-
Programmable Radio Consortium published the following sections:
3.1.1.1 POSIX.
POSIX.1 and the POSIX.13 profiles serve different purposes from the
perspective of the embedded and real-time markets. POSIX.1 assures
interoperability between different operating systems across embedded, real-time,
and enterprise, e.g., Solaris, HP-UX, etc. POSIX.13 only assures interoperability
between different conformant real-time operating systems, since no general-
purpose OS vendor will ever support all of the functionality mandatory in its
profiles. To date, no RTOS vendor provides complete support for a POSIX.13
profile either.
Services for reliable, available and serviceable (SRASS) that includes support for
logging, core dump control, shutdown/reboot and reconfiguration
#include <pthread.h>
#include <sys/types.h>
#include <unistd.h>
int main() {
pthread_t tid;
uid_t uid;
pthread_create(&tid, NULL, second, NULL);
setuid((uid_t)4141);
uid = getuid();
printf("Thread 1 has uid %x\n",uid);
sleep(2);
exit(0);
}
On a POSIX system, both threads will show that they have the same UID.
However, on a Linux system, only the UID of the main thread is affected by the
setuid() call. Since setuid() is often used to drop super-user privileges and
prevent a security flaw in one program from compromising the entire system, this
is a serious example of non-conformance. A program that had worked securely
on Solaris could allow system files to be overwritten on Linux.