Approach for STARS Reuse Library Operating System Interface (OSI). The STARS Reuse Library operating system interface package specifications are modeled after POSIX. Most of the operations supported by our Interface are derived from the IEEE Draft Ada Binding to POSIX with a small amount of changes. Our goal was to define the operations in a way they could be implemented not only in AIX but in other environments such as VMS. The decision to model our operating system interface after POSIX was taken because POSIX is the only and strongest standard of operating system interfaces. Also, AIX is POSIX compliant. The STARS Reuse Library Operating System Interface packages are: o OSI_Standard This package defines some constants used by the OSI packages and a portable filename character set with associated routines. o OSI_Exceptions This package exports all the exceptions used by the OSI packages. o OSI_Processes This package defines interfaces for executing and passing parameters to processes and reading process attributes. o OSI_Files This package defines interfaces to manipulate regular and directory files in the host file system. The main differences between our Interface and POSIX are listed below: Program Execution: To execute a program with the POSIX Ada Bindings, calls to two different routines need to be made. First, a call to Start_Process is made to start the execution of the program. Then, a call is made to Wait_For_Child to wait until the process terminates its execution. Our Interface defines a single entry point for executing a program. Control is not returned to the caller, until the execution of the new process is terminated. The routine receives two parameters, the file name of the program to be executed and a string containing the new process parameters. The decision to define a single entry point to execute a process is made since we don't allow for concurrent execution of multiple processes. This makes the implementation simpler. File Names: The POSIX Ada Bindings represents a filename as an array of POSIX_Character. POSIX_Character is a set of characters which include the letters 'a' .. 'z' and 'A'..'Z', the digits '0'..'9', the characters '.' (dot), '_' (underscore), and '-' (hyphen), and any other implementation defined character. Our approach was similar to the POSIX Ada Bindings approach. We define our own OSI_Character and OSI_String types. Currently, OSI_Character is a derived type from the predefined Ada Standard.Character and OSI_String is an unconstrained array of OSI_Character. Packaging: The POSIX Ada Bindings define several number of packages. Our interface defines only four different packages and a single package may contain routines that are defined in different packages in the POSIX Ada Bindings. This is the result of implementing only a small number of the POSIX Ada Bindings operations. Host File Names: Our interface defines a routine which given a file name it will return the host operating system name for that particular file. This file name can be used by the Ada predefined IO packages to perform IO on the files. This routine is needed since we don't implement our own POSIX Ada Bindings IO packages and the user has to rely on the Ada predefined packages to do File IO. Copy Files: Our interface defines a routine to copy files. This operation is one of the current requirements of the STARS Reuse Library. This routine is needed since we don't implement our own POSIX Ada Bindings IO packages.