At a high-level, any application can be made to run on a different platform by modifying and re-compiling its source code to provide a binary module for execution on the target platform.
The reason recompilation is required is that the machine level instructions generated by a compiler are particular to the architecture of the underlying hardware and its operating environment. For mainframes, this architecture is built on the Z mainframe instruction set, whereas the main target platform for rehosting of these applications is x86_64 running Linux.
However, requiring recompilation to effect the rehosting of mainframe applications, is fraught with problems, such as:
- Unravelling the ‘Gordian Knot’ of application interdependencies.
- Encoding issues faced when moving from mainframe to x86.
- Overcoming the challenge of data processing when migrating from a mainframe database to PostgreSQL.
This white paper details how the Software Defined Mainframe handles the issues raised by source-code recompilation, leveraging readily available functionality such as the Linux operating system, PostgreSQL relational database, LDAP and x86.
Find out:
- How the Just-In-Time compiler (LzJIT) looks at the byte-code of the migrated program and generates native x86_64 instructions to perform the same function.
- The memory reference techniques used to maintain interoperability.
- How the Legacy Application Environment (LzLAE) enables requests for legacy mainframe features, such as language environment calls, security requests, file system reads and writes, database calls, transactional system requests, etc. to be satisfied.