最晦涩/最受欢迎的答案将获得答案投票!

大多数Unix和类Unix系统都有一个“传统历史”,每一代都传承下去,这样新手就可以看到并理解系统中一些更深奥的部分.对于Windows的“传奇”,长期以来Windows管理员可以做些什么,就新管理员应该接触的深奥知识而言?

在Windows社区中有一个广泛的都市传奇,Dave Cutler选择了名称“Windows NT”(WNT),因为如果你从每个字母中减去一个你得到VMS,这是Dave Cutler在他来到微软之前所使用的操作系统.

然而,事实并非如此. Cutler也没有选择名称(它或多或少偶然出现)也没有名称WNT(事实上,它是“NT OS / 2”,因为当时的想法仍然是构建下一代操作系统/ 2 – Windows甚至没有出现在图片中. NT也不代表“新技术”.

Dave Cutler受雇于微软,为PC构建下一代操作系统.当时,微软最现代化的操作系统是OS / 2,由IBM和MS共同构建.因此,对于MS来说,“下一代”自然意味着新版本的OS / 2. (Windows只是被视为DOS的GUI,很快就会被真正的操作系统取代.)

在DEC,Dave Cutler曾参与过VMS. VMS的一个问题是很多都是用汇编编写的,而且它是相当单一的.两者都意味着移植到其他平台有点困难.当他的任务是为VMS写一个继任者时,他改变了所有这一切;虽然他喜欢VMS的抽象和风格,但他不喜欢这种实现方式:他希望以高度模块化的方式编写它,并且他希望用C语言编写它 – 基本上是VMS的清理和现代化重新实现. DEC很快就失去了对他的项目的兴趣,并且有效地将他带出了公司,这就是他最终在微软,他能够实现他的想法. (这就是为什么NT看起来与VMS非常相似的原因:它本质上是VMS Cutler一直想写的版本,但DEC不允许他这样做.)

因此,Cutler正在编写OS / 2的新版本.那个时候,一点也不清楚,究竟什么是“PC”,i386会胜出.英特尔正在试验RISC处理器,微软正在试验MIPS处理器,IBM正在进行PS / 2,后来也是PowerPC,DEC的Alpha即将到来.仅为其中一个平台构建操作系统将是一场巨大而危险的赌博.因此,新的OS / 2必须具有高度的可移植性.为了确保最大的便携性,卡特勒试图找到最奇怪,最不像PC的架构.他找到了英特尔i860. i860是64位,i386 32位. i860有很多寄存器(32),i386只有8. i860是RISC,i386 CISC. i860采用VLIW架构.它在芯片上有一个SIMD单元(后来成为Pentium MMX上MMX SIMD指令的灵感).它将其管道暴露给软件,因此i386在芯片上做出的所有调度决策都必须由编译器完成(这是Itanium的EPIC架构的灵感).它有史以来最奇怪的记忆模型之一.

简而言之,它是高度可移植操作系统的完美目标:如果您在i860上开发和测试,您几乎可以在任何地方移植它.所以,这就是卡特勒所做的.

有两个版本的i860:一个叫做XR的更便宜,更简单,一个叫做XP的SMP机器更快.除了MS正在使用早期原型并且还没有选择营销名称,所以他们只是以他们的英特尔代号:N10和N11而闻名.

Cutler正在开发的操作系统由于其便携性而代号为Portasys.然而,在内部他们并没有这样说:他们正在为N10构建它,并且他们正在构建OS / 2的版本,因此在对话中他们简称为“OS-2 for N-Ten”或“N-N十个OS / 2“,因为程序员很懒,很快就缩短为”NT OS / 2“.

然后,发生了两件事:MS实际上并没有打算告诉IBM他们正在构建自己的OS / 2版本.当IBM意识到新的OS / 2实际上与旧的OS / 2完全不同时,IBM和MS出现了问题,并且OS / 2的联合开发已经结束.

发生的第二件事是Windows 3.0超越了每个人最疯狂的梦想.

那是MS改变方向180°的时候.现在NT OS / 2的模块化设计非常方便.

在NT中,内核与所谓的“个性”之间存在明显的区别.通常,内核的工作是抽象硬件并向用户区提供抽象.在NT中,这些责任是分开的:内核摘要,个性将抽象呈现给用户区.嗯,实际上,人格并不呈现抽象,它呈现出一种抽象;可以有多个性格.

在我们的故事的这一点上,NT看起来像这样:有NT内核,在NT内核之上是OS / 2个性,最重要的是OS / 2 Presentation Manager(GUI).文件系统是HPFS.由于个性抽象和同时运行多个人物的能力,现在很容易保持系统运行,同时增加Windows个性.完成Windows个性化后,在OS / 2上运行的Presentation Manager将替换为在Windows上运行的Windows UI. HPFS重命名为NTFS并进行了一些调整.

然后一些营销人员在某个地方决定那个“NT”绰号实际上有点酷,但“OS / 2”的东西必须被“Windows”取代而且反过来听起来更好(“Windows NT”而不是“ NT Windows“).当他问起NT代表什么时,他们告诉他实际上没有任何意义,因为他们不再做i860版本了,所以他追溯创造了“新技术”的背景.

这就是它成为WNT的方式.而且,正如你所看到的那样,字母“N”和“T”是由英特尔选择的,字母“W”是由命运选择的,三个字母的排序是由一些营销人员选择的,所以根本就没有任何人都可以有意识地选择与VMS相关的方式.

顺便说一句:Arthur C. Clarke总是说他从未想过“IBM”,当他提出“HAL”这个名字时.事实上,他说,如果他认识到这种关系,他就会改变HAL的名字,而不是因为他与IBM有良好的工作关系.

Windows Legendry的更多相关文章

  1. IBM Swift Sandbox-在PC上写Swift小程序

    然而幸运的是,IBM公司推出了网页版的Swift学习工具IBMSwiftSandbox,说是工具也不太准确,因为它只是一个网页,实质是我们在该网页敲代码,提交到IBM的服务器,IBM的服务器把运行结果显示给我们。下面用gif图来演示一下用IBMSwiftSandBox运行一个小程序。好啦,就介绍到这里啦,IBMSwiftSandBox上的一些功能就交给你自己去尝试了,尽情的在PC上学习Swift吧。

  2. Windows系统下Node.js的简单入门教程

    这篇文章主要介绍了Windows系统下Node.js的简单入门教程,Node.js是用于后端编程的JavaScript框架,需要的朋友可以参考下

  3. Node.js入门教程:在windows和Linux上安装配置Node.js图文教程

    这篇文章主要介绍了Node.js入门教程:在windows和Linux上安装配置Node.js的方法,本文图文并茂,步骤明细,是学习安装node.js的绝佳教程,需要的朋友可以参考下

  4. vue3+springboot部署到Windows服务器的详细步骤

    这篇文章主要介绍了vue3+springboot部署到Windows服务器,配置Nginx时,因为现在是把vue前端交给了Nginx代理,所以这里的端口号不一定是我们在vue项目中设置的端口号,本文给大家介绍的非常详细,需要的朋友参考下吧

  5. Windows下安装Bun像Node或Deno的现代JS运行时

    这篇文章主要为大家介绍了一款像Node或Deno的现代JavaScript运行时的bun在Windows下安装过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  6. 基于Python制作简易的windows修改器

    现在应该大部分人都使用win11系统吧,win11其实挺好用哈,只是有一点不好用,就是右键的菜单,今天做个小程序,就是应该修改win11的一个应用程序,感兴趣的可以了解一下

  7. Windows下安装NodeJS的详细步骤

    这篇文章主要介绍了Windows下安装NodeJS,本文分步骤通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. Windows 系统下设置Nodejs NPM全局路径

    这篇文章主要介绍了Windows 系统下设置Nodejs NPM全局路径

  9. Windows和夜神模拟器上抓包程序mitmproxy的安装使用详解

    mitmproxy是一个支持HTTP和HTTPS的抓包程序,有类似Fiddler、Charles的功能,只不过它是一个控制台的形式操作,这篇文章主要介绍了Windows和夜神模拟器上抓包程序mitmproxy的安装使用详解,需要的朋友可以参考下

  10. Windows平台实现PHP连接SQL Server2008的方法

    这篇文章主要介绍了Windows平台实现PHP连接SQL Server2008的方法,结合实例形式分析了Windows平台PHP连接SQL Server2008所需的相关dll动态链接库文件及相应的配置与使用方法,需要的朋友可以参考下

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部