Skip to content
This repository was archived by the owner on Jun 27, 2024. It is now read-only.
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 133 additions & 0 deletions pages/s390.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
---
title: System/390
tags: s390, zarch, z11, s360, s370
category: Hardware
description: A general overview of the System/390 architecture
source-language: c
---

== Overview
+
* Contrary to popular belief the S/3X0 supports ASCII, an example of this is z/Linux which
uses it natively
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No lists consisting of single items.
Comma after "belief". Full stop after "natively".


The S/390 is part of the S/3X0 family, however most of the S/390's capabilities and
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would put a full stop after "family".

code can be reused on later and previous models such as the S/360, S/370, S/370-XA
and z/Arch (using the ESA/390 compatibility mode). Through this article the collective
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Throughout" instead of "through".

family will be referred as S/3X0.

S/360:: The first System/3X0 mainframe.
S/370:: A 24-bit mainframe, sucessor and backwards compatible with S/360.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"successor to", instead of "sucessor"

S/370-XA:: An expanded 24-bit mainframe with support for DAT out-of-the-box; backwards
compatible with S/370.
S/390:: The 31-bit mainframe computer, most of the equipment of the original systems is
absent on this new version, instead the equipment is emulated using generic ATA or SCSI
hard-disks; backwards compatible with the S/370-XA.
S/390X:: 64-bit mainframe, this mainframe operates entirely using LPARS and makes heavy
usage of its virtualization capabilities; backwards compatible with the S/390.

== Key Terms
The mainframe has an extensive and unique history - and as such it doesn't commonly
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doesn't -> does not

use terminology from the standard computer or embedded world.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

replace "- and as such" by comma by ", and, as such,"


HFP (Hardware Floating Point):: The extension that allows native floating point support.
DAT (Dynamic Address Translation):: Paging
Channel:: Subsystem I/O, DMA I/O
Storage:: Random Acess Memory (RAM)
Facility:: Extensions
DASD (Direct Access Storage Disk):: A hard disk.
TAPE:: Typically a circular tape reel. On modern machines its an emulated TAPE reel, the TAPE
is structurally different from a DASD and as such it can't be used interchangeably on older
systems.
Catalog:: A dataset containing an index of other datasets on the disks - mainly used to
refer the dataset by their DSNAME rather than by their full path on MVS and DOS/VS.
PU:: A physical CPU (Central Processing Unit).
SVC:: Supervisor Call.
Principles Of Operation:: is the main manual and "architecture-reference" document,
often abbreviated as The POP.
Recognized:: An interrupt being fired up and *recognized* by the CPU.
Real Storage:: Physical memory.
Virtual Storage:: Virtual memory.
S390X:: An alternative name for z/Arch.
Dataset:: A set of data, commonly referring to a file on the disk.
DSNAME:: Dataset Name.
VOLSER:: Volume Serial.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistently structured list: some items are full sentences, others are just nouns, some end with a full stop, some don't. Unless proper names, some items are capitalized incorrectly.


== CKD Disk
Similarly to CHS (Cylinder-Head-Sector) disks, the CKD (Count-Key-Data) can be
addressed using 3 levels:
Record:: A record is an unit for addressing a disk, typically, there are multiple
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Full stop before "typically".

records per track depending on the track's size and the size of the records themselves.
Track:: A track contains various records, the size of a track is fixed and the last record
is used to fill the remainder data (in the case where the track isn't divisible by whole
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isn't -> is not

records).
Cylinder:: A cylinder can hold various tracks, this is the biggest unit for a CKD disk
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Full stop before "this".

and has a fixed amount of tracks.

== FBA Disk
FBA (Fixed-Block-Addressing) disks operate on a similar fashion to their PC counterparts.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"in" not "on"


== IPL
The general procedure for running the mainframe is to IPL (Initial-Program-Loader) from a
telephone-dial circle. Selecting the device number corresponding to the disk, typically
its 1B9 on a lot of places. After that the operator will press the "IPL" button on the machine.

Real mainframes can take from 30 seconds to 30 minutes to start, as they're not meant to
shutdown/restart constantly.

Under the hood, the mainframe will load the first cylinders of a disk onto the storage. For S/390
and previous models the amount of loaded data from the disk is 4096 bytes, for z/Arch its 8192.

From that point onwards, its the programmer's responsability to perform what it wishes to do,
the IPL is always going to be smaller than a single record.

== HLASM

+
* The S/3X0 can be catalogued as a CISC architecture, it offers a wide repertoire of instructions
each with a specific purpouse, mostly related to transactional operations.

S/3X0 has various assemblers:
z390:: An assembler written in Java.
GNU AS:: Binutils implementation of S/3X0 assembly, not compatible with normal HLASM
except on i370 targets.
IF0X0:: Vanilla assembler provided by TK-4 and MVS3.8j.

== Programming paradigms

S/3X0 was commonly used along with procedular languages regularly, however they
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

procedular -> procedual
comma after "however"

all shared common terminology, such as:

Character:: 8-bits storage area.
Halfword:: 16-bits storage area.
Word:: 32-bits storage area.
Double word:: 64-bits storage area.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pretty sure "bit" is singular in this case.

Define Storage (DS on HLASM):: Uninitialized data definition.
Define Character (DC on HLASM):: Initialized data definition.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"storage" and "character" should probably not be capitalized.

Procedure:: A function.

== Input/Output
The Channel Subystem I/O is used instead of the PIO (Polling I/O) or MMIO (Memory-Mapped
I/O); it operates based around batch processing and non-blocking I/O while keeping the
transactional and reliability aspect.

== Example OSes
Many public domain Operating Systems exists for the mainframe, due to their publicly accessible
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exists -> exist
"operating systems" lower case
Are you sure all the OSes listed are public domain?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only MVS3.8J, TK-4, PDOS/3X0 are public domain, the rest are GPL/BSD, will remove 'em

nature, they're used as a reference and potential learning resources:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

they're -> they are


MVS:: Multiple Virtual Storage. An Operating System that could isolate programs into different
address spaces.
DOS/VS:: Direct Operating System with Virtual Storage. An small operating system resembling
MVS in functionality.
TK-4:: A distrobution of MVS3.8j, includes the SPF editor (with support for lowercase characters
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

distrobution -> distribution

and punch-card reordering).
MTS:: Multi-Task System, self descriptive, one of the first instances of a multitasking OS in
computer history.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This definitely needs a source, I couldn't find any mainframe OS with this name.
I could only find a S/360-67 and S/370 OS from 1967 called "Michigan Terminal System (MTS
)"

PDOS/3X0:: A public domain OS for S/390 mainframes, there is also z/PDOS with support for z/Arch.
z/Linux:: Linux has native support for S/390X (and S/390) on the mainstream branch.

== External links

* https://www.ibm.com/docs/en/SSQ2R2_15.0.0/com.ibm.tpf.toolkit.hlasm.doc/dz9zr006.pdfe[z/Arch Principles of Operation Manual]
* http://bitsavers.org/pdf/ibm/370/princOps/SA22-7085-1_370-XA_Principles_of_Operation_Jan87.pdf[S/370 Extended Principles Of Operation Manual]
* https://www.kernel.org/doc/html/v5.3/s390/debugging390.html[Debugging z/Linux on the S/390]