← 返回信息流
AI 资讯Hacker News·6 天前

1990年东德Unix系统应用回顾

原标题:Unix in East Germany (GDR) (1990)

速览

本文回顾了1990年东德(GDR)地区Unix操作系统的历史应用状况。内容涉及当时Unix在该地区的部署背景、技术环境及使用情况。作为计算机历史资料,反映了冷战末期东德的技术生态。

AI 深度解读

东德 Unix 简史 (1990):铁幕下的技术突围

来源:Hacker News 转载 (1990年6月13日原始帖子) 原文作者:Guenther Fischer, Matthias Clausz (卡尔-马克思城工业大学计算机系) 译者/整理者:Peter Lamb (苏黎世联邦理工学院 ETH Zurich)

背景

1990年,正值东德(GDR/DDR)社会剧烈变革的前夜。这篇由卡尔-马克思城工业大学(TUK,今 Chemnitz 工业大学)计算机系研究人员 Guenther Fischer 和 Matthias Clausz 撰写的文章,最初发表于德国 Unix 用户组(UUG)网络和 SubNet。

文章不仅是一份技术记录,更是一份珍贵的“私人历史”。它揭示了在冷战铁幕之下,东德的技术人员如何在硬件匮乏、软件封锁和信息隔离的环境中,通过逆向工程、手工翻译和跨机构合作,艰难地移植和构建 Unix 生态系统。对于理解前社会主义阵营的技术自主性努力以及 Unix 在全球范围内的非官方传播路径,具有极高的史料价值。

核心内容

文章按时间线和技术演进阶段,详细回顾了 TUK 计算机系从 1982 年到 1990 年引入和使用 Unix 的全过程。

起步:从 IBM 360 到磁带里的秘密 (1982)

1982年,TUK 计算机系主要作为全校的教学和技术计算服务中心,缺乏独立的学生培养体系。当时的计算基础是两台 ESER I 机器(即 IBM 360 的克隆版)。团队刚刚从 DOS 转向 OS 操作系统,随后在压力下迁移至 TSO (Time Sharing Option)。当时的口号是“TSO 让每个人都开心”。

转折点出现在一台无法被 IBM 克隆机识别的磁带落入团队手中。通过十六进制转储(Hex-Dump)分析,团队发现了 ASCII 码和 512 字节的块结构。尽管打印机只能显示大写字母和有限的 IBM 字符,但通过阅读 README 文件和注释,他们意识到这是一套 Unix 系统,并包含一个编译器。

更令人兴奋的是,他们在系里发现了一本被忽视的书籍:Kernighan 和 Ritchie 的《C 程序设计语言》。这让他们意识到操作系统可以用高级语言编写,并能在不同机器上运行。

第一阶段:手工编织 C 编译器

由于没有现成的 C 编译器,团队采取了“手工翻译”的策略。

  1. 预处理器的实现:他们首先用 System-Pascal(作为汇编的替代方案)实现了 C 预处理器 cpp。这一尝试使他们在东德的 Unix 圈子中崭露头角。
  2. 建立联系:这一成果让他们接触到了东德其他 Unix 爱好者,包括柏林 ZKI 和 LfA 的 Froelich 兄弟、柏林 ZfT KEAW 的同事、Ilmenau 工业大学以及德累斯顿 Robotron 的小团队。
  3. 移植 C 编译器:受 cpp 成功的鼓舞,团队开始移植 C 编译器本身。经过约 3 个月的努力,他们编写出了一个能生成 PDP/11 汇编代码的 C 编译器。随后,他们修改代码生成器以生成 IBM 360 汇编代码。
  4. 成果:4 个月后,他们成功编译了 C 编译器本身(尽管最初生成的是 PDP/11 代码)。从此,他们能够用 C 语言进行思考。

第二阶段:PSU 子系统与互动体验

TUK 与 LfA(柏林自由大学计算中心)建立了密切关系,因为 LfA 开发的 PSU (Portable Subsystem for Unix) 最接近他们的需求。PSU 计划作为 OS 的一个子系统运行,类似 Unix,但受限(例如多处理被模拟为顺序执行)。

  • 从批处理到交互:早期的东德 Unix 是批处理系统,使用汇编语言编写。作为 TSO 用户,团队渴望交互能力,因此协助将 PSU 移植到 TSO 环境。
  • 工具移植:一旦 PSU 运行,团队便将其编译器移植到该环境。大量 Unix 工具被移植到 PSU,其中《猎杀 Wumpus》(Wump) 游戏在当时非常流行。
  • EBCDIC 的陷阱:团队发现 PSU 使用 EBCDIC 编码,这是一个“坏蛋”( cuckoo's egg),导致如 nroff 等工具的移植成为真正的艺术挑战。
  • 成效:学生和员工可以在批处理和交互模式下使用相同的工具,OS 和 TSO 的依赖逐渐降低,团队开始为未来做准备。

第三阶段:真实 Unix 体验与硬件升级

  • PDP 11/20 的实验:为了获得“真实”的 Unix 体验,团队在“外部”机器(PDP 11/20)上部分运行 Unix V7。随后,系里拥有了两台此类机器,用于教育和研究。
  • 从 360 到 370:当两台 360 机器升级为 370 机器时,团队决定在新机器上运行真正的 Unix。得益于 TH Leipzig 和 FSU Jena 的协助,他们成功移植了 Unix,实现了:
    • 拥有完整的源代码。
    • 支持所有外设。
    • 能够独立运行(无需 VM 虚拟化)。
    • 拥有完整的德语文档。
  • 基础设施:安装了约 30 个 Unix 终端,显著提升了教育和研究水平。尽管这台 0.5 MIPS 的“大型机”经常过载,但它成为了众多开发的基础,包括作业调度器(用于夜间批处理)以及 Pascal、Modula 2、Lisp、C、C++ 等编译器。

微处理器与标准化努力

  • 8 位微机的角色:运行 CP/M 的 8 位微机主要用于 Turbo Pascal 教学和数据库处理,作为稳定的工作马。
  • P8000 与 WEGA:基于 Z8000 的 P8000 系统运行 Unix 系统 WEGA,带来了显著的性能提升。
  • Unix 碎片化问题:团队意识到不同 Unix 变体(如 370 上的 VMX 约等于 Version 7,而 WEGA 号称 System III 兼容)之间存在巨大差异。作为 Unix 文献的狂热收藏者,他们密切关注 /usr/group、SVID 和 X/OPEN 直至 POSIX 的活动。
  • 东德 Unix 用户组 (GDR-UUG/EAG):为了解决文档不统一的问题,团队两年前开始编写基于 X/OPEN 和 SVID(大致相当于 System V Release 2)的系统调用和库函数文档。所有系统尽可能符合这一标准化接口,若无法符合,则至少记录差异。VMX 和 MUTOS 1835 两个系统的文档已通过 EAG 发布,供其他系统参考。

挫折:MUTOS 1835

文章最后提到了一次失败的经历:MUTOS 1835 是团队受 Robotron 委托,为其 AT 兼容机开发的 Unix 移植版。由于机器性能不足(原文在此处截断,但暗示了硬件限制导致的失败),这次尝试未能成功。

关键要点

  • 逆向工程与手工移植:在缺乏官方授权和现代开发工具的情况下,东德技术人员通过手工翻译代码(如将 C 编译器逻辑翻译为 Pascal,再转为汇编)实现了关键工具的移植。
  • 去中心化的协作网络:东德的 Unix 开发并非孤立进行,而是通过 UUG 网络、SubNet 以及高校间(TUK, LfA, TH Ilmenau, Robotron 等)的非正式联系形成协作网络。
  • 从“克隆”到“原生”的演进:技术路径从 IBM 360 的 TSO 环境,经过 PSU 子系统过渡,最终在 IBM 370 上实现了独立运行的完整 Unix 系统。
  • 标准化意识的觉醒:面对 Unix 的碎片化,东德开发者
查看原文 →groups.google.com