分页: 1 / 3

#1 Claude成功用Cobol对1962年的大型机IBM 7094编程

发表于 : 2025年 3月 2日 11:03
wdong
模拟器配置viewtopic.php?p=5121857#p5121857
AI编程内容viewtopic.php?p=5122340#p5122340

IBM 7094 是 IBM 在 1962 年推出的晶体管计算机,作为 IBM 7000 系列的旗舰产品,它不仅是 当时计算速度最快的商用计算机之一,更是 科学计算、航空航天、国防军事 领域的中流砥柱。7094是 IBM 最后一代基于批处理模式的大型科学计算机。

IBM 7094 的突破点:

* 完全晶体管化(替代电子管,提高可靠性,降低功耗)
* 性能提升(每秒 50 万条指令,比 7090 提高 1.6 倍)
* 双处理器支持(可选双 CPU,提高并行计算能力)
* 拓展存储(支持更大的磁芯存储和更先进的磁盘存储)

下图是7094和上一代计算机的性能参数对比。

图片

7094 是 IBM 7000 系列中最昂贵的一款,成本主要来自:
- 磁芯存储器(32K 磁芯存储就接近百万美元)
- 磁带存储系统(IBM 729 磁带机,每台 5 万美元)
- 高速处理器晶体管组件
推测:整机制造成本约 300 万~400 万美元。

7094的直接购买价格是$3-5百万美元(相当于今天的$30-50M)。但是IBM采取的是租赁策略(其实IBM才是云计算的鼻祖)。租金大概是每月 $5万美元,大概租10年能接近购入成本。具体到模块,价格组成如下:

图片

按现存的模拟器配置,7094的典型运行配置是1xCPU, 1x core memory, 10x磁带机,外加打印机,打卡机,读卡机各一。

下面是我在网上找到的最有代表性的图片(7090,差不多), 我把各个模块进行了标注(设备名见下)。 但是标完后我发现了一些问题,存疑:

- 图里没找到7090本尊。
- 7100是商用机,和709x是不同的型号。图里面有两台。

我自己是把7100想象成7094.

图片

再来几张图片

图片

图片

图片

几个视频




设备名, 这些名字在7094的命令中,以及模拟器中都会用到。

- CPU (7094)
- M (7302) 磁芯存储器内存
- DC (7606, Data communication)
- CHAN (7607, Channel controller)
- TTY (7617, Teletype Terminal)
- LPR (716, Line Printer)
- CDR (711, Card Reader)
- CDP (721, Card Puncher)
- MTA (Magnetic tape)

CPU链接CHAN, CHAN链接除了DC以外的所有I/O设备(TTY, LPR, CDR, CDP, MTA)。DC直连CPU,然后通过电话线连接远程 TTY终端(1050/2741)。

所有的设备都是面向行/记录/卡片的。输入设备就是一行一行(一张卡片一张卡片)读入,输出设备就是一行一行输出。LPR, MTA, TTY虽然物理上不是卡片,但是逻辑上还是按卡片的方式运作。

对7094编程,主要的概念就是控制权,也就是哪个程序在运行。7094一次只能运行一个程序。一开始运行IBSYS,然后IBSYS会读取 SYSIN(一般是MTA3)的下一行进行对应的操作。一般这个命令就是$EXECUTE IBJOB。然后IBJOB会载入,控制权交给IBJOB。IBJOB会读取下一行,比如IBCBC (Cobol编译器)或者IBFTC (FORTRAN编译器)。编译器开始运行后,接下来的卡片就都是源代码了。

这种方式有点像以下面的方式调用gcc

gcc -x c -o hello - # 特殊文件名表示从stdin读入。这时gcc无法根据文件名判别语言, -x c指定c语言
#include <stdio.h>
int main () {
printf("Hello, world!\n");
return 0;
}

上面的内容存诚sysin.txt,然后bash < sysin.txt就会生成hello。但是因为C语言没有"end"标记,所以上面的脚本就没法接更多的bash命令了。其实如果有一个特殊字符EOF代表文件结束,并在读到EOF时向程序发出文件结束信号,就可以接更多的命令。那样unix的stdin就和IBM的卡片序列一样了。

#2 Re: IBM 7094:晶体管计算机的巅峰之作

发表于 : 2025年 3月 2日 11:10
wdong
IBM就是当年的OpenAI,OpenAI将来也会像IBM一样被取代,并在未来的技术中留下它自己的印记。以史为鉴,可以知兴替。

#3 Re: IBM 7094:晶体管计算机的巅峰之作

发表于 : 2025年 3月 2日 12:34
hci
OpenAI 何德何能与IBM相提并论,这不是搞笑么。

合适的比喻,是Relational DB:IBM:Oracle::LLM:Google:OpenAI
wdong 写了: 2025年 3月 2日 11:10 IBM就是当年的OpenAI,OpenAI将来也会像IBM一样被取代,并在未来的技术中留下它自己的印记。以史为鉴,可以知兴替。

#4 Re: IBM 7094:晶体管计算机的巅峰之作

发表于 : 2025年 3月 2日 12:58
wdong
hci 写了: 2025年 3月 2日 12:34 OpenAI 何德何能与IBM相提并论,这不是搞笑么。
创新程度和烧钱规模差不多。一般来说除非技术更替,否则每个技术的龙头企业不太会被竞争者在同代技术上干掉。

根据我的测试,openai的可编程性要高于anthropic。Deepseek我没试过不好说,但是根据中国企业一贯的德行我不看好。特定方向的问题回答得好没用,得可编程才行。

#5 Re: IBM 7094:晶体管计算机的巅峰之作

发表于 : 2025年 3月 2日 13:09
hci
搞笑吧。你对IBM一点都不了解。IBM的东西大都是自己发明的,硬盘,关系数据库,OpenAI发明了啥?

IBM是个销售驱动的公司(就是利润率驱动),什么赚钱就卖什么,绞肉机都卖过,从来就不会乱烧钱的。这是个有百多年历史的公司,有自己的DNA,与OpenAI是完全不同性质的公司。这么说吧,OpenAI嗝屁了,IBM都还会继续存在。

虽然IBM不乱烧钱,但对科技的投入是一贯的,无论生意好坏,每年恒定两个B的研究投入,雷打不动。没有几个公司能这样。IBM的研究可不光是计算机,而是理工科行行都维持研究投入,物理化学材料,样样齐全。比如在以前我供职的Almaden研究院,CS department是最小的department,但这个Department发明了硬盘,发明了关系数据库。很多CS名人都是从那里出来的。AMD的苏妈,陆奇,等等,都在Almaden混过。

不过CS现在已经在Almaden都被取消了,没有CS department了,哈哈。
wdong 写了: 2025年 3月 2日 12:58 创新程度和烧钱规模差不多。一般来说除非技术更替,否则每个技术的龙头企业不太会被竞争者在同代技术上干掉。

#6 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 13:20
hci
这么说吧,IBM的衰落,其实反映了西方科技走到了尽头。IBM的固定研究投入,都不能变现,比如量子计算,比如模拟大脑的芯片,等等。

为啥IBM没有all in这波AI?因为他们早知道这波AI不会赚钱。IBM Research CS领域的大头,原来是我老婆的第一个manager,他们组是作啥研究的?rule based NLP,当然不会相信这波AI的hype。他们组的大老板,IBM Fellow, 因为这个事,与上面的人当面冲突,直接被当场fire掉,由保安押出门。BTW,你们不要瞧不起印度人,没有几个中国人有这种guts。要当大老板,当主公带队伍,没有spine是不行的。我老婆其实也是因为这个离开苹果的。此处不留爷,自有留爷处,拉起自己的队伍走人。It's your fucking loss.

现在如何?整个业界还不是都乖乖回来搞agent?也就一年时间。

#7 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 14:51
mib
我估计能猜出来你老婆的名字 :) 不过Fellow被当场解雇?不可能吧,fellow可以干到死

IBM最近股票涨了不少,得感谢Chatgpt

hci 写了: 2025年 3月 2日 13:20 这么说吧,IBM的衰落,其实反映了西方科技走到了尽头。IBM的固定研究投入,都不能变现,比如量子计算,比如模拟大脑的芯片,等等。

为啥IBM没有all in这波AI?因为他们早知道这波AI不会赚钱。IBM Research CS领域的大头,原来是我老婆的第一个manager,他们组是作啥研究的?rule based NLP,当然不会相信这波AI的hype。他们组的大老板,IBM Fellow, 因为这个事,与上面的人当面冲突,直接被当场fire掉,由保安押出门。BTW,你们不要瞧不起印度人,没有几个中国人有这种guts。要当大老板,当主公带队伍,没有spine是不行的。我老婆其实也是因为这个离开苹果的。此处不留爷,自有留爷处,拉起自己的队伍走人。It's your fucking loss.

现在如何?整个业界还不是都乖乖回来搞agent?也就一年时间。

#8 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 14:57
hci
长知识了吧。
mib 写了: 2025年 3月 2日 14:51 我估计能猜出来你老婆的名字 :) 不过Fellow被当场解雇?不可能吧,fellow可以干到死

IBM最近股票涨了不少,得感谢Chatgpt

#9 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 15:02
wdong
IBM第一台正经的计算机造出来,AI研究就从来没有断过。
眼光很准,但是软硬件科技枝应该都攀错了。我猜测,IBM这么上百年一直在符号主义这条路上吊死了。

#10 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 15:10
wdong
原来做大型机的IBM已经改名叫kindryl打包卖掉了,名字都没了。现在的IBM是收购了redhat后拼凑出来的。Redhat本来也是下坡路走了很久。我觉得成不了气候的。

每一代都有每一代的光荣,以后的会比过去的大。我写这个帖子是想唤起这么一种感觉,就是我们今天拼尽全力才能做到的事情,明天将不费吹灰之力。

#11 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 15:24
hci
越说越扯了。

Z系列Mainframe现在还是IBM的一大支柱,这种高利润率的产品,IBM咋会卖呢。

https://en.wikipedia.org/wiki/IBM_Z

看到没有,IBM Mainframe: 1952–present, “The IBM z17 is a mainframe computer that is expected to be released in mid-2025.”

各大银行还是继续用Z系列,为啥?因为不可取代。大型机的很多功能是很多人闻所未闻的,比如热插拔CPU,见过么?哈哈。

根据下面这个报道,现在IBM三分之一的收入是从大型机事务处理来的。

https://www.thestack.technology/ibm-2/

Over two thirds of IBM’s clients running mainframes are increasing their workloads – and its z16 cycle was its “most successful program in history.”

That’s according to IBM’s CFO Jim Kavanaugh, reporting Big Blue’s FY2024 earnings late Wednesday. He spoke as its “transaction processing” revenues jumped 10%. (That covers IBM’s mainframe software offerings.)

Transaction processing accounted for approximately a third of IBM’s software segment revenues. Red Hat also performed strongly, with revenues up 17% (OpenShift ARR hit $1.4 billion up ~25%.)

(As The Stack noted in 2023, IBM revealed at an investor conference that year that its mainframe software licences have a magnificent profit margin of about “$0.80 to $0.90 on every dollar of growth.”)
wdong 写了: 2025年 3月 2日 15:10 原来做大型机的IBM已经改名叫kindryl卖掉了,名字都没了。现在的IBM是收购了redhat后拼凑出来的。Redhat本来也是下坡路走了很久。我觉得成不了气候的。

每一代都有每一代的光荣,以后的会比过去的大。我写这个帖子是想唤起这么一种感觉,就是我们今天拼尽全力才能做到的事情,明天将不费吹灰之力。

#12 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 15:30
hci
我都说了,IBM这个公司是利润驱动的,什么赚钱卖什么。IBM信什么主义?金钱主义。

只要利润率不够,立马卖掉。PC生意卖了,以前的speech recognition生意也卖了,卖不掉的,就关门,比如我老以前弄的一个产品,就撤销了。
wdong 写了: 2025年 3月 2日 15:02 IBM第一台正经的计算机造出来,AI研究就从来没有断过。
眼光很准,但是软硬件科技枝应该都攀错了。我猜测,IBM这么上百年一直在符号主义这条路上吊死了。

#13 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 16:34
wdong
下面讲怎么用simh模拟7094。

1. 模拟器simh: https://github.com/simh/simh
2. Tape images https://simh.trailing-edge.com/software.html, 下载IBSYS那个链接。解压后生成ibsys_kit目录。

这个ibsys_kit目录主要内容是:
- ASYS1.BIN, ASYS8.BIN: IBSYS的两个系统磁带。
- 一众格式转换的程序。已经自带了exe程序,如果是linux,用make编译。需要处理一个小错误。prsf2.c里面"char fin[300], fon[300];"定义重复了,在前面加上extern即可。
- 一些测试程序

我们就在这个ibsys_kit目录底下工作。编译完成后用下面的内容创建7094.ini:

; this is comment;
; lines starting with ! are executed by the shell
; the lines below prepare the input tape that is
; to be attached to MTA3
! mkdir -p tmp
! ./gendate > tmp/date.txt
! cat tmp/date.txt hello.job eof.dat ibsys.ctl > tmp/sysin.txt
! ./txt2bcda tmp/sysin 84

set cpu 7094
; If you obtain online script, you usually see -er option.
; -e means to make sure the file exists.
; -r means to open the file in read-only mode.
att cdr ibsys.ctl
; cdp is output
att cdp tmp/punch.txt

; IBSYS tape1, core IBSYS monitor
; simh document mandates -f to attach tapes.
att -f mta1 p7b ASYS1.BIN
; IBSYS tape2, IBFTC, IBCBC, IBMAP, SORT, etc.
att -f mta2 p7b ASYS8.BIN
; Our input data
att -f mta3 p7b tmp/sysin.bcd
; The rest are all output
att -f mta4 p7b tmp/sysou1.bcd
att mta5 tmp/sysut1.bin
att mta6 tmp/sysut3.bin
att mta7 tmp/sysut2.bin
att mta8 tmp/syspp1.bin
att mta9 tmp/sysut4.bin
att mta10 tmp/sysck2.bin

boot mta1

det mta4
; Convert output tape to tmp/print.txt; we need this for debugging
! ./bcd2txta -p tmp/sysou1.bcd tmp/print.txt

bye


然后运行命令"i7094 7094.ini"就可以看到输出了

图片

其实和我们要运行的程序有关的配置只有一行:

! cat tmp/date.txt hello.job eof.dat ibsys.ctl > tmp/sysin.txt

可以把hello.job换成目录中别的job。目录中有计算素数的fortran程序可以用。下面显示了这个hello这个Cobol程序

$JOB COBOL HELLO WORLD
$EXECUTE IBJOB
$IBJOB GO,LOGIC,MAP,FIOCS
$IBCBC HELLO FULIST,REF,NODECK,M94,XR7
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. COB0.
000300 AUTHOR. B W SPOOR.
000400 INSTALLATION. FRIDAY COMPUTER SERVICES.
000500 DATE-WRITTEN. SEPTEMBER 2004.
000600 DATE-COMPILED. SEPTEMBER 2004.
002500 CONT-0000.
......
002600 DISPLAY 'HELLO WORLD'.
002700 CONT-9999.
002800 STOP RUN.
$CBEND

7094的操作系统叫IBSYS,操作系统识别的语言叫IBSYS Job Control Language (JCL),其中所有的命令都以$开始。所以上面的程序其实是混杂了JCL和Cobol两种语言。

#14 Re: IBM 7094:晶体管计算机的巅峰之作

发表于 : 2025年 3月 2日 17:00
hci
Sonnet 3.7据说编程最好,我没试过。

我现在用grok3做deep research,o3 mini做推理模型,感觉够用了。
wdong 写了: 2025年 3月 2日 12:58 创新程度和烧钱规模差不多。一般来说除非技术更替,否则每个技术的龙头企业不太会被竞争者在同代技术上干掉。

根据我的测试,openai的可编程性要高于anthropic。Deepseek我没试过不好说,但是根据中国企业一贯的德行我不看好。特定方向的问题回答得好没用,得可编程才行。

#15 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 17:18
wdong
hci 写了: 2025年 3月 2日 15:24 越说越扯了。

Z系列Mainframe现在还是IBM的一大支柱,这种高利润率的产品,IBM咋会卖呢。

https://en.wikipedia.org/wiki/IBM_Z

看到没有,IBM Mainframe: 1952–present, “The IBM z17 is a mainframe computer that is expected to be released in mid-2025.”

各大银行还是继续用Z系列,为啥?因为不可取代。大型机的很多功能是很多人闻所未闻的,比如热插拔CPU,见过么?哈哈。

根据下面这个报道,现在IBM三分之一的收入是从大型机事务处理来的。

https://www.thestack.technology/ibm-2/

Over two thirds of IBM’s clients running mainframes are increasing their workloads – and its z16 cycle was its “most successful program in history.”

That’s according to IBM’s CFO Jim Kavanaugh, reporting Big Blue’s FY2024 earnings late Wednesday. He spoke as its “transaction processing” revenues jumped 10%. (That covers IBM’s mainframe software offerings.)

Transaction processing accounted for approximately a third of IBM’s software segment revenues. Red Hat also performed strongly, with revenues up 17% (OpenShift ARR hit $1.4 billion up ~25%.)

(As The Stack noted in 2023, IBM revealed at an investor conference that year that its mainframe software licences have a magnificent profit margin of about “$0.80 to $0.90 on every dollar of growth.”)
你仔细看,里面提了software offering. 估计db2还在手上。

#16 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 17:28
newguy
wdong 写了: 2025年 3月 2日 15:10 原来做大型机的IBM已经改名叫kindryl打包卖掉了,名字都没了。现在的IBM是收购了redhat后拼凑出来的。Redhat本来也是下坡路走了很久。我觉得成不了气候的。

每一代都有每一代的光荣,以后的会比过去的大。我写这个帖子是想唤起这么一种感觉,就是我们今天拼尽全力才能做到的事情,明天将不费吹灰之力。
capital one 都还有一台IBM 大家伙,没有7094这么老,但也够老的。一直在找人去读cobol, 想换成k8s, 都10多年了好像还没换成。

#17 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 17:33
wdong
newguy 写了: 2025年 3月 2日 17:28 capital one 都还有一台IBM 大家伙,没有7094这么老,但也够老的。一直在找人去读cobol, 想换成k8s, 都10多年了好像还没换成。
我觉得就是差别太大了没法迁移。没hci说的那么邪乎。热插拔当然最好,但是成本也大,这么多年早就发展出来了更好的方案。

#18 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 17:51
hci
卖大型机就是卖software offering呀,机器几乎算是白送的,主要是收software license的钱,zOS,DB2, 等等,整个软件打包,这是大钱。软件的margin最高。这就是为啥IBM主要还是在软件这个生意上赚钱。margin最高的,是一整套软件打包卖。卖机器是一种卖打包软件的手段,机器要好几年才能卖一次,但上面的软件是每年都收钱的。

这就是为啥在财报上,mainframe是算在transaction processing这个生意里面的。这个生意占IBM收入的三分之一。
wdong 写了: 2025年 3月 2日 17:18 你仔细看,里面提了software offering. 估计db2还在手上。

#19 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 17:53
wdong
我折腾这么一番,最终目的当然是要用来测试AI到底能不能写程序,能不能把AI和古老的系统连起来做点什么事情。题目是写一个程序打印100以内的素数。当然这个是比较有挑战的,因为目标是1960年代的Cobol,语法和现在已经很不一样了。比赛结果,Claude 3.7 完胜。

我希望通过这个例子破除AI不能写程序,AI不能学习的疑虑。我相信任何今天的AI训练数据中60年代的cobol数据都少得可以忽略。所以AI需要通过错误消息来猜测怎么改能改对。这里的学习主要是in-context learning。整个过程很容易自动化。谁要是不服,自己可以试试看。

Claude 3.7成功破题 https://claude.ai/share/dcf7e3d4-bd1c-4 ... ef3b5148c4
GPT o1我放弃了 https://chatgpt.com/share/67c4e0d3-37d0 ... 652ae18fd8

方法就是反复把系统错误贴回去让它改。GPT的最佳战绩是修正所有编译错误,但是只能打印出2和3。再让它改,就又是一大堆编译错误了。
下面是Claude产出的程序。

$JOB COBOL PRIME NUMBERS
$EXECUTE IBJOB
$IBJOB GO,LOGIC,MAP,FIOCS
$IBCBC PRIMES FULIST,REF,NODECK,M94,XR7
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. PRIMES.
000300 AUTHOR. USER.
000400 INSTALLATION. IBM 7094.
000500 DATE-WRITTEN. MARCH 2025.
000600 DATE-COMPILED. MARCH 2025.
000700
001200 ENVIRONMENT DIVISION.
001300 CONFIGURATION SECTION.
001400 SOURCE-COMPUTER. IBM-7094.
001500 OBJECT-COMPUTER. IBM-7094.
001600 INPUT-OUTPUT SECTION.
001700 FILE-CONTROL.
001800
001900 DATA DIVISION.
002000 WORKING-STORAGE SECTION.
002100 01 NUM PICTURE 999 VALUE 2.
002200 01 DIV PICTURE 999 VALUE 0.
002300 01 QUOT PICTURE 999 VALUE 0.
002400 01 REM PICTURE 999 VALUE 0.
002500 01 FLAG PICTURE 9 VALUE 1.
002600 01 MSG PICTURE X(3).
002700
002800 PROCEDURE DIVISION.
002900 MAIN-PARA.
003000 GO TO START-PROGRAM.
003100
003200 START-PROGRAM.
003300 IF NUM GREATER THAN 99 GO TO FINISH-PROGRAM.
003400 MOVE 1 TO FLAG.
003500 MOVE 2 TO DIV.
003600 GO TO CHECK-DIV.
003700
003800 CHECK-DIV.
003900 IF DIV EQUAL TO NUM GO TO CHECK-RESULT.
004100 COMPUTE QUOT = NUM / DIV.
004200 COMPUTE REM = NUM - (QUOT * DIV).
004300 IF REM EQUAL TO 0 MOVE 0 TO FLAG.
004400 IF REM EQUAL TO 0 GO TO CHECK-RESULT.
004500 ADD 1 TO DIV.
004600 GO TO CHECK-DIV.
004700
004800 CHECK-RESULT.
004900 IF FLAG EQUAL TO 1
005000 MOVE NUM TO MSG
005100 DISPLAY MSG.
005200 ADD 1 TO NUM.
005300 GO TO START-PROGRAM.
005400
005500 FINISH-PROGRAM.
005600 STOP RUN.
$CBEND

#20 Re: 讲讲IBM 7094的历史

发表于 : 2025年 3月 2日 17:57
hci
有啥邪乎的,这些东西都是70年代的技术。热插拔有啥难的,不就是redundency而已,什么东西都至少有两套,如此而已。当然了,软件能够无缝衔接,所以需要专门的操作系统。

软件技术没啥进步,能想到的都想到了,这就是为啥这个行当与时尚界很类似,一阵一阵的风潮循环往复。

AI其实给COBOL带来了春天,没人来写?AI能写呀。哈哈。
wdong 写了: 2025年 3月 2日 17:33 我觉得就是差别太大了没法迁移。没hci说的那么邪乎。热插拔当然最好,但是成本也大,这么多年早就发展出来了更好的方案。