Welcome to OS/380 - the family of freely-available 31-bit mainframe operating systems which currently includes MVS/380, VM/380 and VSE/380

If you have an MVS application that uses a large amount of memory (e.g. the MVS version of GCC needs about 20 MB of memory for data on top of the 3 MB for the executable itself when compiling large programs such as itself), then you will require a 31-bit version of MVS that allows more than 16 MB (24-bit) of memory to be addressed. Unfortunately the last freely-available version of MVS (MVS 3.8j in 1981), only did 24-bit addressing. The first 31-bit version was MVS/XA which was released in 1983 and copyrighted.

However, with a modification to the standard Hercules emulator, it was possible to create a new product (note - this new product is not supported, controlled or in any way endorsed by the official Hercules development team), called Hercules/380, to support a new architecture, called S/380, which in turn allowed modifications to standard IBM MVS 3.8j, to create a new operating system (note - this new operating system is not supported, controlled or in any way endorsed by IBM), called MVS/380. This new operating system allows (some) 31-bit z/OS (what MVS is now marketed as) modules to execute on the (still mostly) 24-bit operating system. Those "some" applications include GCC and pretty much any standard C program compiled with PDPCLIB with the appropriate options. Hercules/380 in the actually allows (some) 64-bit programs to run too. You can run programs using the 64-bit registers and you can run AM64 programs that write to memory above 4 GiB. Also there is an option to run 31-bit programs in AMODE 32, allowing the programs to access 4 GiB of memory, and even a single malloc() of 3 GiB or more can be done. Obviously anything you can do in C you can do in assembler too, so assembler programs can make use of this technique, but most existing assembler programs would not do that. Note that actual binary compatibility is provided, such that you can pick up a z/OS load module (so long as it only used the subset of z/OS services documented in the MVS/380 Principles of Operation) and XMIT or unload it, completely unchanged, to MVS/380 for execution. Most credit for this goes to Gerhard Postpischil. VM/380 was also added to the OS/380 family thanks mainly to Robert O'Hara, and as of sixpack 1.2 is now incorporated into the standard VM/370 Sixpack distribution. And finally VSE/380 has also been created.

Hercules/380, MVS/380 and VSE/380 are all available via sourceforge, in the "files" link (get the MVS/380 2.0a which removes an optional executable that Sourceforge identifies as potential malware). It is very important that you read the README.S380 inside the Hercules/380 distribution. Especially Linux users. There is also a readme2.txt in MVS/380 and readme.txt in VSE/380. Most people who try to guess their way past the readme files seem to have difficulty. YMMV. The readme files are usually updated whenever someone goes wrong after having followed them, so please report any negative experiences so that they can be improved.

MVS/380 is currently based on top of turnkey-mvs (a distribution of MVS 3.8j from Volker Bandke and others) and TK3UPD from Phil Roberts.

VSE/380 is the standard DOS/VS 5-pack plus the VSE/380 shadow files. See the DOS/VS group for support. MUSIC/SP allows 31-bit programs too, and the flagship GCC has been successfully ported to that environment.

All source code is available, but it is generally spread over a large number of areas (since it comes from different places). Some of those places are MVS/380 GCCMVS PDPCLIB BWBASIC BREXX FSF

Being a volunteer project, it is fairly unpredictable where the next advance is going to come from. But this is without doubt a living and fascinating (if sometimes controversial!) project and anyone is welcome to join in regardless of skill level. Some things do not require programming skills such as installing products or releasing a new version or updating documentation or testing. Even the programming has a wide variety from system level to utilities to applications. One interesting area is bringing the assembler source code up-to-date by running disassemblies and doing intelligent matching.

Discussion of the 380 environment takes place here. Technical documentation and history for OS/380 can be found here. And the slides from a SHARE presentation by Jay Maynard can be found here for another view of the technology (it describes an older version though, so only use it as a rough guide).


E-mail Paul Edwards here.