SOS(Strike的儿子)调试器扩展名的命名背后有什么故事?

45

"Son of Strike"这个名称有什么含义吗?它是有意义的还是只是听起来很酷?

3个回答

61

Jason Zander的博客文章完美地解释了这个问题:

CLR团队的原始名称(由团队创始人和前微软杰出工程师Mike Toutonghi选择)是“Lighting”。Larry Sullivan的开发团队创建了一个ntsd扩展dll,以帮助启动v1.0。我们称之为strike.dll(明白吗?“闪电打击”?是的,我知道,ba'dump bum)。PSS真的需要这个来向团队提供信息,以便在调试恶性压力失败时(几乎总是使用Windows调试器堆栈)回馈给我们。但是我们不想分发我们的完整strike.dll,因为它包含一些“危险”的命令,如果你没有我们的源代码,可能会导致你混淆和痛苦(甚至对其他Microsoft团队也是如此)。所以我推动团队创建了“Son of Strike”(我们的dev中的Simon为此负责/受到责备),我们从Everett(又名V1.1)开始随产品一起发布。

此外,我之前听说过CLR被称为“COM + 2.0”,但显然它在其生命周期中有几个名称(来自这里):

CLR运行时位于名为MSCOREE.DLL的DLL中,它代表Microsoft Common Object Runtime Execution Engine。“Common Object Runtime”或COR是这项技术在其生命周期中的许多名称之一。其他名称包括“Next Generation Windows Services(NGWS)”,“Universal Runtime(URT)”,“Lightning”,“COM +”和“COM + 2.0”


深入的历史。我曾经一直想知道SOS.dll扩展名的缩写是什么意思,它到底代表什么。事实上,我也一直猜测MSCOREE.dll是Microsoft CORe Execution Engine。感谢@chris让我免于尴尬。 - RBT

5

这个问题在一段时间前的Scott Hanselman播客中和Tess Ferrandez讨论过。它源自.NET平台早期使用的内部代号。有关更多信息,请参见节目剪辑


你能提供一个摘要吗?即使没有其他原因,也因为链接失效的问题(在这种情况下已经发生了)。 - Peter Mortensen
显然,CLR的代号是“Lightning”,因此调试扩展被命名为“Strike”,然后“Son of Strike”不知怎么就从那里作为后代出现了。 - Dave Cluderay

1

微软的Mario Hewardt详细解释道:

当微软最初开发.NET 1.0时,他们需要一个类似SOS的扩展来调试CLR本身内部的故障,他们使用了一个称为Strike的扩展。 Strike的实用性非常明显,由于Microsoft支持工程师将使用该扩展来解决客户的问题,因此客户想要得到这个特定的扩展。

不幸的是,Strike揭示了有关CLR内部的一些过多信息,因此他们最终创建了一个稍微精简版本的SOS,并且这就是公开提供在你的.NET框架中安装的版本。

.NET sos extension for Windbg

真的很酷。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接