System i: Programming i5/OS PASE - IBM
System i: Programming i5/OS PASE - IBM
System i: Programming i5/OS PASE - IBM
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Related concepts<br />
“<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> shells and utilities” on page 56<br />
<strong>i5</strong>/<strong>OS</strong> Portable Application Solutions Environment (<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong>) includes three shells (Korn, Bourne, and<br />
C shell) and provides many utilities that run as <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> programs. <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> shells and utilities<br />
provide an extensible scripting environment that includes a large number of industry-standard and<br />
defacto-standard commands.<br />
Related reference<br />
“Compiling your AIX source” on page 9<br />
You can install one of the AIX compiler products that support installation in <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> to compile your<br />
programs in the <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> environment.<br />
<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> as a useful option for application development<br />
<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> provides considerable flexibility when you are deciding how to port your AIX applications<br />
to your system. <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> is only one of several options you can use to port AIX applications. In<br />
addition, under some circumstances, <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> is not the best solution.<br />
API analysis<br />
Your starting point for determining whether an application is suitable for <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> is an analysis of<br />
the application: the APIs, libraries, and utilities that the application uses and how effectively the<br />
application will run on the <strong>i5</strong>/<strong>OS</strong> operating system. For more information about how code analysis fits<br />
into the procedures for porting applications to <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong>, see “Preparing programs to run in <strong>i5</strong>/<strong>OS</strong><br />
<strong>PASE</strong>” on page 8.<br />
Characteristics of a potential <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> application<br />
Here are some useful guidelines that you might consider when making the decision whether to use<br />
<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong>:<br />
v Is the AIX application a highly computation-intensive application?<br />
<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> provides a good environment for running computation-intensive applications on the<br />
<strong>i5</strong>/<strong>OS</strong> operating system by providing highly optimized math libraries.<br />
v Does the application rely heavily on functions that are supported only in <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> (or only<br />
partially supported in ILE), such as fork(), X Window <strong>System</strong>, or pseudo-terminal (PTY) support?<br />
<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> provides support for the fork() and exec() functions, which do not currently exist on the<br />
<strong>i5</strong>/<strong>OS</strong> operating system (except through the spawn() function, which incorporates the fork() function<br />
with the exec() function).<br />
v Does the application use a complicated AIX system-based build process or testing environment?<br />
<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> lets you use AIX system-based build processes, which are especially useful when you have<br />
an existing, complicated process that is not readily transferred onto a new operating system.<br />
v Does the application have dependencies on an ASCII character set?<br />
<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> provides good support for applications with these needs.<br />
v Does the application do a lot of pointer manipulation, or does it convert (cast) integers to pointers?<br />
<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> supports both 32- and 64-bit AIX addressing models with low performance cost and the<br />
ability to convert integers to pointers.<br />
When <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> might not be the best solution<br />
<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> is generally not a good choice for code that provides a large number of callable interfaces<br />
that must be called from ILE and that has any of the following characteristics:<br />
v Code that needs higher performance call and return than provided by either starting or ending <strong>i5</strong>/<strong>OS</strong><br />
<strong>PASE</strong> on each call or by calling an <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> procedure in an already-active <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> program<br />
(using the Qp2CallPase API).<br />
<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> 5