5f70 Mainframe - Telecomix Crypto Munitions Bureau

Mainframe

From Telecomix Crypto Munitions Bureau

Jump to: navigation, search

Contents

[edit] IBM Z

IBM Z-series mainframes are used for corporate business and keeping track of valuable information. An example mainframe could be used to keep track of cargo, where cargo is, when to buy new cargo, where to send the cargo and the interface for other corporations to buy cargo.

Mainframes are mostly used by old people (40+). Unlike the rest of the entire computer industry, the only ones that knows how to use and program mainframes are almost at the age of retirement. Because of this, they are slowly being phased out at some corporations.

Because of IBM Z mainframes, COBOL is still a used language. Wikipedia says: "The COBOL specification was created by a committee of researchers from private industry, universities, and government during the second half of 1959."

Quite a lot of old women write COBOL for corporate mainframes. More than you would think. The reason for this is probably that at the age of mainframes, well before the personal computer, it was cool to do electronics but it was seen as boring to write software. Because of that, a lot of women were assigned the tasks. Nowadays its the opposite.

Ordinary IBM Z-series mainframes has anywhere between 16 and 1520 GB of RAM. Z-10 has up to 52 quad-core CPUs at 4.4GHz. They mostly have external storage devices: anything in between magnetic tapes and large disk arrays connected via fiber optics.

[edit] What do they do?

Unlike normal computers, they run batch jobs. These jobs are executed either in chains ("run this batch when these batch jobs are complete") or run at specific times during the day. The only user interaction with Z/OS is via weird 3270-terminals. It is pretty much pre-UNIX.

A batch job is something like "compute and sort a new group of shipments to be done, sort them depending on arrival date".

The jobs are named stuff like "PC4BKP-3", which never makes any sense at all for everyone but the programmer.

Files are not used. Instead, data set is the word being used.

[edit] Price

They cost more than any single human can ever pay.

Their pricing model is based on usage and certificates. If a corporation grows and needs to make more computations than before, they hire a set of new CPUs. The corporation then receives keys to unlock more of the mainframes already mounted CPUs, that already is in the machine. The mainframes are generally not owned by the corporations that use them, but rather rented from IBM.

something like: 300000€ + 10000€/month (Is this correct?)

[edit] Security

The mainframes themselves does not have very much security at all. Instead they are being protected by firewalls and put inside LANs, unreachable from the internets.

If you would be able to hack into a mainframe, the largest problem you would face would probably be to understand what you are doing in the terminal. It will not look like anything you have ever seen before, unless of course if you have seen IBM Z/OS. Simple stuff like copying a file is esotheric knowledge.

[edit] Z-series assembly language

  • Backwards-compatible to the 60ies or something.
  • It does not look like normal assembly.
  • Lines starting with // are NOT comments, as one might suspect. They are JCL-commands for how to load and run the program.

Example assembly program that I shamelessly ripped from a friend:

//NETJEASM JOB (ABC,DEPT),'JETEST1 ',CLASS=F,
//             NOTIFY=&SYSUID,MSGCLASS=H
//ASSEM   EXEC PGM=ASMA90,PARM='LINECOUNT(35)'
//SYSLIB   DD  DISP=SHR,DSN=SYS1.MACLIB
//         DD  DISP=SHR,DSN=SYS1.MODGEN
//         DD  DISP=SHR,DSN=ABC.PROD.DBMACSRC
//SYSUT1   DD  UNIT=SYSDA,SPACE=(1700,(400,40))
//SYSUT2   DD  UNIT=SYSDA,SPACE=(1700,(400,40))
//SYSUT3   DD  UNIT=SYSDA,SPACE=(1700,(400,40))
//SYSLIN   DD  DSNAME=&&OBJMOD,RECFM=FB,LRECL=080,
//             SPACE=(0400,(0100,100)),UNIT=SYSDA,DISP=(NEW,PASS)
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  *
JETEST1  CSECT
*        PRINT NOGEN
         PRINT NOGEN
YES      EQU   X'FF'
NO       EQU   X'00'
JA       EQU   X'FF'
NEJ      EQU   X'00'
         REGINIT
         PERFORM INIT
         PERFORM PROCESS
         PERFORM SLUT
         L     R15,RETCODE
         L     R13,4(R13)
         RETURN (14,12),RC=(15)
RETCODE  DC    F'0'
         EJECT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*        INIT    ÖPPNA FILER                                          *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
INIT     SUB
         OPEN  (SYSUT1,,SYSUT2,OUTPUT)
         MVC RETCODE,=F'4'
         SUBEXIT
         EJECT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*        PROCESS                                                      *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
PROCESS  SUB
*        DOWHILE CLI,=AL1(JA),JA,E DO WHILE: YES IS YES, EQUAL
         DOWHILE CLI,=AL1(YES),YES,E
           MVC RECORD,BLANKA
           GET SYSUT1,RECORD
           CASE
            WHEN CLC,=C'NÄSTAN',RECORD,E
             MVC RECUT(10),=C'ABSOLUT'
             MVC RETCODE,=F'4'
*             ** OBS! WE CHANGE THE RETURNCODE. **
             PUT SYSUT2,RECUT
           ENDCASE
           PUT SYSUT2,RECORD
         ENDDO
EOF      EQU   *
         SUBEXIT
         EJECT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*        SLUT    STÄNG FILER                                          *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
SLUT     SUB
         CLOSE (SYSUT1,,SYSUT2)
         SUBEXIT
SYSUT1   DCB   DSORG=PS,DDNAME=SYSUT1,MACRF=GM,EODAD=EOF
SYSUT2   DCB   DSORG=PS,DDNAME=SYSUT2,MACRF=PM
SKRIVES  DC    AL1(NEJ)
BLANKA   DC    CL150' '
RECORD   DS    CL150
RECUT    DC    CL100' '
         ORG   RECUT
MEMBER   DS    CL8
         DC    C': '
UTREF    DS    CL60
         ORG
         END   JETEST1
/*
//LNK     EXEC PGM=IEWL,PARM=(MAP),COND=(4,LT,ASSEM)
//SYSUT1   DD  UNIT=SYSDA,SPACE=(1024,(100,10))
//SYSLMOD  DD  DISP=SHR,DSN=NETENJO.TEST.LOAD
//SYSPRINT DD  SYSOUT=*
//SYSLIN   DD  DSNAME=&&OBJMOD,DISP=(OLD,DELETE)
//         DD  DDNAME=LENKIN
//SYSLIB   DD  DISP=SHR,DSN=NOV.PROD.FASLIB
//LENKIN   DD  *
 NAME JETEST1(R)
/*
//JETEST1 EXEC PGM=JETEST1,COND=(4,LT,ASSEM)
//STEPLIB  DD  DISP=SHR,DSN=NETENJO.TEST.LOAD
//SYSUT1   DD  *
TESTAR
LITE
PARSANDE
I
MITT
NÄSTAN
FÖRSTA
ASSEMBLERPROGRAM
/*
//SYSUT2   DD  SYSOUT=*,RECFM=FB,LRECL=100
//SYSUDUMP DD  SYSOUT=*

[edit] Emulator

The Hercules emulator is publicly available.

Hercules implements only the raw S/370, ESA/390, and z/Architecture instruction set; it does not provide any operating system facilities. This means that you need to provide an operating system or standalone program which Hercules can load from an emulated disk or tape device. You will have to write the operating system or standalone program yourself, unless you can manage to obtain a license from IBM to run one of their operating systems on your PC, or use IBM programs and operating systems which have been placed in the public domain.

Software might be found here.

[edit] PNR

The Passanger Name Record, used for keeping track of who has been traveling where, and at which time, since the dawn of digital airline ticket systems in the 80ies (data is never erased), is kept by a small number of IBM Z mainframes. They are mostly located in the USA.

  • The European Union and USA negotiate exchange of PNR data, 2011. [1]
    • October 26+ is agreement dates

[edit] Data retention directive

HP DRAGON (short for "Data Retention and Guardian ONline") is a network of computers that is being sold by Hewlett Packard as a solution for telecom operators to handle the data retention directive. It is described as a somewhat distributed mainframe in their brochures. It is used for telephone and mobile-phone surveillance.

[edit] How they look like?

Image:Licking-the-mainframe.jpg

TCMB agent licking a Z9 mainframe.

Personal tools
0