From 197d57a314ac0c88be2693826e834af5b7bdafd8 Mon Sep 17 00:00:00 2001 From: superleaf1995 Date: Sun, 29 May 2022 23:55:26 -0700 Subject: [PATCH 1/2] new: s390 article --- pages/s390.adoc | 133 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 pages/s390.adoc diff --git a/pages/s390.adoc b/pages/s390.adoc new file mode 100644 index 0000000..839c929 --- /dev/null +++ b/pages/s390.adoc @@ -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 + +The S/390 is part of the S/3X0 family, however most of the S/390's capabilities and +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 +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. +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 +use terminology from the standard computer or embedded world. + +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. + +== 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 +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 +records). +Cylinder:: A cylinder can hold various tracks, this is the biggest unit for a CKD disk +and has a fixed amount of tracks. + +== FBA Disk +FBA (Fixed-Block-Addressing) disks operate on a similar fashion to their PC counterparts. + +== 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 +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. +Define Storage (DS on HLASM):: Uninitialized data definition. +Define Character (DC on HLASM):: Initialized data definition. +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 +nature, they're used as a reference and potential learning resources: + +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 +and punch-card reordering). +MTS:: Multi-Task System, self descriptive, one of the first instances of a multitasking OS in +computer history. +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] From d5d8b7fbbe510ae9f99080fe2c820b413251c065 Mon Sep 17 00:00:00 2001 From: superleaf1995 Date: Tue, 14 Jun 2022 18:22:52 -0700 Subject: [PATCH 2/2] fix: s390 document to resolve grammar & rdaction issues --- pages/s390.adoc | 66 +++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/pages/s390.adoc b/pages/s390.adoc index 839c929..cfa2c8c 100644 --- a/pages/s390.adoc +++ b/pages/s390.adoc @@ -7,17 +7,16 @@ source-language: c --- == Overview -+ -* Contrary to popular belief the S/3X0 supports ASCII, an example of this is z/Linux which -uses it natively +Contrary to popular belief, the S/3X0 supports ASCII, an example of this is z/Linux which +uses it natively. -The S/390 is part of the S/3X0 family, however most of the S/390's capabilities and +The S/390 is part of the S/3X0 family. However most of the S/390's capabilities and 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 -family will be referred as S/3X0. +and z/Arch (using the ESA/390 compatibility mode). Throughout this article the +collective 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. +S/370:: A 24-bit mainframe, successor to and backwards compatible with S/360. 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 @@ -27,16 +26,16 @@ S/390X:: 64-bit mainframe, this mainframe operates entirely using LPARS and make 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 +The mainframe has an extensive and unique history, and as such it does not commonly use terminology from the standard computer or embedded world. 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 +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 +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 @@ -56,16 +55,16 @@ VOLSER:: Volume Serial. == 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 +Record:: A record is an unit for addressing a disk. Typically there are multiple 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 +is used to fill the remainder data (in the case where the track is not divisible by whole records). -Cylinder:: A cylinder can hold various tracks, this is the biggest unit for a CKD disk +Cylinder:: A cylinder can hold various tracks. This is the biggest unit for a CKD disk and has a fixed amount of tracks. == FBA Disk -FBA (Fixed-Block-Addressing) disks operate on a similar fashion to their PC counterparts. +FBA (Fixed-Block-Addressing) disks operate in a similar fashion to their PC counterparts. == IPL The general procedure for running the mainframe is to IPL (Initial-Program-Loader) from a @@ -95,15 +94,15 @@ IF0X0:: Vanilla assembler provided by TK-4 and MVS3.8j. == Programming paradigms -S/3X0 was commonly used along with procedular languages regularly, however they +S/3X0 was commonly used along with procedual languages regularly, however, they 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. -Define Storage (DS on HLASM):: Uninitialized data definition. -Define Character (DC on HLASM):: Initialized data definition. +Character:: 8-bit storage area. +Halfword:: 16-bit storage area. +Word:: 32-bit storage area. +Double word:: 64-bit storage area. +Define storage (DS on HLASM):: Uninitialized data definition. +Define character (DC on HLASM):: Initialized data definition. Procedure:: A function. == Input/Output @@ -112,18 +111,21 @@ I/O); it operates based around batch processing and non-blocking I/O while keepi transactional and reliability aspect. == Example OSes -Many public domain Operating Systems exists for the mainframe, due to their publicly accessible -nature, they're used as a reference and potential learning resources: +Many public domain operating systems exist for the mainframe, due to their publicly accessible +nature, they are used as a reference and potential learning resources: -MVS:: Multiple Virtual Storage. An Operating System that could isolate programs into different +MVS:: Multiple Virtual Storage. A 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 +TK-4:: A distribution of MVS3.8j, includes the SPF editor (with support for lowercase characters and punch-card reordering). -MTS:: Multi-Task System, self descriptive, one of the first instances of a multitasking OS in -computer history. PDOS/3X0:: A public domain OS for S/390 mainframes, there is also z/PDOS with support for z/Arch. + +Other systems exists which are not nescesarily public domain but can be used for free: + +MTS:: Michigan-Terminal-System, self descriptive, one of the first instances of a multitasking OS in +computer history. +DOS/VS:: Direct Operating System with Virtual Storage. A small system resembling +MVS in functionality. z/Linux:: Linux has native support for S/390X (and S/390) on the mainstream branch. == External links