MENU

来自z/OS的你好世界

March 12, 2018 • 程序阅读设置

前言

作为改变现代人类生活的85项重大发明之一,IBM大型机被广泛应用于金融、电信、交通、能源等支柱行业。我校拥有IBM新型的64位Z系列大型机一台,是“IBM主机系统大学合作项目”中唯一一所华南地区院校。目前IBM主机系统教育中心(广州)开设5门IBM大型机课程,分别是:《IBM主机系统和操作系统导论》、《CICS事务处理》、《COBOL语言》、《IBM zSeries DB2》、《大型主机系统管理》。这五门课程相关性大,完成所有课程的学生IBM公司将颁发主机教育Professional Certification证书,完成一门以上但未完成所有课程的学生颁发Specialist Certification证书。

这是我校《COBOL语言》课程介绍的全部内容。当初因为好奇选择了这一门课程,正式开课后没想到IBM的大型机的概念完全超出了脑内能够想象的范围。并且由于时代潮流等原因,大型机技术也逐渐出现了式微的态势,Professional Certification大概是想都不用想了。

课程要求所有的实验均在zSeries大型机上完成,原本以为这会是一种类似于UNIX的体验,结果发现IBM的整套理论完全与我们常见的UNIX-like或Windows不同。在这里给大家展示 Hello World 的过程,也算是一种“科普”吧。

我录制了一段带解说的视频,它展示了“登入-创建数据集-编写代码-提交作业-查看结果-登出”的整个流程,可以在下方直接播放。对于不喜欢Flash的读者,可以前往哔哩哔哩动画网观看,av号是av20649933;也可以前往YouTube网观看,这是链接

全过程

连接至 System z10

课程提供了一份IBM的PCOM(Personal Communications)软件,但是PCOM仅能用于Windows操作系统。事实上我发现需要的是一款3270终端仿真器而已,于是我找到了tn3270 X,它可以在macOS上运行,虽然对于缩放完全不支持,但是体积小、功能全,是个很好的替代品。

连接到主机之后选择TSO,输入用户名和密码,进入TSO/ISPF(Time Sharing Option/Interactive System Productivity Facility)。

ISPF

这就是我们与z/OS交互的工具。

创建两个数据集

接着创建两个数据集。那么什么是数据集(Data Set)呢?在IBM大型机的概念中,数据集是逻辑上相关的数据集合,顺序数据集类似于一个“文件”,分区数据集类似于一个“目录”。

首先创建一个用来存放代码的数据集。

Alloc DS 1

Alloc DS 2

同理创建一个LOADLIB数据集存放生成的可执行模块。

编辑代码

COBOL

COBOL.SOURCE中新建一个成员,比如COBOL.SOURCE(LAB1),并且把代码写进去。这个编辑器的使用感受真是奇妙……

        IDENTIFICATION DIVISION.
        PROGRAM-ID.    HELLOCOBOL.
        ENVIRONMENT    DIVISION.
        DATA           DIVISION.
        PROCEDURE      DIVISION.
            DISPLAY "HELLO COBOL!".
            STOP RUN.

COBOL SOURCE

JCL

JCL(Job Control Language)是一种IBM大型机的脚本语言,它告诉系统应该如何运行一系列批处理作业。为了读取SCUT175.COBOL.SOURCE(LAB1)的源码并把生成的目标输出到SCUT175.LOADLIB(LAB1),我们可以这么写JCL:

//COMP1 JOB 1,TF,CLASS=1,MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID
//STEP1 EXEC PROC=IGYWCLG
//COBOL.SYSIN DD DSN=SCUT175.COBOL.SOURCE(LAB1),DISP=SHR
//LKED.SYSMOD DD DSNAME=SCUT175.LOADLIB(LAB1),DISP=SHR

写完之后,在编辑器下方的Command处执行SUBMIT提交这个作业。作业的详情可以返回ISPF首页,然后进入SDSF(System Display and Search Facility)查看详情或者进行更多操作。

CALL

进入ISPF的3.4,可以列出数据集,查看LOADLIB中的成员列表,看到LOADLIB(LAB1)已经出现了。在前面执行CALL,运行这段程序。
CALL LOADLIB

登出

一路按F3可以退出ISPF,它会问你如何处理操作日志。选择合适的选项,并且确认后就登出了ISPF。再输入并执行LOGOFF也就登出了TSO,连接随之断开。
LOG DATA SET PROMPT

Archives Tip
QR Code for this page
Tipping QR Code