v4.9.1  ·  AIX 7.2+  ·  ppc64

Run a 1970s
mainframe
on AIX.

# hercules-4.9.1  ·  System/370 · ESA/390 · z/Architecture  ·  IBM POWER ppc64

!
No guest networking — and that's fine
AIX doesn't support TUN/TAP, so CTC/LCS/QETH adapters don't work. Your MVS instance runs in glorious isolation. Connect via 3270 terminal. This is a curiosity project, not a production setup.
SDL Hyperion 4.9.1 GCC 13.3.0 · -maix64 QPL license 128 CPUs emulated No networking (AIX TUN/TAP)
The unexpected advantage

POWER and z/Architecture
speak the same byte order.

Both IBM POWER and z/Architecture are big-endian. Running Hercules on AIX eliminates the byte-swap overhead that x86 Linux pays on every memory access into the emulated mainframe. It's a genuinely sensible architectural match — which makes this even more absurd to be doing in 2025.

Why this matters
Zero byte-swap overhead
x86 Linux flips every multi-byte value. POWER reads mainframe memory natively.
Native 64-bit XCOFF binary
Not a Linux port. Compiled for AIX with GCC 13.3.0 targeting -maix64.
Shared heritage
IBM POWER and IBM Z. Same company, same byte order. Running z/Arch on POWER is oddly fitting.
byte order comparison
z/Architecture (big-endian)
0x00
0x01
0xDE
0xAD
most-significant byte first
IBM POWER AIX (big-endian)
0x00
0x01
0xDE
0xAD
same layout — zero overhead ✓
x86 Linux (little-endian)
0xAD
0xDE
0x01
0x00
bytes flipped — swap overhead on every access
POWER reads mainframe memory as-is. x86 doesn't.
In action

From zero to MVS
in four commands.

Install, create a DASD volume, write a config, start Hercules. Then connect a tn3270 terminal emulator to port 3270 and IPL your OS.

aix-prod-01 — hercules session
# 1. Install via DNF
root@aix7 # curl -fsSL https://aix.librepower.org/install.sh | sh
root@aix7 # dnf install hercules
✔ hercules-4.9.1-1.librepower installed
 
# 2. Check version
root@aix7 # hercules --version
Hercules SDL Hyperion 4.9.1
Built with GCC 13.3.0 (-maix64)
 
# 3. Create a 3390 DASD volume
root@aix7 # dasdinit -a myvol.3390 3390-1 VOL001
HHCDU044I Creating 3390 type...
HHCDU041I 555 cylinders successfully
# 4. Minimal config → myconfig.cnf
CPUSERIAL 000001
CPUMODEL 3906
MAINSIZE 64
ARCHMODE z/Arch
CNSLPORT 3270
NUMCPU 1
 
# 5. Start Hercules
root@aix7 # hercules -f myconfig.cnf
HHC00100I Hercules version 4.9.1
HHC00150I ARCHMODE z/Arch
HHC01603I Connect tn3270 to :3270
HRC>

For MVS 3.8j, grab the free MVS/TK5 turnkey — the easiest way to boot a real IBM mainframe OS.

What you can run

50 years of IBM mainframe.
One binary.

Hercules emulates three generations of IBM mainframe architecture in a single executable.

1970–1980s
System/370
MVS 3.8j — the free classic. Run via MVS/TK5 turnkey.
VM/370 — IBM's original virtual machine OS.
DOS/VSE, OS/VS1.
1988–1990s
ESA/390
MVS/ESA — extended storage addressing.
OS/390 — precursor to z/OS.
VM/ESA, VSE/ESA.
2000–present
z/Architecture
z/OS — modern IBM mainframe OS.
z/VM, z/VSE — current virtual environments.
Linux on z — also runs.
Included utilities

Not just the emulator.
The full toolkit.

DASD management, tape utilities, compression tools — everything to manage mainframe disk and tape images on AIX.

hercules
Main IBM mainframe emulator
dasdinit
Create empty DASD images (3390, 3380)
dasdload
Load DASD from card deck
dasdcopy
Copy and convert DASD images
dasdls
List DASD volume contents
dasdcat
Extract PDS members from DASD
hetinit
Create tape images
hetget
Extract from HET tape images
tapecopy
Copy tape images
cckdcdsk
Check CCKD image integrity
cckdcomp
Compress CCKD images (BZIP2/ZLIB)
convto64
Convert CCKD to CCKD64 format
Configuration

Minimal config.
Boot in minutes.

Create myconfig.cnf, point at your DASD image, start Hercules, connect tn3270 to localhost:3270.

myconfig.cnf minimal z/Architecture setup
# CPU + memory
CPUSERIAL 000001
CPUMODEL  3906
MAINSIZE  64          # MB of emulated RAM
ARCHMODE  z/Arch      # or S/370 or ESA/390
NUMCPU    1           # up to 128

# 3270 console — connect via tn3270 to localhost:3270
CNSLPORT  3270

# HTTP operator console (optional)
HTTPPORT  8081 noauth

# Your DASD image (create with dasdinit first)
0100 3390 myvol.3390

# Start Hercules:
hercules -f myconfig.cnf
Known limitations

What doesn't work.
And why that's okay.

This is a curiosity project. Knowing the limits upfront saves you from false expectations.

// NO_NETWORK
No guest networking
AIX doesn't support TUN/TAP devices. CTC, LCS, and QETH adapters don't work — your guest OS has no network. Console-only via 3270. Think of it as an air-gapped mainframe. Very authentic.
// PCLMULQDQ
PCLMULQDQ warning on startup
Hercules checks for this x86-specific crypto instruction on startup. POWER doesn't have it. The warning is harmless — crypto works fine via /dev/urandom. Just ignore it.
// AIX_73_ONLY
Tested on AIX 7.2+
Built and tested on AIX 7.2 and 7.3. AIX 7.1 may work but is not confirmed. If you test it, let us know on GitLab.
// FOR_FUN_ONLY
Not a production tool
Running Hercules on a production AIX system is perfectly fine technically, but the emulated mainframe without networking has obvious use-case limits. This is for learning, nostalgia, and bragging rights.
FAQ

Questions

What is the Hercules mainframe emulator?
Hercules is an open-source IBM mainframe emulator that runs System/370, ESA/390, and z/Architecture operating systems — including MVS 3.8j, z/OS, z/VM, and z/VSE — on modern hardware. The LibrePower port brings it to IBM AIX ppc64 as a native binary.
Why run Hercules on AIX instead of Linux?
POWER and z/Architecture share big-endian byte order, eliminating the byte-swap overhead x86 Linux pays on every memory access into the emulated mainframe. It's also a native 64-bit XCOFF binary — not a Linux port running under compatibility layers.
Does Hercules on AIX support networking?
No. AIX doesn't support TUN/TAP devices, so CTC, LCS, and QETH network adapters are unavailable. Your guest OS runs without network connectivity. Console access works via 3270 terminal emulator on the configured port.
Which mainframe operating systems can I run?
S/370: MVS 3.8j (via MVS/TK5 turnkey), VM/370, DOS/VS. ESA/390: MVS/ESA, OS/390. z/Architecture: z/OS, z/VM, z/VSE, Linux on z. MVS 3.8j via TK5 is the easiest starting point — it's free and pre-configured.
What is the PCLMULQDQ warning?
Hercules checks for this x86-specific crypto instruction at startup. POWER doesn't have it. The warning is harmless — crypto works correctly on AIX via /dev/urandom. You can safely ignore it.
How do I get MVS 3.8j running?
Download the free MVS/TK5 turnkey system. It includes pre-configured DASD images and a working Hercules config. Extract, point Hercules at the config file, connect a tn3270 emulator to port 3270, and IPL from the boot DASD.

Boot MVS 3.8j
on your AIX system.

For the curious. For the nostalgic. For the "wait, that actually works?" moment. QPL license, free RPM, LibrePower AIX repo.

LibrePower Newsletter New AIX packages, technical articles, community updates.