Getting Started on Mainframes Part 1

Cadmus
3 min readMar 15, 2023

--

One of my primary avenues of research over the last year has been mainframe systems. When discussing my research, a question I often get asked is “How are you doing that?”. Mainframes cost 6–7 figures and a home personal license for a development environment is around 6k a year.

This is obviously well outside the range of “personal research”. Thankfully, there is a free and perfectly legal way to learn about mainframes on your home computer.

MVS 3.8 is a precursor to the modern Z/OS line of mainframe operating systems. Additionally it has some subsystems that are analogous to the modern Z/OS subsystems, most notably RAKF (for RACF) and KICKS (for CICS). These subsystems work essentially the same as their modern counterparts and what you learn on MVS 3.8 can often be directly applied (or with minimal changes) to a Z/OS system.

There are numerous ways to obtain MVS 3.8 but the most common by far is using the Tur(n)key 4 system. This bundle includes everything needed to run MVS 3.8 packaged in a single downloadable zip file.

To get the system up and running:

1. Download a 3270 emulator of your choice

2. Download the most recent TK4- version

TK4 download

3. Extract the zip file to a location of your choosing

4. Run the mvs binary

This is for a Linux install

5. Connect to your MVS 3.8 instance using the emulator of your choice on 127.0.0.1:3270

$ c3270 127.0.0.1:3270

6. Once the login page is displayed, login using the default user of herc01/cul8tr

The default user login

While this works fine, there are a couple of issues with TK4-. The first is that it uses this custom list of TSO applications:

TK4 main menu

However, this is not what you are likely to see on a modern Z/OS system. Instead you will be met with the ISPF application:

ISPF main menu

Additionally, the distro has not been updated in a number of years and lacks a number of useful features.

Thankfully, the MVS community has come together to release MVS Community Edition which fixes these issues. While you can absolutely do a system generation yourself and build it, there is a handy docker image available to do all the work for you

Simply run the following command to pull and start it (the explanation of each parameter is on the docker page):

docker run -d \
--name=mvsce \
-e HUSER=docker \
-e HPASS=docker \
-p 2121:3221 \
-p 2323:3223 \
-p 3270:3270 \
-p 3505:3505 \
-p 3506:3506 \
-p 8888:8888 \
-v /opt/docker/mvsce:/config \
-v /opt/docker/mvsce/printers:/printers \
-v /opt/docker/mvsce/punchcards:/punchcards \
-v /opt/docker/mvsce/logs:/logs \
-v /opt/docker/mvsce/dasd:/dasd \
-v /opt/docker/mvsce/certs:/certs \
--restart unless-stopped \
mainframed767/mvsce

Once the image is up and running, connect to it over 127.0.0.1:3270 same as before.

MVS/CE

Once this is all done, you will have a fully functional mainframe for you to login and learn with.

In the next article, I will go over what to do once you actually get logged in, specifically working with ISPF and data sets.

--

--

Cadmus

I am a lead security researcher for a financial institution where I focus primarily on applications, mainframes, and IVR systems.