18.08.2013 Views

System i: Programming i5/OS PASE - IBM

System i: Programming i5/OS PASE - IBM

System i: Programming i5/OS PASE - IBM

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!