178 lines
11 KiB
HTML
178 lines
11 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html
|
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html lang="en-us" xml:lang="en-us">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="security" content="public" />
|
|
<meta name="Robots" content="index,follow" />
|
|
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
|
|
<meta name="DC.Type" content="concept" />
|
|
<meta name="DC.Title" content="Plan for i5/OS PASE" />
|
|
<meta name="abstract" content="When you begin to work with i5/OS PASE, the points listed in this topic might be helpful to you." />
|
|
<meta name="description" content="When you begin to work with i5/OS PASE, the points listed in this topic might be helpful to you." />
|
|
<meta name="DC.Relation" scheme="URI" content="rzalfintro.htm" />
|
|
<meta name="DC.Relation" scheme="URI" content="rzalfanalysistool.htm" />
|
|
<meta name="copyright" content="(C) Copyright IBM Corporation 2000, 2006" />
|
|
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2000, 2006" />
|
|
<meta name="DC.Format" content="XHTML" />
|
|
<meta name="DC.Identifier" content="rzalfplanning" />
|
|
<meta name="DC.Language" content="en-us" />
|
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
|
<!-- US Government Users Restricted Rights -->
|
|
<!-- Use, duplication or disclosure restricted by -->
|
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
|
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
|
|
<link rel="stylesheet" type="text/css" href="./ic.css" />
|
|
<title>Plan for i5/OS PASE</title>
|
|
</head>
|
|
<body id="rzalfplanning"><a name="rzalfplanning"><!-- --></a>
|
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
|
<h1 class="topictitle1">Plan for <span class="keyword">i5/OS</span> PASE</h1>
|
|
<div><p>When you begin to work with <span class="keyword">i5/OS™</span> PASE,
|
|
the points listed in this topic might be helpful to you.</p>
|
|
<p><span class="keyword">i5/OS</span> PASE provides
|
|
an AIX<sup>®</sup> runtime
|
|
environment on <span class="keyword">i5/OS</span> that
|
|
lets you port your AIX applications to the iSeries™ server with minimal effort. In
|
|
fact, many AIX programs
|
|
run in <span class="keyword">i5/OS</span> PASE with
|
|
no change. This is because <span class="keyword">i5/OS</span> PASE
|
|
supplies many of the same shared libraries that are available on AIX, and it provides
|
|
a broad subset of AIX utilities that run directly on the iSeries PowerPC<sup>®</sup> processor
|
|
in the same way that they run on the pSeries<sup>®</sup> AIX PowerPC processor.</p>
|
|
<p>Some points to keep in mind as you begin to work with <span class="keyword">i5/OS</span> PASE:</p>
|
|
<ul><li><strong>There is a correlation between the target release
|
|
of an AIX binary
|
|
and the release of <span class="keyword">i5/OS</span> PASE
|
|
where the binary will run.</strong> <p>If you compile your <span class="keyword">i5/OS</span> PASE applications on AIX, the application
|
|
binary created on AIX needs to be compatible with the version of <span class="keyword">i5/OS</span> PASE that you want the application
|
|
to run in. The following table shows which AIX binary versions are compatible with
|
|
different versions of <span class="keyword">i5/OS</span> PASE.
|
|
For example, a 32-bit application created for AIX release 5.1 will run on <span class="keyword">i5/OS</span> PASE
|
|
V5R4, V5R3, or OS/400<sup>®</sup> PASE
|
|
V5R2, but not on OS/400 PASE V5R1. Similarly, a 64-bit application
|
|
created for AIX release
|
|
4.3 will run on OS/400 PASE
|
|
V5R1, but not on <span class="keyword">i5/OS</span> PASE
|
|
V5R4, V5R3, or OS/400 PASE
|
|
V5R2.</p>
|
|
|
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><thead align="left"><tr><th valign="top" width="28.78787878787879%" id="d0e149">AIX release</th>
|
|
<th valign="top" width="16.666666666666664%" id="d0e153">OS/400 V5R1</th>
|
|
<th valign="top" width="18.181818181818183%" id="d0e157">OS/400 V5R2</th>
|
|
<th valign="top" width="18.181818181818183%" id="d0e161"><span class="keyword">i5/OS</span> V5R3</th>
|
|
<th valign="top" width="18.181818181818183%" id="d0e166"><span class="keyword">i5/OS</span> V5R4</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody><tr><td valign="top" width="28.78787878787879%" headers="d0e149 ">4.3 (32-bit)</td>
|
|
<td valign="top" width="16.666666666666664%" headers="d0e153 ">X</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e157 ">X</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e161 ">X</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e166 ">X</td>
|
|
</tr>
|
|
<tr><td valign="top" width="28.78787878787879%" headers="d0e149 ">4.3 (64-bit)</td>
|
|
<td valign="top" width="16.666666666666664%" headers="d0e153 ">X</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e157 ">-</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e161 ">-</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e166 ">-</td>
|
|
</tr>
|
|
<tr><td valign="top" width="28.78787878787879%" headers="d0e149 ">5.1 (32- or 64-bit)</td>
|
|
<td valign="top" width="16.666666666666664%" headers="d0e153 ">-</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e157 ">X</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e161 ">X</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e166 ">X</td>
|
|
</tr>
|
|
<tr><td valign="top" width="28.78787878787879%" headers="d0e149 ">5.2 (32- or 64-bit)</td>
|
|
<td valign="top" width="16.666666666666664%" headers="d0e153 ">-</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e157 ">-</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e161 ">X</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e166 ">X</td>
|
|
</tr>
|
|
<tr><td valign="top" width="28.78787878787879%" headers="d0e149 ">5.3 (32- or 64-bit)</td>
|
|
<td valign="top" width="16.666666666666664%" headers="d0e153 ">-</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e157 ">-</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e161 ">-</td>
|
|
<td valign="top" width="18.181818181818183%" headers="d0e166 ">X</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</li>
|
|
<li><strong><span class="keyword">i5/OS</span> PASE does
|
|
not provide the AIX kernel
|
|
on <span class="keyword">i5/OS</span>.</strong><p>Instead,
|
|
any low-level system functions that are needed by a shared library are routed
|
|
to the <span class="keyword">i5/OS</span> kernel or
|
|
to the integrated <span class="keyword">i5/OS</span> functions.
|
|
In this regard, <span class="keyword">i5/OS</span> PASE
|
|
bridges the gap across the AIX and <span class="keyword">i5/OS</span> platforms:
|
|
your code uses the same syntax for the APIs in the shared libraries as you
|
|
can find on AIX,
|
|
but your <span class="keyword">i5/OS</span> PASE program
|
|
runs within an <span class="keyword">i5/OS</span> job
|
|
and is managed by <span class="keyword">i5/OS</span> just
|
|
like any other <span class="keyword">i5/OS</span> job.</p>
|
|
</li>
|
|
<li><strong>In most cases, the APIs you call in <span class="keyword">i5/OS</span> PASE
|
|
behave in exactly the same manner as they do on AIX.</strong><p>Some APIs, however, might behave
|
|
differently in <span class="keyword">i5/OS</span> PASE,
|
|
or might not be supported in <span class="keyword">i5/OS</span> PASE.
|
|
Because of this, your plan for preparing <span class="keyword">i5/OS</span> PASE
|
|
programs should begin with a thorough code analysis using the API Analysis
|
|
Tool. This tool gives you a comprehensive summary of the types of program
|
|
modifications you need to consider in porting your AIX application to <span class="keyword">i5/OS</span> PASE.</p>
|
|
</li>
|
|
<li><strong>Consider some of the differences that exist between the AIX and <span class="keyword">i5/OS</span> platforms: </strong><ul><li>AIX is
|
|
generally case-sensitive, but certain <span class="keyword">i5/OS</span> file
|
|
systems are not.</li>
|
|
<li>AIX generally uses ASCII for data encoding, but <span class="keyword">i5/OS</span> generally uses Extended Binary
|
|
Coded Decimal Interchange Code. This will be a consideration if you want to
|
|
manage the details of calling ILE code from your <span class="keyword">i5/OS</span> PASE
|
|
program. For example, you must explicitly code <span class="keyword">i5/OS</span> PASE
|
|
programs to handle character encoding conversions on strings when you make
|
|
calls from <span class="keyword">i5/OS</span> PASE to
|
|
arbitrary ILE procedures. <span class="keyword">i5/OS</span> PASE
|
|
runtime support includes the iconv_open(), iconv(), and iconv_close() functions
|
|
for character encoding conversion. <div class="note"><span class="notetitle">Note:</span> <span class="keyword">i5/OS</span> PASE
|
|
and ILE have independent implementations of iconv() interfaces, each with
|
|
its own translation tables. The translations supported by <span class="keyword">i5/OS</span> PASE
|
|
iconv() support can be modified and extended by users because they are stored
|
|
as byte stream files in the integrated file system.</div>
|
|
</li>
|
|
<li>AIX applications
|
|
expect that lines (for example, in files and shell scripts) will end with
|
|
a line feed (LF), but personal computer (PC) software and <span class="keyword">i5/OS</span> software
|
|
typically end lines with a carriage return and line feed (CRLF).</li>
|
|
<li>Some of the scripts and programs you use on AIX might use
|
|
hardcoded paths to standard utilities, and you might need to modify the path
|
|
to reflect the paths you will be using in <span class="keyword">i5/OS</span> PASE.
|
|
See Analyze your program's compatibility with <span class="keyword">i5/OS</span> PASE
|
|
for more information.</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<p><span class="keyword">i5/OS</span> PASE automatically
|
|
handles some of these issues. For example, when you use the <span class="keyword">i5/OS</span> PASE
|
|
runtime service that the system provides (including any system call or runtime
|
|
function in a shared library shipped with <span class="keyword">i5/OS</span> option
|
|
33), <span class="keyword">i5/OS</span> PASE performs
|
|
ASCII-to-EBCDIC conversions as needed, although generally no conversions are
|
|
done for data that is read or written to a file descriptor (byte stream file
|
|
or socket).</p>
|
|
<p>You can use other low-level functions, such as _ILECALL, to extend the
|
|
functionality of your <span class="keyword">i5/OS</span> PASE
|
|
program with calls to ILE functions and APIs, but as mentioned above you might
|
|
need to handle data conversion. Also, coding these extensions into your program
|
|
requires the use of additional header and export files.</p>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzalfintro.htm" title="IBM i5/OS Portable Application Solutions Environment (i5/OS PASE) allows you to port IBM AIX applications to the IBM iSeries server with minimal effort.">i5/OS PASE</a></div>
|
|
</div>
|
|
<div class="relconcepts"><strong>Related concepts</strong><br />
|
|
<div><a href="rzalfanalysistool.htm" title="The first step in an assessment of the portability of a C application to the iSeries server involves the analysis of the interfaces that are used in your application.">Analyze your program's compatibility with i5/OS PASE</a></div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html> |