VM/370 社区版 (CE) 提供了一个经典的 IBM 大型机操作系统的现代“最大主义”版本,能够在拥有 16M 存储空间的单台 CPU 上运行。通过使用 Docker 容器,用户无需物理复古硬件即可访问支持遗留软件和命令行工具的终端环境。

显示 cmsuser 账户的 VM/370 社区版登录提示符的终端屏幕。
VM/370 社区版提供了一个用于访问遗留大型机系统的终端环境。rbanffy.github.io

这张图片展示了 VM/370 社区版环境提供的初始终端界面。

通过容器化访问大型机

运行 VM/370 CE 最便捷的方法是通过 Docker 或 Podman。通过运行特定的 shell 命令,用户可以启动一个托管大型机操作系统并暴露 3270 终端端口的容器。

该容器镜像基于 VM/370 社区版团队的工作,且仅运行开源或属于公共领域的软件。

“如果我们要将其与 Linux 进行比较,VM/370 R6(CE 版本基于的发行版)就像是 Linus 从他的卧室发布的 Linux 1.0,而 VM/370 CE 则像是最新的 Fedora(在此插入你最喜欢的最大主义发行版)。”

— Fun things to do with your VM/370 CE machine

与面向屏幕的终端交互

与自动滚动的现代终端模拟器不同,IBM 大型机使用的 3270 终端是面向屏幕的。它们的功能类似于早期的 Web 表单,大型机会发送一整屏的数据,并等待用户提交更改。

由于屏幕不会滚动,用户必须使用 PA2 键(在 x3270 模拟器中映射为 Alt-2)来清除终端并从大型机请求下一页文本。

遗留编程与编译

该环境允许执行 BASIC 和 FORTRAN 等复古语言。例如,编译 FORTRAN 程序会生成一个“列表”文件——这是一种传统上用于与打孔卡一起打印的格式化输出。

显示在 VM/370 环境中编辑 BASIC 程序的终端屏幕。
用户可以在容器化环境中与 BASIC 等复古编程语言进行交互和编辑。rbanffy.github.io

此视觉效果展示了如编程章节所述的运行和编辑遗留代码的能力。

由编译器生成的格式化 FORTRAN 代码列表的截图。
在 VM/370 CE 中编译 FORTRAN 程序会生成传统的“列表”文件用于输出。rbanffy.github.io

这张图片直接支持了系统为 FORTRAN 输出生成传统列表文件的说法。

系统使用 'FILEDEF' 命令来管理数据定义。这允许用户将特定文件编号(如文件 6,FORTRAN 的默认文件)的输出重定向到终端或其他设备。

限制与权衡

虽然社区版功能强大,但它仍受到原始 VM/370 架构的限制,该架构将环境限制在单台 CPU 和 16M 存储空间内。

用户必须注意安全问题,因为该系统设计于入侵较少发生的时代;源代码建议不要将 VM/370 大型机直接暴露在互联网上。