详解Windows 命令演变史:力证 DOS 未过时
1、简陋的开始 —— MS-DOS
在 PC 行业的早期,大多数计算机完全是通过在命令行输入命令来操作的。 基于 Unix、CP / M、DR-DOS 等机器争夺地位和市场份额。 最终,MS-DOS 成为 IBM 个人电脑上的标准操作系统,尤其是在企业中:
像当时大多数主流操作系统一样,微软 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 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 之后已停止开发。
访问:
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 控制台
在2014年底,随着 WSL 的开发工作全面展开,并且由于用户对命令行重新兴起的兴趣,Windows 控制台迫切需要增加更多功能来满足需求。尤其是,控制台缺乏现代 * NIX 兼容系统所需的许多特性,比如解析和渲染 * NIX 世界中广泛使用的 ANSI / VT 序列,以便呈现丰富多彩的文本和基于文本(text-based)的 UI 。
以下是控制台在 Windows 7 和 Windows 10 中呈现时的示例: