ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzalf_5.4.0.1/rzalfplanning.htm

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>