iSeries Linux is a program-execution environment on the iSeries system that provides a traditional
memory model (not single-level store) and allows direct access to machine instructions (without the
mapping of MI architecture). Because they run in their own partition on a Linux Operating System,
programs running in iSeries Linux
do
have direct access to the full capabilities of the user-state and even
most supervisor state architecture of the original PowerPC architecture. They do
not
have access to the
single level store and OS/400 facilities. To reach OS/400 facilities requires some sort of
machine-to-machine interface, such as sockets. A high speed Virtual LAN is available to expedite and
simplify this communication.
Storage for Linux comes from two sources: Native and Virtual disks (the latter implemented as OS/400
Network Storage). Native access is provided by allocating ordinary iSeries hard disk to the Linux
partition. Linux can, by a suitable and reasonably conventional mount point strategy, intermix both
native and virtual disks. The Virtual Disk is analogous to some of the less common Linux on Intel
distributions where a Linux file system is emulated out of a large DOS/Windows file, except that on
OS/400, the storage is automatically “striped” to multiple disks and, ordinarily, RAIDed.
Linux partitions can also have virtual or native local area networks. Typically, a native LAN would be
used for communications to the outside world (including the next fire wall) and the virtual LAN would be
used to communicate with OS/400. In a full-blown DMZ (“demilitarized zone”) solution, one Linux
application partition could provide a LAN interface to the outer fire wall. It could then talk to a second
providing the inner fire wall, and then the second Linux partition could use virtual LAN to talk to OS/400
to obtain OS/400 services like data base. This could be done as three total Linux partitions and an
OS/400 partition in the back-end.
See "The Value of Virtual LAN and Virtual Disk" for more on the virtual facilities.
Linux on iSeries Run-time Support
Linux brings significant support including X-Windows and a large number of shells and utilities.
Languages other than C (e.g. Perl, Python, PHP, etc.) are also supported. These have their own history
and performance implications, but we can do no more than acknowledge that here. There are a couple of
generic issues worth highlighting, however.
Applications running in iSeries Linux work in ASCII. At present, no Linux-based code generator
supports EBCDIC nor is that likely. When talking from Linux to OS/400, care must be taken to deal with
ASCII/EBCDIC questions. However, for a great fraction of the ordinary Internet and other sockets
protocols, it is the OS/400 that is required to shoulder the burden of translation -- the Linux code can and
should supply the same ASCII information it would provide in a given protocol. Typically, the
translation costs are on the order of five percent of the total CPU costs, usually on the OS/400 side.
iSeries Linux, as a regular Linux distribution, has as much support for Unicode as the application itself
provides. Generally, the Linux kernel itself currently has no support for Unicode. This can complicate
the question of file names, for instance, but no more or no less than any other Linux environment. Costs
for translating to and from Unicode, if present, will also be around five percent, but this will be
comparable to other Linux solutions.
IBM i 6.1 Performance Capabilities Reference - January/April/October 2008
©
Copyright IBM Corp. 2008
Chapter 13 - Linux
179