
七十年代中期,我父亲在密歇根州的一家美国汽车公司工作,我小时候经常去他工作的地方看他。他带我进了“计算机房”(当时数据中心都这么叫),让我坐在当时地球上最大、最强大的系统——IBM System/370的终端前。那里有一排排闪烁的指示灯、开关和指示器。他让我敲键盘或者拨动开关,系统的指示灯就会随之变化,然后真正的程序员们就继续工作了。
System/370 是其前身 System/360 的后续机型,而 System/360 的问世是计算机发展史上的一个重要转折点。我不确定我父亲的公司具体使用的是哪一款 System/370,但很可能是 303x 系列中的一款。1978 年,IBM 宣布将推出 303x 系列的多处理器版本,为客户提供双核处理器。我相信这应该是我们今天所理解的最早的多处理器系统之一。当时使用的是 24 位计算——31 位计算还要过几年才会出现。
要想拥有这样一台双核高性能电脑,签订48个月的分期付款协议,8MB内存版本每月大约需要支付154,130美元,16MB内存版本则需要每月支付182,130美元。当然,你也可以一次性支付7,160,000美元或8,050,000美元,直接拥有它。这笔费用包含了CPU、内存、两台游戏机以及电源和散热设备。硬盘、更多终端(这里没有现代意义上的“局域网”)、读卡器、软盘等等都需要额外付费。
2022年,我们大多数人听到16MB内存都会嗤之以鼻。但我曾与一些老前辈交流过,他们说当年仅凭一个CPU和8MB内存,他们就能轻松支持数百(没错,是数百! )个在线用户同时进行工作,同时还要处理批处理任务,同时与数十台打印机通信,并与一大堆老旧的I/O设备(例如SNA终端、通信多路复用器等等)进行交互。这些人运行应用程序、编译程序、提交作业等等,维持着企业的正常运转。这还是在“客户端/服务器”模式出现之前。所有人都登录到同一个系统。之所以能用如此少的资源完成这么多工作,是因为大型机的运行方式与Unix或Windows截然不同。
请记住,大型机的起源可以追溯到操作系统出现之前的时代。事实上,你甚至可以在20世纪60年代的黑白影像中看到身着蓝色西装(好吧,确切地说是黑白影像)的IBM技术员解释什么是“监控程序”(操作系统),因为这在当时是一个全新的概念。大型机的发展历程横跨了纯粹的机械时代(二战前),那时计算机主要是复杂的卡片分拣机,需要将成捆的纸张放入其中进行处理;而如今,计算机发展到了一个“始终有程序在运行”(操作系统,或者用60年代的话来说就是“监控程序”)的虚拟世界。在20世纪40年代和50年代,计算机技术与“搭建电子电路”的原理相差无几,但随着50年代和60年代的发展,大型机逐渐演化出了现代计算机技术。
为了说明过去的情况有多么不同,IBM 最初使用的是非易失性 RAM:你可以关闭系统电源,移动它,然后再插上电源,它就能回到你之前的状态。无需启动或其他任何操作,它就和你关机时一模一样(如今,使用的是动态 RAM)。许多硬件组件已被拆分成子单元。例如,有一些专用组件可以让多台大型机相互通信,或者处理数百个终端的复杂通信等等。
大型机也非常注重批处理,即使是交互式会话也感觉像是小型批处理会话。虽然有很多在线应用程序,但大部分工作都是“使用这个程序和这个数据集运行这个作业,并将输出结果放在这里”之类的。整个环境都支持这种模式——它拥有复杂的作业控制子系统,而且操作系统的大部分功能都面向记录/数据集,而不是面向文件。当然,所有系统也有一些共同的概念——例如,“启动系统”在大型机领域被称为“初始程序加载 (IPL)”,“配置区域”(Unix 上的 /etc,大型机上的 PARMLIB)的概念也存在,等等。但从根本上来说,环境是不同的。
如今,现代大型机拥有数GB甚至数TB的内存,采用高速SSD/NVMe SAN存储,支持TCP/IP协议,并能运行网站等等。IBM早在2008年就开始在大型机上提供Linux操作系统。大型机的另一项创新是虚拟化,而大型机早在20世纪70年代就开始进行操作系统虚拟化。现代大型机可以同时运行数百个Linux实例,以及任意数量的z/OS(当前操作系统)副本。大型机的物理体积仍然很大,但已经缩小到冰箱大小,甚至比一些高端Unix设备(例如Sun E15000、HP SuperDome等)或成排的开放式系统还要小。
顺便一提,软件共享的概念也源于大型机社区。
大型机仍然很贵,但在 20 世纪 70 年代,它们会占据整栋楼的一层,产生巨额电费,需要巨大的冷却系统,还需要一大批侍从来维护这些庞大的系统。
亲爱的网站读者,您可以免费获得这件价值 800 万美元的计算机历史瑰宝之一。
嗯,算是吧。
好吧,你实际上不可能免费获得一台 IBM 3033(即使能获得,你也负担不起运行它的费用!),但你可以在现代硬件上模拟它们,并且运行速度比那个时代的系统快得多。
IBM已将其31位时代之前的操作系统置于公共领域……或者更确切地说,是在美国政府指出这些软件是IBM根据政府合同开发的,而根据法律规定,这些软件属于公共领域之后,IBM才被迫这样做。不过,总的来说,IBM对这段计算机发展历史一直保持着宽容的态度,在其网站上继续提供几十年前就已停售的系统的用户手册和下载资源。
Hercules 模拟器允许您运行任何大型机操作系统。您甚至可以在上面运行 z/OS(当前的大型机操作系统),尽管这并不合法。您可以运行的最新免费(公共领域)操作系统是 1981 年的 MVS 3.8j。
我个人几年前就尝试过接触大型机,但发现它太陌生了。首先,你不能用 SSH 登录,而是需要一个 TN3270 模拟器。虽然所有平台都有这种模拟器,但这本身就意味着你要进入一个完全陌生的领域。当你连接上之后,感觉就像第一次使用 Unix 系统:我该输入什么?有哪些特殊按键?如何“移动”等等。例如,它没有像 Unix 那样的滚动提示,这立刻会让人有点不知所措。
然而,近年来涌现出许多 YouTube 频道,可以指导你如何启动并运行大型机。此外,一些软件包的出现也大大简化了操作。这与 BSD 社区对 .NET/2 所做的工作,或者 Linux 发行版对内核所做的工作非常相似。如果你必须从头开始下载、编译和构建 Linux ,恐怕没多少人能做到。但安装一个已经为你配置好的发行版就非常简单了。MVS 3.8j 的现代打包也是如此,例如 TK4 软件包。
要在 Hercules 服务器上启动并运行主机,我建议按照以下两个教程之一进行操作:
Moshix 将一步一步地指导您,让您在短短一小时内从“从未登录过大型机”到“刚刚提交了一个计算素数的 COBOL 程序并查看了批处理作业的输出结果”。您将安装 Hercules、TN3270 仿真器以及 TK4-“土耳其 MVS”套件,该套件包含已设置好的 MVS 3.8j 系统,开箱即可使用。这就像您聘请了一位 Linux 系统管理员来安装 Linux 系统,进行配置,处理所有启动/关闭权限,配置用户等等——TK4- 就是这样的。您可以根据需要进行任何自定义,但它是一个稳定可靠、专业搭建的系统,是您理想的起点。

将这里的“生态系统”与其他操作系统进行比较很有意思:
- 编程语言:COBOL、汇编语言、高级汇编语言、FORTRAN、PL/I,以及当时许多其他语言。
- 作业/脚本:JCL、REXX
- 编辑器:没有 vim 或 emacs,但 RFE 和 RPF 环境内置了功能强大的编辑器。
毋庸置疑,就性能而言,你现有的任何电脑都能流畅运行。模拟器本身的最低配置要求远高于它所模拟的程序。Hercules 最理想的内存配置是 1GB,并且可以根据你的需要使用任意数量的核心。他们建议使用 1.5GHz 或更快的处理器。
我认为 WebSite 近期内不会有很多 z/OS 甚至 MVS 3.8j 的招聘信息,但这确实是一次有趣且引人入胜的时光之旅。而且,由于目前 z/OS 人才非常紧缺,如果您对此感兴趣,还可以通过 IBM 的“z/OS Practitioner” 认证,将技能提升到 2022 年。
