 | Level: Introductory Matt Davis (dwinfo@us.ibm.com), Linux Power Technical Consultant, IBM Anita Govindjee (agovindj@us.ibm.com), System p Technical Consultant, IBM Vandana Kumar (vkumar@us.ibm.com), ISV Global Solutions Enablement Strategy, IBM
01 Mar 2003 Updated 16 Apr 2007 Deploying and developing your application on Linux® for the
IBM System p™ and
System i™ POWER platforms is similar to deploying and developing on other Linux
systems. In this article, the similarities and differences that you need to be aware
of for the Linux on POWER systems are discussed. (Updated April 2007.)
Introduction
Both System p and System i servers are based on the same POWER processor
architecture, binaries compiled under a Linux distribution on either System p or
System i run on both platforms. However, changes might be required for differences
in I/O support between System p and System i servers.
Throughout this article, refer to the list of helpful terms and
definitions if some terms are unfamiliar to you.
Installation
Information in this article is based on the SUSE Linux Enterprise Server (SLES) 8
and Red Hat Linux 7.1, kernel versions 2.4 for POWER architecture. SUSE Linux
distributes and supports SUSE Linux Enterprise Server (SLES) 8 for System p and
System i hardware.
System p installation
Each hardware platform has a set of requirements for Linux installation. For
System p servers, most of the requirements for Linux installation relate to the
machine boot loader and OpenFirmware.
On Intel®-based hardware, the BIOS loads the system image from the Master Boot
Record. On System p hardware, the OpenFirmware loads the bootable system image from
a Boot Partition. While this is not the only function of the OpenFirmware, it is
the only function relevant to the Linux installation. It is possible to install
Linux in a System p logical partition (LPAR), as an alternative to a native
installation. This requires the use of the Hardware Management Console (HMC) that
manages System p LPARs.
Native SLES 8 installation on System p
The native installation of SLES on System p has been made straightforward by
SUSE. Four installation options are available:
- Using the text-based installation through a serial connection
- Using the graphical installation through a console or CRT
- Using the graphical installation through VNC
- Using a network installation server
These options are reviewed here briefly, but more documentation is provided
by SUSE as part of the standard SLES 8 documentation, available on SLES 8
distribution CDs.
-
Why install using the serial connection?
Some, but not all, System p models are equipped with supported video
adapters. Supported video adapters include the GXP-120, GXP-130, and GXP-135,
although the GXP-135 requires a CRT with a digital video connector. For other
System p models, a serial connection is used to install with an approved
terminal client. Approved terminals include software terminal emulators, such
as Minicom. Several common terminal types are supported by YaST2, including
vt100 and vt220. Be sure to set the port speed to 9600 baud in order
to connect to the system service processor. SUSE's YaST2 installer begins in a
text-based mode (Linux RC) and guides you through the installation.
-
Why install using the CRT?
System p models equipped with a supported video adapter can be installed with
a CRT. This provides the more attractive GUI interface for SUSE's YaST2
installer. However, installation with a CRT can be undesirable in environments
where connecting the CRT to the System p hardware is not space efficient.
-
Why install using VNC?
VNC is a remote display system that enables viewing of a GUI display, even
from a Microsoft® Windows® client. This can be preferable in an environment
where a Microsoft Windows client is the most likely candidate to serve as a
terminal for installation. This option requires the use of a serial connection
to power the computer on, but it subsequently provides the GUI interface for
SUSE's YaST2 installer. See Resources for
installation and configuration documentation for VNC.
-
Why install using a network installation server?
If you are installing several machines, a network installation server can be
worthwhile. This is particularly useful in a lights out situation that
requires the capability to install from a remote location without having
access to a display, keyboard, or mouse directly connected to any of the
computers. A network installation server offers two advantages:
- Installation without directly accessing the console
- Simultaneous installation across multiple systems
A network installation server shares the contents of the SLES 8 CDs using a
network file system (NFS) server. Network installations are invoked from the text-based LinuxRC
installation utility that is launched when the
install=manual kernel parameter is given to the
Yaboot prompt.
LPAR installation of SLES 8 on System p
SLES 8 is designed to run in a System p logical partition, thus providing the
same granularity of resource consumption as AIX®. Just as with AIX, the hardware
must be partitioned using the system's Hardware Management Console (HMC). Once the
logical partitions (LPARs) are established with the HMC, the target LPAR can be
booted and installed in the same fashion as a native installation. This allows for
any of the four installation methods described in the preceding section,
Native SLES 8 Installation on System p. Note that
dynamic partitioning, as featured in AIX 5.2, is not yet available for System p
Linux. Dynamic AIX LPARs (DLPARs) can be used simultaneously with Linux LPARs on
an AIX 5.2 DLPAR system, but the Linux LPARs will not respond to any dynamic
reallocation of resources after boot.
Installation of Red Hat Linux 7.1 on
System p
Installation of Red Hat Linux 7.1 on System p is similar to installation of
SLES 8. Red Hat provides a different installer than SUSE's YaST2, but both
installations employ
the Yaboot bootloader, and both installations rely on the System p OpenFirmware to
launch the bootable kernel image. Red Hat Linux 7.1 provides options for
installation with a serial connection, CRT, or network installation server, but it
does not offer installation through VNC.
Installation on the System p model p655
The System p p655 requires a unique installation due to its lack of graphics
adapter, CD-ROM, and keyboard. The absence of a graphics adapter prevents
installation with a CRT. An external CD-ROM drive can be added, in which case
normal installation with the serial connection can be achieved. A graphics card
and USB keyboard can be added as well to allow for CRT installation, but this can
be inconvenient in many environments. If an external CD-ROM is not
available, a special network installation from an AIX machine is required. You can
find instructions
for Remote Initial Program Load (RIPL) setup in the documentation for
the System p hardware, but the process for using RIPL to install Linux for POWER
on the p655 is briefly reviewed here.
From the OpenFirmware menu, select
Remote Initial Program Load Setup. This opens menus for
selecting and configuring the network device. These menus also allow configuration
of information regarding the RIPL server (for example, a NIM server). Once this
data is configured, return to the top-level OpenFirmware menu and select
Multiboot, then
Select Install Device. The network device that was
configured for the RIPL install will be available. Choose this installation
device, and OpenFirmware will load the SLES boot image.
System i installation
As stated for System p, each hardware platform has a set of requirements for
Linux installation. For System i, hardware partitioning of the server is required
before beginning Linux installation. A Linux virtual disk is then created with
the OS/400® management connection. After this, the installation of Linux on System
i is similar to other platforms.
Installation of SLES 8 on System i
Installation of SLES on System is straightforward with SUSE
and OS/400. The same model that is familiar to System i customers for other
operating system integration is used to provide Linux support on System i. There are
five basic steps to installation.
- Create the partition for Linux to use. Assign the hardware resources.
- Create an OS/400 Network Server Description (NWSD) that refers to the Linux
partition and points to the OS/400 CD drive as the boot device.
- Create the OS/400 Network Storage Space (NWSSTG) that will be the Linux
virtual disk, and connect it to the Linux Network Server Description.
- Connect the Linux virtual console to see messages during the installation and
to complete any additional Linux configuration. This is done by telneting to a
specific port on OS/400 with a specific Linux virtual console password. After
connecting to the console, the Linux user can log into Linux.
- Put the Linux CD into the OS/400 CD drive and vary on the Network
Server Description on OS/400. This starts the installation with Linux booting
from the CD drive and creates the Linux disk image on the virtual disk. Linux
takes over after that.
If you need to run Linux on System i from disks that are controlled
directly by Linux rather than virtual disks, System i also supports direct
attachment of I/O devices to Linux partitions after the initial installation. See
Resources and the SUSE
installation manual for System i that comes with the distribution for more
specific information on partitioning for Linux and its installation on System i.
Installation of Red Hat Linux 7.1 on
System i
As with System p, the Red Hat installation on System i uses a different installer
than SUSE, but the basic steps are just as described above for SLES installation
on System i.
Setup and maintenance
General Linux maintenance can be managed in a variety of ways. Most
distributions, including SUSE and Red Hat products, include a centralized
management program similar to those found in traditional enterprise UNIX® (such as
SMIT for AIX). SUSE has developed a centralized management program named Yet
another Setup Tool 2 (YaST2). Red Hat offers Linuxconf, which has become a
standard configuration utility adopted by several other Linux distributors. Each
tool is briefly reviewed here, along with information for managing your Linux
system.
YaST2
Management in SLES 8 is centralized in the YaST2 administration utility. YaST2
offers management of users, security, software, networking, file systems, and
more. It can be used remotely in X11 or text-based mode using secure shell. YaST2
also provides a safe-guard mechanism that rewrites the configuration files each
time the machine is booted, otherwise YaST2 exits. This prevents script routines
from altering configurations without regard to the system-wide consequences.
However, administrators should be aware that hand-edited configuration files will
be rewritten, unless:
- Changes are made using YaST2 to match the hand-edited changes.
- The /etc/sysconfig/suseconfig file is edited to prevent YaST2 from overwriting
files.
Linuxconf
Linuxconf is an open-source utility. Linuxconf, like YaST2, enables management of
users, security, networking, and more. Remote administration can be done by
running Linuxconf using a secure shell. Both X11 and text-based versions of
Linuxconf exist.
General Linux administration
Webmin
Webmin is an administration tool developed to offer remote administration of Linux
systems from a secure Web interface. Designed with pluggable modules, Webmin
offers management control over a wide variety of server processes, including
Apache Web server, Samba or NFS file sharing, the Berkeley Internet Name Daemon
(BIND), and others. Many server daemons install with an optional Webmin module that
integrates itself with an existing Webmin installation. Webmin is PERL based, and
it is entirely open source. See Resources for more
information about Webmin.
Hand-editing configuration in /etc/
Although tools like Linuxconf and Webmin make administration easier, in some
cases, hand-editing configuration files might be required or preferred. For example,
the administration tools might not offer control over a specific piece of
software, or the control offered does not provide the desired granularity.
Though there are exceptions, such as software installed in /opt/ or in
a user home directory), the majority of configuration files are found in the /etc/ directory tree.
Application development
Compilers
Linux on POWER offers many compiler options. In addition to the VisualAge C,
C++, and FORTRAN compilers IBM developed, the GNU Software Project provides
four versions of their compilers (GCC) for development on Linux on POWER. For
high performance applications, especially those with intensive floating point
demands, the VisualAge compilers provide an enterprise class development tool
delivering the best available optimization for Linux on POWER. Both 64-bit and
32-bit GCC 3.2 are provided at no cost under the GNU Public License. These
compilers are distributed with both Red Hat Advanced Server 3.0 and SUSE SLES 8
for IBM System p and System i servers. See Resources for
where to find GCC 3.2 and the older GCC 2.95. This older
version of the GNU compiler set might be required to build older open-source code
not yet optimized for GCC 3.2.
What is compiled with the GCC compiler
set
Both Red Hat Advanced Server 3.0 and SUSE SLES 8 are distributed with software
compiled using GCC 3.2. In addition to the user space software distributed with
the Red Hat and SUSE offerings, the Linux kernel is compiled with GCC 3.2.
The Linux kernel is available as either 32-bit or 64-bit, depending on which
version of the GCC compiler it is compiled with. This principle applies to any
Linux kernel modules and C runtime libraries built. Note that,
unlike Linux on some other 64-bit platforms, 64-bit Linux on POWER does not suffer
a performance loss with 32-bit applications. All 32-bit and 64-bit applications can be
run in the same space without any performance impairment. For this reason, a
64-bit kernel is recommended to be used exclusively.
GCC might also be a good choice for user-level software. GCC is the standard
Linux application compiler. This means that the Linux community made an investment
to make code compiled with GCC easily enabled across platforms. As
a result, most software written to be compiled with GCC on one platform is an
easy build with GCC on another platform.
What is compiled with the Visual Age
compiler set
IBM developed the Visual Age Compiler Set for Linux on POWER to provide a high
performance compiler with superior optimization for the POWER3 and POWER4
architectures. Applications compiled with these compilers, especially those with
intensive floating point demands, perform significantly better than when compiled
with GCC. It is recommended that any resource-intensive software be compiled with
the Visual Age compiler set.
In addition to superior performance, the Visual Age compilers are designed to
enable easy porting from other UNIX platforms to Linux on POWER.
Java porting to Linux on POWER
Both Red Hat and SUSE provide the Blackdown JDK 1.3.1 on
their Linux on POWER offerings. This JDK is developed specifically for POWER.
However, many applications have been tailored for alternative JDKs, such as those
offered by Sun Microsystems and IBM. Fortunately, the IBM JDK can be installed to a
Linux on POWER environment at version 1.3.1. The Sun Microsystems JDK is not
currently available for Linux on POWER. It is customary to install these to
either a directory under /usr/local or /opt/, although wherever the installation
directory is, the JAVA_PATH environment variable should be modified to provide access
to the JDK executables. This is usually done in /etc/profile for system-wide
access, or in respective user .profile files as required.
Java™ incompatibilities sometimes arise from method version discrepancies. In
these cases, the JDK vendor or version might need to be switched to allow the
application to be enabled. Luckily, there is nothing wrong with installing
multiple JDKs and changing the JAVA_PATH environment variable as required to
enable the code.
Software deployment
Running Linux applications on a POWER
processor platform
Applications developed on a low-end Intel processor computer can be recompiled
using the same development tools on the high-end POWER-based server in both 32- or
64-bit mode for deployment. It is also possible to use cross-compiler options that
enable creation of POWER processor binaries on an Intel processor. However, it is
recommended that the VisualAge compilers be used for the best possible performance
on the POWER processor family. It is also recommended that any application that
does not necessarily need 64-bit addressing should stay as a 32-bit binary to maintain
its runtime efficiency.
Differences across versions and
distributions
Library and compiler version discrepancies are common across releases from a
given Linux distribution. For example, libc and glibc are two system-wide
libraries that are fundamental to most Linux applications. Although upward
compatibility is generally very robust in Linux development, occasionally header
files and system calls are merged or change names across a point release. These
changes, such as the different versions and levels of libraries, compilers, and other components for
many Linux distributions, are documented both in the documentation that accompanies the libraries
and on the open source maintainer Web sites (see Resources).
Be aware of these differences.
Because the Linux File System Hierarchy (established by the Free Standards Group) is
not yet applied by all distributions, the location of executables can vary from
distribution to distribution. When required, these issues are easily resolved by
declaring a PATH appendage or a symbolic link to the expected location. Similarly,
the location of configuration files for some applications varies across
distributions. For example, the Apache Web server configuration file, httpd.conf,
is located in the /etc tree in some distributions, and in /opt/httpd/ in others.
Again, symbolic linking provides a solution for these inconsistencies.
Aside from versions, some Linux software for which there are popular alternatives
might not be installed by default in some distributions. Linux boot loaders are a
good example of this. In many distributions, Linux Loader (LiLo) is the default
boot loader, yet other distributions prefer a graphical boot loader, GRUB, as the
default. In addition to these low-level tools, Windows environments, such as
KDE and GNOME, and their development kits might vary by version and default
installation across distributions. This might be important for development of GUI
software.
I/O device support
Support for I/O adapters on System p and System i servers running Linux is
determined by many factors, including the availability of open-source drivers and
the IBM testing and certification activities with available Linux distributions. Some
I/O devices are supported before others. The first priority is to support I/O
adapters integrated on system planars and key devices, such as SCSI and LAN
adapters. For System i kernels, IBM provides the device drivers for virtual
devices (OS/400-owned, shared with the Linux partition) in the Linux 2.4 PowerPC
source trees already. For devices attached directly to a Linux partition, see Resources to link to the System i Linux Web site to get the ibmsis driver and utilities to
configure them.
Over time, the set of supported I/O devices will be enhanced as additional device
drivers become available and as testing is performed.
Helpful terms and definitions
-
AIX 5L - Version 5 of the AIX operating system that runs on POWER-architecture
based systems.
-
GCC - GNU Compiler Collection. A collection of compilers available through the
GNU Project, including C, C++, and Java compilers.
-
VisualAge - An IBM collection of compilers that includes C and C++.
-
OS - Operating system.
-
POWER - The name of the common chip architecture for IBM System p and System
i servers.
-
PowerPC - Same as POWER. The common chip for IBM System p and System i
servers.
-
POWER4 - The latest POWER chip. The POWER4 architecture has superior
performance across a broad range of commercial and high-performance computing
environments. POWER4-based System p and System i servers support dynamic logical
partitioning. See Resources for the POWER4 whitepaper for more
information.
-
POWER3 - One of the currently available POWER chips available for entry-level
System p servers.
-
System p - IBM UNIX-based servers that run AIX and Linux. AIX and Linux
can run on the same POWER4-based system in logical partitions. Linux can also
run as the primary operating system on System p servers.
-
System i - IBM integrated servers that run OS/400 and Linux. OS/400 and
Linux can run in logical partitions on System i servers. System i can support up
to 31 Linux partitions.
-
LPAR - Logical partitioning. Enables multiple operating system instances to run
on a single server.
-
DLPAR - Dynamic logical partitioning. Like LPAR, but also provides the
additional capability of dynamically changing system resources, such as CPU and
memory, without the need for system or partition reboots.
-
HMC - Hardware Management Console (HMC) used by LPAR and DLPAR System p
servers to manage logical partitions.
-
IDE - Integrated Development Environment. A development environment for
compiling and debugging application code.
-
CRT - A display connected to a server.
-
VNC - Virtual network computing. A remote display system that enables you to
view the computing desktop environment of a computer (Linux and other
platforms) from anywhere on the Internet.
-
LinuxRC - A text-based program used for setting up the Linux kernel
for installation.
-
YaST2 - Yet another Setup Tool 2. Used by SUSE Linux for system configuration.
-
GNU - Free Software Foundation's free operating system and free software
project.
-
GPL - GNU Public License. Open source software is often licensed under the
GPL.
 |
Acknowledgments
The authors gratefully acknowledge the helpful reviews and contributions from Kay
Tate, an IBM Linux on POWER consultant, and Steve Dibbell, an IBM AIX and Linux
expert who specializes in cluster hardware and software.
Resources Learn
Get products and technologies
Discuss
About the authors  | |  | At the time of the original publication of this article, Matt Davis was a Linux technical consultant in the IBM Systems Solutions Enablement team. As a member of the System p Linux project since its inception, he explored and tested emerging technology for System p Linux and wrote several reports summarizing his findings. These include Journaling File Systems for Linux on POWER, Parallel Grid Computing with Linux on POWER, Open Source Alternatives to Commercial Software for Linux on POWER, and the Linux Solutions Catalog. He came to IBM as an intern during his tenure as a student at the University of Texas at Austin, from where he earned two degrees. Matt has since left the IBM company. |
 | |  | Anita Govindjee is a System p technical consultant on the IBM Systems Solutions Enablement team. She has more than ten years' experience doing C/C++ and Java software development, and doing AIX, Linux, Sun Solaris, and HP-UX system administration. Currently, she provides technical support to ISVs on System p. She holds a BS from the University of Illinois, Urbana-Champaign, and a MS degree from Stanford University, both in Computer Science. She has written an one of the IBM Redbooks on VERITAS Foundation Suite software on AIX and several whitepapers, including a Solaris-to-AIX migration whitepaper and an article on using the GNU C/C++ compiler on AIX. |
 | |  | Vandana Kumar is a senior technical consultant at IBM in the ISV Enablement organization. Her responsibilities include helping ISVs take advantage of emerging technologies at IBM. She has a bachelor's degree from Indian Institute of Technology, Roorkee, and a Masters degree in Electrical Engineering from Wayne State University. She has written several papers on enabling, porting, and tuning applications on AIX. You can contact her at vkumar@us.ibm.com. |
Rate this page
|  |