Intro to PASE - Event Schedule & Agenda Builder App | Schedschd.ws/hosted_files/commons17/30/intro...
-
Upload
truongthuan -
Category
Documents
-
view
227 -
download
4
Transcript of Intro to PASE - Event Schedule & Agenda Builder App | Schedschd.ws/hosted_files/commons17/30/intro...
© 2016, 2017 IBM Corporation
Cognitive Systems
Intro to PASE
Kevin Adler - [email protected] - @kadler_ibm
Session ID:
Agenda Key:
170408
21CM
© 2016, 2017 IBM Corporation
Cognitive Systems
What a UNIX Application Wants● Hierarchical filesystem with traditional layout
– /usr/bin, /bin, /usr/lib, /etc, ...● Bourne-compatible shell available at /bin/sh● ASCII / UTF-8 character set● byte-stream files● Asynchronous Signals● TTY interface
© 2016, 2017 IBM Corporation
Cognitive Systems
Unix History Lesson
© 2016, 2017 IBM Corporation
Cognitive Systems
Original Unix Hardware: DEC PDP-7 (1965)
https://en.wikipedia.org/wiki/PDP-7#/media/File:Pdp7-oslo-2005.jpeg
© 2016, 2017 IBM Corporation
Cognitive Systems
Original Unix Hardware: DEC PDP-11 (1970)
https://commons.wikimedia.org/wiki/File:Digital_PDP11-IMG_1498_cropped.jpg
© 2016, 2017 IBM Corporation
Cognitive Systems
Unix● Multi-tasking● Multi-user● Hierarchical filesystem● store data in plain-text● “everything is a file”● small simple tools – building blocks to larger functionality
© 2016, 2017 IBM Corporation
Cognitive Systems
Unix Family Tree
https://commons.wikimedia.org/wiki/File:Unix_history-simple.svg
© 2016, 2017 IBM Corporation
Cognitive Systems
Standardized “Unix”● “System V Interface Definition” (SVID)● Portable Operating System Interface (POSIX)
– IEEE 1003– ISO/IEC 9945
● Single UNIX Specification (SUS)
© 2016, 2017 IBM Corporation
Cognitive Systems
The “Portable OS”● Hierarchical filesystem with a single root “/”● Bourne-compatible shell● Standard Unix commands
– ls, cp, mv, ...● byte-stream files● Asynchronous Signals● TTY interface
© 2016, 2017 IBM Corporation
Cognitive Systems
What is PASE?● “Portable Application Solutions Environment”● Provides a runtime environment based off AIX● Uses 32-bit or 64-bit untagged pointers● ASCII/UTF-8 environment, not EBCDIC● Supports fork()/exec() process model● Runs direct POWER/PowerPC instructions (no translation)● Uses AIX system-call interface to access “OS” features
– filesystem & sockets– users & groups– heap and shared memory– signals– ...
© 2016, 2017 IBM Corporation
Cognitive Systems
Q: When was PASE introduced?
© 2016, 2017 IBM Corporation
Cognitive Systems
A: V4R3 (1998)
© 2016, 2017 IBM Corporation
Cognitive Systems
Q: Why was PASE created?
© 2016, 2017 IBM Corporation
Cognitive Systems
A: To allow SmallTalk to be ported with JIT support
© 2016, 2017 IBM Corporation
Cognitive Systems
Traditional PASE Diagram
Technology Independent Machine InterfaceSystem Call Interface
SLIC
PASE Applications IBM i Applications
Hardware
© 2016, 2017 IBM Corporation
Cognitive Systems
PASE Diagram
SLIC
Hardware
PASE SYSCALL TIMI
XPF
IBM i Applications
PASE Runtime Libraries
PASE Applications
© 2016, 2017 IBM Corporation
Cognitive Systems
PASE Diagram
SLIC
Hardware
PASE SYSCALL TIMI
XPF
IBM i Applications
PASE Runtime Libraries
PASE Applications
PASE Utilities
QP2 PASE Runtime & APIs
PASE headers
© 2016, 2017 IBM Corporation
Cognitive Systems
PASE Diagram● PASE System call interface
– 57xx-999 (SLIC)● PASE QP2 APIs and Runtime
– 57xx-SS1 *BASE (IBM i)● PASE Runtime components
– 57xx-SS1 option 33 (PASE)● PASE headers
– 57xx-SS1 option 13 (System Openness Includes)
© 2016, 2017 IBM Corporation
Cognitive Systems
Q: How is Windows 10 like IBM i?
© 2016, 2017 IBM Corporation
Cognitive Systems
A: They both have BASH!
© 2016, 2017 IBM Corporation
Cognitive Systems
Bash on Windows● https://msdn.microsoft.com/en-us/commandline/wsl/about● Implements Linux System Call interface● Maps to Windows NT kernel● Same basic concept as PASE except substitute Linux for AIX
https://blogs.msdn.microsoft.com/wsl/2016/06/08/wsl-system-calls
© 2016, 2017 IBM Corporation
Cognitive Systems
Based Off of AIX...● Mostly unmodified AIX components
– Runtime tools: cp, rm, mv, ...– Runtime Libraries: libc.a, libm.a, libcurses.a, ...– Header files: stdio.h, errno.h, fcntl.h, ...
● System calls: /unix– Uses same system call API/ABI as AIX– No AIX code in SLIC*– Many AIX system calls not implemented
© 2016, 2017 IBM Corporation
Cognitive Systems
But it's not 100% AIX...● No /etc/passwd, /etc/groups, /etc/shadow, ...
– getpwnam() etc call through ILE APIs● No AIX filesystem support● Many AIX libraries not included
– libodm– libcfg
● No system management tools– installp– smit
● uname says OS400, not AIX● not all syscalls implemented :(● ... and more
© 2016, 2017 IBM Corporation
Cognitive Systems
AIX Support in PASE● PASE 7.3 AIX 7.1≅● PASE 7.2 AIX 7.1≅● PASE 7.1 AIX 6.1≅● PASE 6.1 AIX 5.3≅● ...
© 2016, 2017 IBM Corporation
Cognitive Systems
Cue Open Sesame● PASE lives under /QOpenSys – Why?
© 2016, 2017 IBM Corporation
Cognitive Systems
Cue Open Sesame● PASE lives under /QOpenSys because it's case-sensitive● Standard Unix layout gets mapped:
– /usr/lib → /QOpenSys/usr/lib– /usr/bin → /QOpenSys/usr/bin– /usr/sbin → /QOpenSys/usr/sbin– /usr/share → /QOpenSys/usr/share
● Some links from / exist:– /lib → /usr/lib → /QOpenSys/usr/lib– /usr/ccs → /QOpenSys/usr/ccs– /usr/sbin → /QOpenSys/usr/sbin– /usr/share → /QOpenSys/usr/share
● Conspicuously missing symlinks– /bin & /usr/bin don't point to /QOpenSys– QSH got there first :(
© 2016, 2017 IBM Corporation
Cognitive Systems
Cue Open Sesame-bash-4.3$ ls -l /usr/bin/ls lrwxrwxrwx 1 qsys 0 54 Dec 22 2015 /usr/bin/ls -> /QSYS.LIB/QSHELL.LIB/LS.PGM
-bash-4.3$ /QSYS.LIB/QSHELL.LIB/LS.PGM -h-bash-4.3: /QSYS.LIB/QSHELL.LIB/LS.PGM: Permission denied
-bash-4.3$ /usr/bin/ls -h/usr/bin/ls: illegal option -- husage: ls [-1ACFHLNRSabcdefgiklmnopqrstuxEUX] [File...]
● How???– If /path/to/binary not executable, PASE automatically tries
executing /QOpenSys/path/to/binary instead
© 2016, 2017 IBM Corporation
Cognitive Systems
MI Model● Single-level Store addressing
– 16-byte (128-bit) tagged pointers– Segmented storage (16M per segment)– Only SLIC can create or modify pointers via pointer MI instructions
● Any other manipulation invalidates a pointer● Jobs are “spawned” from scratch
– spawnp()– SBMJOB
● Calling a program– Program is loaded in same job– Static program storage is allocated in the program's “activation group”– ILE programs can call functions in service programs– All programs share the same SLS address space
● can pass pointers back and forth
© 2016, 2017 IBM Corporation
Cognitive Systems
MI Model
PGMAPGMA foo()
PGMB bar()
SRVPGM1 baz()
PGMAPGMC main()
SBMJOB
123456/QUSER/TEST 654321/QUSER/TEST
© 2016, 2017 IBM Corporation
Cognitive Systems
PASE Model● Private address space (virtual addressing)
– 32-bit or 64-bit pointers– Linear addressing (not segmented*)– Pointers can be converted between integers and back (untagged)
● Processes are forked– fork() creates a clone of a itself
● memory is shared “copy-on-write” - only split when it's modified– New program can be called via exec()
● replaces existing process image with new program● Calling a program
– Calling a program always* results in a new process– Each program gets its own address space
© 2016, 2017 IBM Corporation
Cognitive Systems
PASE Model
PGMAmypgm main()
libfoo.so foo()
mypgm bar()
fork()
12345(123456/QUSER/TEST)
12346(654321/QUSER/TEST)
PGMAmypgm main()
libfoo.so foo()
mypgm bar()
© 2016, 2017 IBM Corporation
Cognitive Systems
PASE Model
PGMAmypgm main()
libfoo.so foo()
mypgm bar()
12345(123456/QUSER/TEST)
12346(654321/QUSER/TEST)
PGMAmypgm2 main()
exec(mypgm2)
© 2016, 2017 IBM Corporation
Cognitive Systems
Process ID Mapping● Each PASE process has a numeric ID (pid)● Each PASE process also has a Job ID● Most non-PASE processes only have Job ID● Use getjobid to get the Job ID for a given pid
-bash-4.3$ getjobid 14Process identifier 14 is 904525/KADLER/QPADEV0002
© 2016, 2017 IBM Corporation
Cognitive Systems
Process ID Mapping-bash-4.3$ ps -e PID TTY TIME CMD 8 - 3:31 jvmStartPase 24 - 3:11 jvmStartPase 352 - 6:17 lslp-kernel 354 - 4:16 jvmStartPase 355 - 3:51 jvmStartPase 361 - 3:53 jvmStartPase 371 - 3:43 jvmStartPase 14532 - 0:00 sh 14539 - 0:00 bash 9973062 - 0:00 sshd 9973488 - 0:00 sshd 9973489 p0 0:00 bash 9973494 - 0:00 sshd 9973495 p1 0:00 bash 9973501 p1 0:00 ps
-bash-4.3$ system "WRKACTJOB" | grep 'Active jobs' | awk '{ print $NF }'229
© 2016, 2017 IBM Corporation
Cognitive Systems
Everyone is a Winner!● PASE runs inside an MI job● PASE memory is mapped in to Teraspace
– Any Teraspace-aware application can talk directly to PASE!– A PASE application can call any Teraspace-aware Program
© 2016, 2017 IBM Corporation
Cognitive Systems
PASE Memory
00000000000000010000000200000003
....
FFFFFFFDFFFFFFFEFFFFFFFF
SPP:
SPP:
SPP:
SPP:
PASE Memory
Teraspace
SPP:
SPP:
© 2016, 2017 IBM Corporation
Cognitive Systems
Managing PASE MI Memory Mapping↔● In PASE
– _CVTSPP – convert space pointer to PASE pointer– _CVTTS64 – convert 64-bit Teraspace pointer to PASE pointer– _GETTS64_SPP – convert PASE pointer to Teraspace space pointer– _GETTS64 – convert PASE pointer to 64-bit Teraspace pointer
● In ILE– Qp2malloc() - allocate PASE memory– no direct way to convert PASE pointer to MI pointer
© 2016, 2017 IBM Corporation
Cognitive Systems
Interactive Applications
© 2016, 2017 IBM Corporation
Cognitive Systems
https://commons.wikimedia.org/wiki/File:Teletype-IMG_7287.jpg
© 2016, 2017 IBM Corporation
Cognitive Systems
https://commons.wikimedia.org/wiki/File:DEC_VT100_terminal.jpg
© 2016, 2017 IBM Corporation
Cognitive Systems
© 2016, 2017 IBM Corporation
Cognitive Systems
https://commons.wikimedia.org/wiki/File:Terminal-ibm3486.jpg
© 2016, 2017 IBM Corporation
Cognitive Systems
© 2016, 2017 IBM Corporation
Cognitive Systems
Unix TTY Legacy● Things you can do enable or disable on a TTY
– “canonical” mode, buffering each line and allowing line-editing– echoing of input to the screen– whether ^C, ^Z, ... should send signals– whether output should be upper-cased
● You can also set which byte sends which signals● Change the size of the terminals
– how many rows/columns of characters– how many pixels wide/tall it is
© 2016, 2017 IBM Corporation
Cognitive Systems
TTY in a 5250?● Sort of works (QP2TERM/QSH)● isatty lies!
– PASE_STDIO_ISATTY=N shows the truth● 5250 is block/record/field/window oriented
– Fundamentally incompatible● SSH provides access to true TTY
© 2016, 2017 IBM Corporation
Cognitive Systems
© 2016, 2017 IBM Corporation
Cognitive Systems
Exceptions● MI uses messages: CPF1234, MCH4321, ...● Unix uses signals● MI messages automatically converted to signals● Possible to get message id from signal handler
© 2016, 2017 IBM Corporation
Cognitive Systems
Integrated but not Identical● Separate file descriptor numbers between ILE and PASE
– Special code for CCSID conversion of stdin/stdout/stderr● Separate environment variables
– Mapping done at PASE startup● Different CCSIDs
– PASE CCSID separate from Job CCSID
© 2016, 2017 IBM Corporation
Cognitive Systems
Questions?
© 2016, 2017 IBM Corporation
Cognitive Systems
https://facebook.com/IBMPowerSystems
https://twitter.com/IBMPowerSystems
https://www.linkedin.com/company/ibm-power-systems
http://www.youtube.com/c/ibmpowersystems
https://www.ibm.com/blogs/systems/topics/servers/power-systems/
Power Systems Social MediaIBM Power Systems Official Channels:
© 2016, 2017 IBM Corporation
Cognitive Systems
51
Blogs Twitter #Hashtags
IBM Systems Magazine You and i (Steve Will)
IBM Systems Magazine i-Can (Dawn May)
IBM Systems Magazine: iDevelop (Jon Paris and Susan Gantner)
IBM Systems Magazine: iTalk with Tuohy
IBM Systems Magazine: Open your i (Jesse Gorzinski)
Trevor Perry Blog
IBM DB2 for i (Mike Cain)
IBM DB2 Web Query for i (Doug Mack)
Modern-i-zation (Tim Rowe)
@IBMSystems @COMMONug
@IBMChampions@IBMSystemsISVs
@LinuxIBMMag@OpenPOWERorg
@AIXMag @IBMiMag
@ITJungleNews @SAPonIBMi @SiDforIBMi
@IBMAIXeSupp@IBMAIXdoc
#PowerSystems
#IBMi
#IBMAIX
#POWER8
#LinuxonPower
#OpenPOWER
#HANAonPower
#ITinfrastructure
#OpenSource
#HybridCloud
#BigData
#IBMiOSS
More to Follow:
© 2016, 2017 IBM Corporation
Cognitive Systems
52
Revised September 26, 2006
Special noticesThis document was developed for IBM offerings in the United States as of the date of publication. IBM may not make these offerings available in other countries, and the information is subject to change without notice. Consult your local IBM business contact for information on the IBM offerings available in your area.Information in this document concerning non-IBM products was obtained from the suppliers of these products or other public sources. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.IBM may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents. Send license inquires, in writing, to IBM Director of Licensing, IBM Corporation, New Castle Drive, Armonk, NY 10504-1785 USA. All statements regarding IBM future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only. The information contained in this document has not been submitted to any formal IBM test and is provided "AS IS" with no warranties or guarantees either expressed or implied.All examples cited or described in this document are presented as illustrations of the manner in which some IBM products can be used and the results that may be achieved. Actual environmental costs and performance characteristics will vary depending on individual client configurations and conditions.IBM Global Financing offerings are provided through IBM Credit Corporation in the United States and other IBM subsidiaries and divisions worldwide to qualified commercial and government clients. Rates are based on a client's credit rating, financing terms, offering type, equipment type and options, and may vary by country. Other restrictions may apply. Rates and offerings are subject to change, extension or withdrawal without notice.IBM is not responsible for printing errors in this document that result in pricing or information inaccuracies.All prices shown are IBM's United States suggested list prices and are subject to change without notice; reseller prices may vary.IBM hardware products are manufactured from new parts, or new and serviceable used parts. Regardless, our warranty terms apply.Any performance data contained in this document was determined in a controlled environment. Actual results may vary significantly and are dependent on many factors including system hardware configuration and software design and configuration. Some measurements quoted in this document may have been made on development-level systems. There is no guarantee these measurements will be the same on generally-available systems. Some measurements quoted in this document may have been estimated through extrapolation. Users of this document should verify the applicable data for their specific environment.
© 2016, 2017 IBM Corporation
Cognitive Systems
53
Revised December 2, 2010
Special notices (cont.)IBM, the IBM logo, ibm.com AIX, AIX (logo), AIX 5L, AIX 6 (logo), AS/400, BladeCenter, Blue Gene, ClusterProven, DB2, ESCON, i5/OS, i5/OS (logo), IBM Business Partner (logo), IntelliStation, LoadLeveler, Lotus, Lotus Notes, Notes, Operating System/400, OS/400, PartnerLink, PartnerWorld, PowerPC, pSeries, Rational, RISC System/6000, RS/6000, THINK, Tivoli, Tivoli (logo), Tivoli Management Environment, WebSphere, xSeries, z/OS, zSeries, Active Memory, Balanced Warehouse, CacheFlow, Cool Blue, IBM Systems Director VMControl, pureScale, TurboCore, Chiphopper, Cloudscape, DB2 Universal Database, DS4000, DS6000, DS8000, EnergyScale, Enterprise Workload Manager, General Parallel File System, , GPFS, HACMP, HACMP/6000, HASM, IBM Systems Director Active Energy Manager, iSeries, Micro-Partitioning, POWER, PowerExecutive, PowerVM, PowerVM (logo), PowerHA, Power Architecture, Power Everywhere, Power Family, POWER Hypervisor, Power Systems, Power Systems (logo), Power Systems Software, Power Systems Software (logo), POWER2, POWER3, POWER4, POWER4+, POWER5, POWER5+, POWER6, POWER6+, POWER7, System i, System p, System p5, System Storage, System z, TME 10, Workload Partitions Manager and X-Architecture are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries.
A full list of U.S. trademarks owned by IBM may be found at: http://www.ibm.com/legal/copytrade.shtml.
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.AltiVec is a trademark of Freescale Semiconductor, Inc.AMD Opteron is a trademark of Advanced Micro Devices, Inc.InfiniBand, InfiniBand Trade Association and the InfiniBand design marks are trademarks and/or service marks of the InfiniBand Trade Association. Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.IT Infrastructure Library is a registered trademark of the Central Computer and Telecommunications Agency which is now part of the Office of Government Commerce.Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates.Linear Tape-Open, LTO, the LTO Logo, Ultrium, and the Ultrium logo are trademarks of HP, IBM Corp. and Quantum in the U.S. and other countries.Linux is a registered trademark of Linus Torvalds in the United States, other countries or both.Microsoft, Windows and the Windows logo are registered trademarks of Microsoft Corporation in the United States, other countries or both.NetBench is a registered trademark of Ziff Davis Media in the United States, other countries or both.SPECint, SPECfp, SPECjbb, SPECweb, SPECjAppServer, SPEC OMP, SPECviewperf, SPECapc, SPEChpc, SPECjvm, SPECmail, SPECimap and SPECsfs are trademarks of the Standard Performance Evaluation Corp (SPEC).The Power Architecture and Power.org wordmarks and the Power and Power.org logos and related marks are trademarks and service marks licensed by Power.org.TPC-C and TPC-H are trademarks of the Transaction Performance Processing Council (TPPC).UNIX is a registered trademark of The Open Group in the United States, other countries or both.
Other company, product and service names may be trademarks or service marks of others.