

Porting Assessment


If your solution is running on Linux on another platform, you can use the tools available from the Linux Standard Base (LSB) to check its standard conformance. A good paper on the LSB and its use is located on our DeveloperWorks site. If you have a conforming application, its portability across Linux systems will be optimal. Since Red Hat and the United Linux Consortium (SuSE, Conectiva, Turbolinux and SCO) have all delivered standard conforming versions of their distributions, your cross-platform Linux capabilities are notably enhanced.
The LSB specifications and conformance tests are available already for IA32, POWER32 and IA64. New specifications are underway for zSeries and for POWER64 architecture (iSeries and pSeries). Even if your target platform tools are not yet available, the existing specifications can be used to measure source conformance to the standard on another platform, gaining a level of assurance across all platforms.
General References
A key consideration for a port effort is where the application is already running. Often, a Linux application will be ported to other Linux platforms. For ISVs who see Linux as a strategic platform move, a Linux port could also come from UNIX, Windows or other platforms.
Linux solutions
In porting Linux applications from one platform to another, a recompilation is the most common port activity. Often, this is sufficient by itself to provide the new application. Since the Intel platforms have the largest number of Linux applications, much porting will be from Linux on Intel to Linux on other IBM eServer architectures. While it is possible to build a cross compiler that targets the other platforms and runs on Intel hardware, it is most common to find ISVs acquiring the new platform and a new distribution for it, moving the source over, and then doing the compilation on the new system.
If your solution depends on specific devices and device drivers, you may need to do more validation that the device is supported for your target platform. IBM tests devices and drivers on Linux systems to ensure that they work correctly and reliably. In addition, it also contributes back to the open source community server device drivers like the virtual drivers for iSeries that allow Linux partitions to share OS/400-owned devices. If you have a dependency, check the target platform device support list for its specifics.
Additional considerations for the port may involve the application scaling (32-bits to 64-bits). zSeries, POWER (iSeries and pSeries) servers support the smaller addressing model on the same hardware as the 64-bit model, so it is possible to move over a 31 (zSeries) or 32-bit (POWER) application and have it run very effectively (without emulation) prior to being scaled up to 64-bit addressing.
Additional Linux to Linux porting considerations can be found in the following links: [ NOTE: If you are using Java, see the Java section below.]
UNIX solutions
The overlap of UNIX and Linux APIs is about 80%. About 15% can be converted in a fairly straightforward way. The other 5% may need additional analysis and code conversion. Specific points are covered in our Linux port tutorial.
There are also potential differences in the development environment that may require changes to build scripts and other development environment items. Some UNIX platforms support or provide Linux and GNU tooling. Conversion on these can be fairly easy, but some areas require more detailed scrutiny. Porting white papers are available for the following platforms:
In some cases, a full port to a Linux kernel may not be necessary to effectively support a platform. The Linux affinity provided by AIX may necessitate only a recompile for some Linux applications to run directly on AIX. More information is available as follows:
Java and WebSphere solutions
Java solutions promise cross platform portability. For bringing code to Linux platforms, this has been true also. In addition to the open source java versions that have historically typically been packaged with the Linux distributions, IBM offers a JVM for Linux on eServers that has proven very effective in delivering Java solutions for eServers Linux platforms. The IBM JVM can also be downloaded:
Windows solutions
Because of the differences in the Windows environment and Linux, either more substantial changes or some kind of emulation is required to move the application over. Tools are available to assist in the changes. Emulators like Wine can help run Windows applications on the Linux system.
Middleware
In addition to application code, many applications also use specific middleware
from IBM or third parties. IBM middleware can be accessed using the
Speed Start
program, and downloaded or purchased via IBM's websites.
Still have questions? Contact US
|