Porting Central
Skip to main content

Porting Central

Industry standard UNIX support

What UNIX-defined functions does OS/400 provide?

The iSeries system has two program models that present UNIX-defined functions for applications: the Integrated Language Environment (ILE) and the Portable Application Solutions Environment (OS/400 PASE). Here is a quick tabular comparison of these two environments.

The UNIX-type function provided by the OS/400 PASE environment is described in the OS/400 PASE overview. For the ILE environment, OS/400 provides the following UNIX-defined function:

  • POSIX file I/O permits byte stream file access through QOpenSys, which is part of the Integrated File System (IFS).
  • Process Management allows a process (or job) to easily start and end multiple processes. There is a parent-child relationship between the processes.
  • Threads are technique for concurrent programming that allows multiple flows of execution within a process.
  • Signals allow a process to be notified that some event has occurred in the system.
  • Semaphores are a synchronizing primitive that control access to a shared resource.
  • Shared Memory allows multiple processes to communicate with each other by sharing parts of their memory space.
  • Message Queues provide a form of asynchronous message passing in which any process can read or write a message to any message queue on the system.
  • The TCP/IP stack, integrated in OS/400, uses sockets and provides performance that is comparable with IBM's SNA protocol stack.
  • Sockets are based on and compatible with BSD 4.3 sockets.
  • Network File System (NFS) is a protocol used to transparently share file data in UNIX-based client server computing environments. The iSeries may be either an NFS client or an NFS server.
  • Transport Independent Remote Procedure Call (TI-RPC) was developed by Sun Microsystems and is used to easily separate and distribute a client application from a server mechanism.
  • Qshell Interpreter (qsh) is a standard command interpreter and Qshell Utilities provides standard commands for OS/400. Both are based on the POSIX 1003.2 standard and X/Open CAE Specification for Shell and Utilities.
  • Environment Variables are character strings of the form "name=value" that are stored in an environment space outside the scope of the program.

What UNIX-type industry standards are implemented on iSeries and what are the plans for implementation of additional standards?

The strategy for implementing UNIX-type APIs in OS/400 is based on providing those which are of most value for most commercial business applications. Further development investment on additional APIs will be based on the same strategy. To date, OS/400 has implemented the following language portability standards:

  • ANSI C Standard X3.159, X3J11/90-013 (ILE and PASE)
  • ANSI COBOL/ISO X3.23 (ILE)
  • ANSI ISO/IEC 14882-1998 C++ standard (ILE and PASE)
  • Fortran Runtime in OS/400 PASE

The iSeries ILE environment is designed to meet the following portability standards. OS/400 PASE provides a superset that works with ASCII and 32-bit AIX pointers.

  • IEEE POSIX 1003.1, ISO/IEC 9945-1
  • POSIX 1003.2
  • POSIX 1003.4a (1003.1c)
  • POSIX 1003.4b (1003.1d)
  • Single UNIX Specification (UNIX 95 Brand)