VMS 有多大?——VMS Software, Inc. 的代码规模分析
How Big Is VMS?
在去年秋天我在波士顿的 Boot Camp 演示中,我被问到了这个问题,而且在过去的 35 年里,无数次有人问我,VMS 有多大? 这实际上意味着“VMS 中有多少行代码?” 我觉得现在至少应该尝试着去深入了解一下这个问题的答案。 我写了一些命令程序来计算 .B32, .B64, .C, .MAR, .M64, 和 .S 文件中的源代码行数。 未被计算的包括空行和以标准注释字符开头的行,以及特定语言的各种指令。
首先,我需要一个 'VMS' 的基线定义。
- 它是否包括分层产品、网络、编译器、RTL、调试器、开源代码等?
- 它是否是特定运行系统上的代码?
- 它是否包括命令程序?
我对以上所有问题都回答“否”,并且作为起点,我选择了 15 个代表系统中可识别组件的工具:ACPI , AUDSRV, CLUSTER, DCL, DRIVER, F11X, JOBCTL, LAN, PCSI, RMS, SCSI, SDA, SHADOWING, SYS, XFC。
我选择了以下版本进行比较:
- V6.2: May / 1995 - 移植到 Alpha
- V7.2: Feb / 1999 - 内核线程、64 位 API、Galaxy 等
- V8.2: Feb / 2005 - 移植到 Itanium
- V9.2-3: Dec / 2024 - 移植到 x86
LINES.COM
程序,它调用了一组嵌套程序,获取 SCSI 工具中,版本为 V8.2 的所有具有上述扩展名的源文件,获取行数,并生成下面的文本文件。 这对四个版本流中的每个版本的 15 个工具都进行了处理。
MTMERU-V8.4-2L2$ @lines scsi "V8.2" V82
MTMERU-V8.4-2L2$ type [.scsi]total-line-counts-v82.txt
WORK10:[GRANT.LOC.SCSI.BLISS]TOTALS.TXT;1
Total source files = 2
Total source lines = 7770
WORK10:[GRANT.LOC.SCSI.C]TOTALS.TXT;1
Total source files = 64
Total source lines = 119609
WORK10:[GRANT.LOC.SCSI.M64]TOTALS.TXT;1
Total source files = 1
Total source lines = 885
WORK10:[GRANT.LOC.SCSI.MAR]TOTALS.TXT;1
Total source files = 34
Total source lines = 38414
WORK10:[GRANT.LOC.SCSI.S]TOTALS.TXT;1
Total source files = 0
Total source lines = 0
Grand Totals
Total source files = 101
Total source lines = 166678
MTMERU-V8.4-2L2$
以下是 V8.2 的所有总计。 对于其他三个版本,都有类似的图表。
以下是四个版本的代码行数汇总。 您可以在此链接中找到下表的图形表示。
注意事项和观察:
并非每个工具中的所有代码都存在于每个版本中,但它存在或曾经存在于一个或多个版本中。
在 VMS 源代码池中有 409 个工具——有些大,有些小。 它们为一个或多个平台的 VMS 操作系统构建做出贡献。
这 15 个选定的工具包含近两百万行代码,并且它们的总数在最近的三个版本中几乎增加了两倍。
在 x86 移植工作之前,V8.2 和 V9.2-3 之间的 VMS 发生了许多更改和添加。 考虑到相对较小的增量,每个版本大约增加了 400,000 行代码。 C 代码的出现是 VMS 的另一个方面,也是故事的一部分。 最初,VMS 是用 BLISS 和 MACRO-32 (VAX 汇编器) 编写的。 在后期移植到 Alpha 时,我们宣布所有新代码都将用 C 编写。 当然,也有例外,但大多数情况下,我们都遵循了这一指导方针。 上述数据中未显示,但作为此调查的一部分,以下内容反映了这 15 个工具。(V6.2 中的 31 个 C 模块都是在移植到 Alpha 时编写的。)
研究一下为什么某些工具随着时间的推移发生了如此大的变化可能会很有趣。 有些似乎很明显,但另一些则不然。 如果您对未来的帖子有建议,请说出来。
Mar 31st, 2025
Clair Grant
VMS Researcher
Previous
Lesson from Support - The Most Common Causes of OpenVMS Network Disconnects
Resources
What We Offer
What's New
Contact Us
© Copyright 2014—2025, VMS Software, Inc. All rights reserved. Search Our Company
Compliance
Professional services
Support
Community License
Community Software
Users
-
Services Professional services
-
- News and Development
- VMS IDE
- OpenLDAP [Wiki](https://vmssoftware.com/resources/blog/2025-03-31-how-big-is-vms/<https:/wiki.vms