详解Windows 命令演变史:力证 DOS 未过时

微软
微软近日在其开发者博客上发布了关于“ Windows 命令行”的系列文章,包含从最初的历史和基本原理,到演变发展史,再到技术本身的研究。微软在文中表示,希望通过回顾 Windows 命令行的演变史,让大家知道命令行仍然是微软战略、平台和生态系统的关键组成部分。下面是其中的关键内容节选。

 

1、简陋的开始 —— MS-DOS

在 PC 行业的早期,大多数计算机完全是通过在命令行输入命令来操作的。 基于 Unix、CP / M、DR-DOS 等机器争夺地位和市场份额。 最终,MS-DOS 成为 IBM 个人电脑上的标准操作系统,尤其是在企业中:

 

详解Windows 命令演变史:力证 DOS 未过时1.jpg

 

像当时大多数主流操作系统一样,微软 MS-DOS 的“命令行解释器”或 “shell” 提供了一个简单、奇特但相对实用的命令集,以及用于编写批处理(.bat)命令的命令脚本语法和文件。

微软称:

你可能很少或者说根本不会看到批处理或命令行脚本正在运行,因为许多操作都是在后台执行的,例如登录到工作PC。仅在 Windows 上每天就会有数千亿的命令行脚本和命令被执行。

 

2、GUI 流行

之后,受施乐奥托(Xerox Alto)的启发,大量 GUI 出现在 Apple Lisa、Macintosh、Commodore Amiga、Atari ST、Acorn Archimedes、Sun Workstation、X11 / X Windows 以及许多其他公司产品(包括 Microsoft Windows )中。

1985 年推出的 Windows 1.0 ,基本上可以看成是一个提供简单平铺式窗口 GUI 环境的 MS-DOS 应用,允许用户并排运行多个应用:

 

详解Windows 命令演变史:力证 DOS 未过时3.jpg

 

之后的 Windows 2.x、3.x、95 和 98 都运行在 MS-DOS 基础之上。

这期间,还出现了:

XENIX

在开发 MS-DOS 的同时,微软还忙于将 Xenix 移植到各种处理器和机器架构,包括Z8000、8086/80286 和 68000 。1984 年,Xenix 成为全球最受欢迎的 Unix 变体。

之后由于美国政府将贝尔实验室解体,导致 AT&T 分拆,该公司开始向计算机制造商和最终用户销售 Unix System V 。微软认为,如果没有自己的操作系统,他们实现未来目标的能力就会受到影响。这导致微软决定从 Xenix 转型,1987年微软将 Xenix 的所有权转让给了其合作伙伴 The Santa Cruz Operation(SCO)。

OS/2

1985年,微软开始与 IBM 合作开发名为 OS/2 的新操作系统,最初的设计目前是成为“更强大的 DOS ”。然而,由于种种原因,1990年微软和 IBM 结束合作,IBM 单独继续开发和支持 OS/2,一直到2006年底。

 

3、微软的豪赌 - Windows NT

1988年,微软聘请了具有传奇色彩的程序员—— Dave Cutler 。Cutler 的目标是创建一个新的、现代化的、独立于平台的操作系统,微软将完全拥有和控制该系统,并将赌入其未来。

这个新的操作系统就是 Windows NT,也是后来的 Windows 2000、Windows XP、Windows Vista、Windows 7、Windows 8 和 Windows 10 以及所有版本的 Windows Server、Windows Phone 7 +、Xbox 和 Hololens 的基础。

Windows NT 通过其“ Windows 控制台”终端应用和“命令提示符”(cmd.exe)提供命令行界面。cmd 被设计为尽可能与 MS-DOS 批处理脚本兼容,以帮助简化业务对新平台的采用。

 

4、PowerShell 发力

尽管 cmd 仍然保留在 Windows 中(并且可能还会持续几十年),但由于它的主要作用是尽可能保持向后兼容,所以很少得到改进,即使是一些小的 bug 修复。

在2000年初,cmd shell 已不再能满足微软及其客户需要的更强大、更灵活的命令行体验。这种需求推动了 PowerShell 的诞生。

PowerShell 是面向对象的 Shell ,它不处理文本流,而是处理对象流,使 PowerShell 脚本编写者能够直接访问和操作对象的属性,而不必编写和维护很多脚本来解析和处理文本。

基于 .NET Framework 和 Common Language Runtime(CLR)构建的 PowerShell 语言和语法旨在将 .NET 生态系统的丰富性与各种其他 shell 脚本语言中最常见和最有用的功能相结合,专注于确保脚本高度一致。PowerShell 已被许多 Microsoft 平台技术和合作伙伴采用,包括 Windows、Exchange Server、SQL Server、Azure 等等。

PowerShell Core 是 PowerShell 的开源版本,适用于 Windows 和各种 Linux、BSD 和 macOS 。

 

5、POSIX on NT

在设计 NT 时,Cutler 和他的团队对 NT 的内核和系统进行了专门设计,以支持多个子系统。当 Windows NT 3.1 在1993年首次亮相时,它支持数个子系统:MS-DOS、Windows、OS / 2 v1.3 和 POSIX v1.2 。这些子系统允许 NT 在相同的机器和基础系统上运行针对多个操作系统平台的应用,而无需安装虚拟机或模拟器。

虽然 Windows NT 的原始 POSIX 实现是可以接受的,但它需要大幅改进才能使其真正具备实用性。因此,微软收购了 Softway Systems 和其 与 POSIX 兼容的 “Interix” NT 子系统。 Interix 最初是作为单独的扩展提供的,之后在 Windows Server 2003 R2 和 Windows Vista 中作为 “Unix for Services”(SFU)发布。但是,由于并没有多少用户感兴趣,SFU 在 Windows 8 之后已停止开发。

访问:

微软原版Win10 iso镜像

 

6、Windows 10 —— 新一代 Windows 命令行

在 Windows 10 的早期开发阶段,微软发起了一项调查,向社区询问他们在操作系统的各个领域需要哪些功能。结果如下:

•  改进 Windows 控制台进行

•  让用户能够在 Windows 上运行 Linux 工具

基于这些反馈,微软组建了两支新队伍。Windows 控制台和命令行团队负责管理和维护 Windows 控制台和命令行基础架构;另外一个团队负责做一个真正能让未经修改的 Linux 二进制文件直接在 Windows 10上运行的工具,即 Windows Subsystem for Linux(WSL)。

WSL

WSL 首次在 Build 2016 上对外宣布,并在不久后出现在 Windows 10 Insider 中。在之后的多个 Insider 构建以及自 2016年秋季版之后的每个主要版本中,WSL 的功能性、兼容性和稳定性都得到了改善。在社区的大力帮助下,WSL 迅速获得了许多新功能,使其能够运行日益复杂的 Linux 二进制文件和工作负载。

 

详解Windows 命令演变史:力证 DOS 未过时3.jpg

 

Windows 控制台

在2014年底,随着 WSL 的开发工作全面展开,并且由于用户对命令行重新兴起的兴趣,Windows 控制台迫切需要增加更多功能来满足需求。尤其是,控制台缺乏现代 * NIX 兼容系统所需的许多特性,比如解析和渲染 * NIX 世界中广泛使用的 ANSI / VT 序列,以便呈现丰富多彩的文本和基于文本(text-based)的 UI 。

以下是控制台在 Windows 7 和 Windows 10 中呈现时的示例:

 

详解Windows 命令演变史:力证 DOS 未过时4.jpg

 

 
相关文章