Operating system of IBM AS/400 midrange computers (some people call them "mainframes", but the people who actually work on them consider that incorrect). Transaction-oriented (that is, designed for lots of I/O but unchallenging computation; RPG is a "native language"); not much to do with AIX (except that it now supports running AIX binaries, albeit only a subset of the AIX API).

OS/400 (introduced 1988) is descended from IBM System/38's CPF operating system, from circa 1979. It is at its core quite alien from what most people are used to – applications are compiled to bytecode, which a trusted system component converts to machine code – prohibiting users from directly writing machine code is used to enforce some of the system security features. It has a single-level store architecture, in which applications don't have to distinguish data on disk from data in memory. It has a form of object-orientation, in that the OS is made of objects of various types, although it is lacking generality in that only IBM can define new object types, and there is not much notion of inheritance. However, more recently they've added POSIX compatibility, and then even ability to run AIX binaries, which means it is possible for programmers (if they wish) to ignore its more unusual features and just treat it as a slight variant of AIX.

Tcl/Tk has been ported there: [L1 ] (Link is dead, 2021)

  • Tcl 7.6, Tk 4.2
  • Requires OS/400 V4R4 or later
  • The distribution includes the XLIB portion of X Window/400, the Tcl command interpreter, and the Tk (wish) console OS/400 V4R5 is required DB2 access.
  • VTCL - a GUI builder written completely in Tcl/Tk by Stewart Allen, is included free of charge.
  • REXEC and RSH (Remote Shell) - two remote execution command daemons for starting AS/400 applications and commands from remote workstations.
  • 15-day free trial download, after that it costs about USD 750.

kroc For Windows & AS400 look here: [L2 ] and for linux & AS400 it's here: [L3 ]

In 2000, IBM changed the branding (again!). The hardware is now "eServer", and the "platform" is "iSeries" [L4 ]. So no one writes of AS/400; from here on, it's iSeries. It's not consistent, at least to engineers; IBM still needs to say "OS/400" occasionally, because in fact the company makes available implementations of Linux, AIX, and Windows2000, along with OS/400, to run on iSeries hosts.

It changed again. In 2004, "i5/OS" succeeded OS/400. Instead of calling them "iSeries", they're now "eServer i5"-s, to emphasize that the identical hardware hosts Linux and AIX, sometimes simultaneously.

And it changed its name again in 2008. Now it is called "IBM i". But it is still the same thing (of course, each new version changes some things.)

Note that IBM i has several environments:

  • the "classic" OS/400 environment: this itself exists in a different versions, the current ILE, and the older EPM and OPM (still supported for backward compatibility)
  • the "PASE" environment which has partial binary compatibility with AIX
  • there are also environments for backward compatibility with the AS/400's predecessors, S/36 and S/38

Note that it is possible to run Tcl either under the classic environment or the PASE environment. Since PASE environment is simply a subset of AIX (it is missing some less commonly used AIX APIs, but it is mostly there), it is quite easy to port Unix-originated tools to it, indeed not much harder than porting them to AIX. And indeed, IBM offers an RPM of Tcl for PASE – https://public.dhe.ibm.com/software/ibmi/products/pase/rpms/repo/ppc64/tcl-8.6.8-3.ibmi7.2.ppc64.rpm – (you are supposed to install that using YUM, after configuring it per IBM's documentation, not directly from that URL). PASE also is in ASCII/UTF-8 rather than EBCDIC, which also simplifies porting stuff like Tcl.

By contrast, older solutions (like the export-ventures and openlegacy ports referred to on this page, which appear to have fallen off the net), used the classic OS/400 environment. This is generally harder to port to – it is EBCDIC-based, it contains some POSIX APIs (but less than AIX does) and also lots of non-conventional OS/400-specific APIs. (In particular, I think they used ILE, rather than the older EPM and OPM environments – ILE was introduced in 1993, so EPM C is very legacy now.) ILE C can offer greater performance when calling OS/400 native APIs than PASE can, but that's probably not an issue for Tcl (which doesn't support calling any of those out of the box, although an extension could). I think the main reason that ILE was used, is PASE is newer – PASE was only introduced in 1999, and was an extra-cost add-on until 2002, whereas ILE was introduced in 1993. So people porting Tcl in the early 2000s, had some good reasons to prefer ILE C (supported everywhere and mature) rather than the relatively new (and not everywhere installed) PASE. But, nowadays, that is much less of a concern, especially given how much emphasis IBM has been putting on PASE in recent years.

As of fall 2005, Vaclav Snajdr reports that binaries of a port which knows enough to be able to invoke legacy Cobol and RPG applications are available for download from http://www.openlegacy.de/ .