Now Reading
Multics + AS400:DPS8M on IBM PASE for i (OS/400)

Multics + AS400:DPS8M on IBM PASE for i (OS/400)

2024-02-08 16:05:08


Lastly, you may run dozens of multiprocessing Multics situations alongside facet your mission-critical IBM AIX (PASE) and IBM i (OS/400) workloads on IBM Energy Techniques {hardware}!

"DPS8M/400"
“DPS8M/400”

That is the virtualization resolution your IT division has been ready for… nicely, maybe it isn’t — however supporting this platform is a good demonstration of each the capabilities of the IBM PASE for i (Moveable Software Options Atmosphere) runtime for enabling OSS on IBM i, and the wonderful compatibility and portability of the DPS8M simulator software program.

A brief introduction is to ensure that anybody who might have stumbled right here with none thought in any respect about what any of that is about.

Once you hear “AS400” right now, it’s most probably a reference to the IBM i working system and related software program operating on IBM Power Systems {hardware}. The present technology of IBM server {hardware} is each extremely performing and very dependable, with the numerous of deployments reaching precise availability close to seven-nines – 99.99999% – rivaled solely by mainframe platforms like Stratus and IBM Z.

The story of the AS400 actually begins with the IBM 1401 (extra 1401 History and 1401 Information) in 1959, the primary extensively fashionable laptop. By the mid-1960’s, nearly all of computer systems in existence had been IBM 1401’s. In 1964, IBM launched the well-known System/360 household of computer systems, a collection of suitable machines protecting all possibles use circumstances, a particularly radical idea on the time. Sadly (for IBM), even the low-end 360 methods had been too costly for a lot of 1401 clients (with the 1401 itself remaining obtainable till 1971). What IBM wanted was a minicomputer — a midrange system, in IBM lingo — more cost effective than an entry 360, and aggressive in opposition to the stubbornly fashionable Honeywell 200, additionally launched in 1964.

The primary IBM midrange system was the System/3 enterprise laptop launched in 1969, which was made obtainable for lower than half the price of the lowest-end S/360‑M20 mainframe. The System/3 was adopted by the System/32 in 1975. This was the system that launched the long-lasting IBM 5250 terminal, an enchancment on the earlier 2260 and 3270 fashions, and pioneered the totally built-in system software program idea. In 1977, the System/34 was launched as a multi-user and multi-tasking System/32 successor, and was rapidly adopted by the medium-scale System/38 in 1978 and the small-scale System/36 in 1983.

The AS/400 {hardware} (and OS/400 software program) was created in 1988 as mixture of the System/36 and System/38 product strains. The AS/400 used a singular layered system structure based mostly on the “Expertise Impartial Machine Interface”, or TIMI, which isolates the software program from the underlying {hardware} implementation, presenting a digital 128-bit instruction set because the abstraction. On the precise bodily {hardware} stage, the system was constructed on prime of a customized 48-bit CISC structure.

IBM AS/400 (B60) in 1988
IBM AS/400 (B60) in 1988

The AS/400 platform advanced into the iSeries, which changed the 48-bit CISC processor with a 64-bit PowerPC-based CPU, the RS64, a superset of the PowerPC incorporating many POWER ISA options. Due to the distinctive software program design, most consumer functions saved working with out modification and even recompilation to reap the benefits of the brand new 64-bit {hardware}.

In 2001, the POWER4 CPU was launched, merging the RS64 and POWER strains.

The POWER5 CPU got here in 2005, and together with it, a rebranding of the OS/400 software program to i5/OS, associating it with the brand new processor. In 2006, the {hardware} platform was renamed to System i. In 2007, the System i machines, by now IBM Energy Techniques servers with particular firmware, had been upgraded with POWER6 processors. Lastly, in 2008, i5/OS was renamed to only “IBM i”.

Whew! In fact, not everyone seems to be a fan of the most recent branding, and lots of, however definitely not all (archive.today, wayback) customers right now, when referring to the platform, nonetheless affectionately name it AS400 — most frequently (however not all the time) without the slash (archive.today, wayback) — and nonetheless consult with the working system as OS/400.

I don’t have sufficient area or data to put in writing a extra in-depth historical past of the AS400 platform, so in the event you’re fascinated about studying extra I like to recommend looking IBM’s AS/400 History website, and studying Tom Van Looy’s wonderful paper IBM AS/400: A Technical Introduction (wayback).

It’s now the 12 months 2024, 55 years after the 1969 launch of the System/3, and the IBM midrange platform continues to be going robust, whilst some disparage the system as a “dinosaur” and describe it’s modern-day adherents as cultists (archive.today, wayback).

IBM "AS400" (POWER10) in 2024
IBM “AS400” (POWER10) in 2024

In fact, none of that ought to deter our viewers of GE/Honeywell/Bull and Multics fanatics; in spite of everything, our beloved 600/6000-series computer systems originated with the GE M-235 system designed for the MISTRAM challenge — in 1955!

The AS400, whereas not sharing any direct heritage with Multics, does implement options that Multics customers can admire, equivalent to single-level storage, an MRDS-like built-in relational database administration system, and the objective of offering an always-on excessive availability computing utility.

DPS8M was ported utilizing PASE for i, a runtime setting that helps the applying binary interface (ABI) of the IBM AIX working system, enabling many AIX binaries to run on IBM i.

QP2SHELL:IBM PASE for i, the AIX-like environment
QP2SHELL:IBM PASE for i, the AIX-like setting

AIX binaries operating on PASE for i help the direct execution of POWER directions on the {hardware} itself, bypassing the standard consumer abstraction layer. This offers near-native efficiency for CPU-heavy workloads just like the DPS8M simulator, on the expense of future-proof portability on the platform.

I ought to point out that the feasibility of an Built-in Language Atmosphere (ILE) port using ILE C/C++ and the ASCII Runtime for IBM i was explored, however the thought was deserted.

Surprisingly, this was not due to any main inadequacies of the ILE compilers and setting (at the least not for our use), which offer a (giant, almost full) subset of C99 and C++0x and a few POSIX compatibility as nicely, however as a result of the benefit of working with PASE and the shut compatibility with AIX merely outweighed any potential advantage of the longer ILE porting course of.

It’s additionally onerous to argue with the near-native efficiency, and future upkeep efforts are anticipated to be minimal.

Since DPS8M formally helps AIX (since R3.0.0), using PASE meant that many of the porting work was already executed. Certainly, adapting our supply code and construct procedures to help the PASE for i setting was largely simple. That being stated, AIX isn’t PASE and PASE isn’t AIX, however for the subset of AIX interfaces and libraries supported, the runtime habits of PASE appears to be at the least 90% equivalent. Probably the most noticeable variations are in lower-level OS performance, like thread and course of precedence manipulation, filesystem semantics, shared library places, and reminiscence administration.

These variations are substantial sufficient to require DPS8M be constructed particularly for IBM i (at the least at the moment), relatively than with the ability to provide a single binary bundle that will work on each AIX and IBM i methods.

As a prerequisite to porting DPS8M itself, we would have liked to make certain that our main third-party dependencies had been supported and functioning.

  1. libuv, a conveyable excessive‑efficiency platform help library, with a concentrate on asynchronous‑I/O based mostly on occasion loops, initially developed to help the Node.js® runtime, and,

  2. libsir, the “Normal Incident Reporter” library, a light-weight, cross-platform library for data distribution (which can be used within the subsequent main model of the simulator).

  3. decNumber, an implementation the General Decimal Arithmetic Specification.

  4. We even have an elective dependency, libbacktrace, which does help AIX, however is non-functional within the PASE setting. This may increasingly or might not be capable of be overcome, however it isn’t a showstopper.

libuv is available from IBM, having been ported as a prerequisite of Node.js, which IBM helps on i. The RPM bundle could be put in with dnf or yum from PASE and has been used to efficiently construct the simulator. It may also be extracted and used to facilitate cross-compilation from Linux or AIX methods. Our built-in libuv-builder targets (gmake libuvrel, gmake libuvdev) could be be used when compiling on PASE utilizing GCC 10.3.0 (or later) or IBM XL C/C++ V16.1 (or later) from throughout the PASE setting. I’ve not but examined utilizing IBM Open XL C/C++, the brand new LLVM-based toolchain, however it could probably work as nicely.

decNumber is very transportable and completely impartial of most OS specifics. It doesn’t even want stdio. Whereas DPS8M contains an optimized subset of this library (implementing solely required performance) that required no modifications, the bottom PASE for i setting conveniently contains this library and related header recordsdata as nicely.

libsir required extra important modifications which can be found within the present git grasp department, and can be a part of the the upcoming v2.2.5 launch.

Multics MR12.8 on DPS8M on PASE for IBM i 7.5 (OS/400)
Multics MR12.8 on DPS8M on PASE for IBM i 7.5 (OS/400)

I used to be impressed with the general improvement and debugging expertise on IBM i. Anybody who’s snug with IBM AIX ought to really feel at residence in PASE. Simply think about a barely “weirder” (or maybe “quirky”) subset of AIX. The PASE setting offers the AIX model of the dbx debugger, which I’ve a powerful choice for, and the gdb debugger can also be obtainable and appears to work nicely, though I solely examined it along with gcc. If you happen to desire a GUI, there may be the (Java-based) IBM i Debugger which offers particular help for the PASE setting in addition to the ILE.

For the “traditional” facet of i (accessed through the 5250 interface), there are debugging instruments obtainable that proved very useful for this challenge. These embody screens the place you may simply watch real-time stack traces, see thread particulars, and monitor job standing. I even used the EDTF enhancing facility – very robust XEDIT vibes – and though it is extremely primary, it was greater than ample for fast modifications and is, after all, immediately responsive, even when the IBM i host is lagging (or extremely loaded), as a result of use the block/screen-oriented 5250 protocol. This got here in useful a number of occasions when my connection high quality was lower than very best. PASE packages may also name ILE (and vice versa) so porting with PASE is an efficient option to ease into working with ILE and IBM i basically.

Don’t let the inexperienced display scare you away from the platform!

There may be IBM Rational Developer for i (for Eclipse followers) and Code for IBM i (for VSCode followers). You possibly can work with the built-in database with IBM i Access ODBC from Linux, Home windows, and macOS desktops, and use IBM i ACS to entry IBM i utterly from an online browser (yuck).

The surprising factor is that I completely didn’t hate this method. In reality, I appreciated it. I appreciated it rather a lot. In all probability greater than I ought to have. I’m going to proceed to be taught extra in regards to the IBM i platform (outdoors of the PASE setting) and sit up for placing some i abilities on the resume.

Trendy IBM i powers many multibillion greenback companies right now (like Costco, with $245B in annual income). Now they’ll run Multics as nicely! :-)

Whereas I’m not going to vow IBM i builds in CI simply but, the modifications obligatory to construct on IBM PASE for i ought to land within the grasp git repo within the subsequent few days, and can be buildable below IBM PASE for i (that’s, on OS/400) utilizing GCC 10.3.0 (or later) or IBM XL C/C++ 16.1 (or later), and requires a minimal libuv model of 1.42.0. We’ve solely examined IBM i 7.5, however every thing ought to work on IBM i 7.4 as nicely. Cross-compilation is feasible and can be documented within the close to future.

NOTE: IBM i 7.3 and seven.2 may work, however are unsupported by us, so your mileage might fluctuate. IBM i 7.1 and beneath will virtually definitely by no means work. DPS8M has all the time focused AIX 7 and the PASE setting on 7.1 solely gives parity with AIX 6.1.

These binaries are compiled for POWER9, the minimal supported processor stage for IBM i 7.5. The prt2pdf and punutil utilities are included. The punutil utility requires the popt bundle to be put in through RPM.

This software program offered is experimental, and is distributed “AS IS”, WITHOUT WARRANTY OF ANY KIND, below the phrases of the ICU License.

A giant thanks is because of Holger Scherer of POWERbunker, RZKH GmBh for donating the assets that helped make this improvement potential.

If you happen to want industrial IBM i internet hosting, don’t hesitate to get in contact with them. You may as well check out their PUB400 service for restricted free public entry to IBM i for non-commercial use.

— Jeffrey H. Johnson

Source Link

What's Your Reaction?
Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0
View Comments (0)

Leave a Reply

Your email address will not be published.

2022 Blinking Robots.
WordPress by Doejo

Scroll To Top