A few weeks ago, Tony Cairns wrote the blog Technology Moves Fast. PASE Can Help. Tony is back again this week with a follow-up with more information on PASE for programmers.
Download AIX Open Source binaries for your IBM i ...
IBM i PASE Option 33 re-distributes many common AIX binaries so you do not have to FTP them from another AIX machine. However, if you are looking for additional PASE/Linux utilities found on many Linux laptops (zip, unzip, gunzip, etc.), check out Young i Professionals (YIPs) instructions for downloading AIX Open Source binaries into PASE.
PASE tends to run 80–90% of the functions of AIX needed to run most popular software (Java, PHP, SAP, etc.), but it is NOT a complete AIX system (if you need a complete AIX system, buy AIX).
Here is a list of what PASE does not support …
• Systems management functions of AIX (smit, etc.). Rather, use the IBM i management features (RSTLICPGM, etc.)
• Performance tools do not work the same as AIX; IBM i has it own set of performance tools.
• “Real time” functions tend not to work the same (REAL CLOCK, etc.)
• Tooling, tooling, tooling, … yep “geek” discussion, we just don’t have it all on IBM i since PASE is not an AIX developer machine.
For ILE/RPG programmers …
With knowledge of “SLIC kernel sharing” - shared memory model (teraspace), shared exception/signal model, etc. - you can use the APIs that PASE provides for both ILE (Qp2CallPase, etc.) and the PASE side (_ILECALL, _PGMCALL, etc.) to interact between PASE and ILE (yes, RPG as well).
• The YIPs provide an example RPG program loading a PASE shared library and calling a function (PASE libmy.a → accounts)
• Example RPG popen utility to call PASE utilities. The featured example calls PASE curl (downloaded open source utility) to get stock quotes from Yahoo REST site.
Become a PASE super geek quickly …
The absolute fastest way to become a PASE expert is to start playing around with shells (QCMD, QSH, call qp2term). There is a YIPs wiki page full of examples that you can download and become the biggest PASE geek on the block.
The following gives you an idea of the kinds of information you can find on that wiki page.
There are three shell topics on the YIPs Wiki:
• Part 1 - QSH/QP2TERM (shells) — differences between QCMD, QSH, QP2TERM, shell pipes between environments
• Part 2 - QSH/QP2TERM (parms) — shell parameters across QCMD, QSH, QP2TERM environments
• Part 3 - QSH/QP2TERM (web) — everything learned can instantly be moved to IBM i web
And here are some additional highlights:
• Before you start … IBM i arrives from manufacturing with a default machine QCCSID of 65535 (hex or binary), which is disaster for PASE and ILE interaction. At issue, PASE runs ASCII and ILE runs EBCDIC, therefore interactions require a valid CCSID setting to allow conversion of string content between the two environments (not 65535).
• Shells are about pipes … Shell environment interactions operate using interlocking pipes terminal<pipe>command, command<pipe>command, a very powerful idea forming the basis of all UNIX style scripting languages.
• QSH (ILE sh) - born ILE, runs mostly ILE, taught how/when share command control with PASE sh
• call qp2term (PASE sh) - born AIX, runs mostly PASE sh, taught how/when share command control with QSH
• Conquer IBM i using system utility. Try all PASE/ILE tricks, including output(*).
• Writing your own scripting utilities (PASE/ILE) … example (c, rpg) is often the easiest way to understand, so we will offer an easy command for each environment that demonstrates.
• IBM i GUI? PASE graphics on IBM i
• This section is optional, but I use ssh -X adc@mysystem and the PASE GUI editor nedit every day, so I am including section on native IBM i X graphics to round out your IBM i scripting super geek skills (even super geeks use graphical editors these days).
• PASE sh CGI. Hey, everything you just learned about shells is directly transferable to web environment.
• IBM i Apache HTTP server has been trained to run PASE CGI(s) from directories starting with /QOpenSys.
Here are some additional references: