微软回顾 Windows 命令行演变史,力证 DOS 未过时

2018 年 7 月 9 日 开源中国


作者:OSC-王练

链接:

https://www.oschina.net/news/97658/evolution-of-windows-command-line

转载请在文中注明来源和作者


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


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 中呈现时的示例:



更多细节可查阅博客原文:


  • https://blogs.msdn.microsoft.com/commandline/2018/06/27/windows-command-line-the-evolution-of-the-windows-command-line/


开源中国征稿开始啦!


开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿




推荐阅读

Python 超越 Java 并逐渐拉开差距 | PYPL 指数榜

颠覆网站 C/S 模式,没有服务器的网站会带来什么变革?

为什么 Windows 7 会成为 Windows 10 最大的敌人?

RSS 之父 Winer 炮轰 Google 反客为主强推 HTTPS

SUSE Linux 再次易主!以 25 亿美元被 EQT 收购

点击“阅读原文”查看更多精彩内容

登录查看更多
0

相关内容

【实用书】Python技术手册,第三版767页pdf
专知会员服务
235+阅读 · 2020年5月21日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
【电子书】Flutter实战305页PDF免费下载
专知会员服务
22+阅读 · 2019年11月7日
重磅!Flutter 2019年最新进展和未来展望
前端之巅
4+阅读 · 2019年6月20日
“黑客”入门学习之“windows系统漏洞详解”
安全优佳
8+阅读 · 2019年4月17日
BMC新举措,审稿过程更清晰,投稿更放心
科研圈
27+阅读 · 2018年10月24日
Java开发者必看!机器学习开发库精选
云栖社区
5+阅读 · 2018年8月22日
Python3.7中一种懒加载的方式
Python程序员
3+阅读 · 2018年4月27日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Python语音识别终极指南
人工智能头条
8+阅读 · 2018年4月8日
手把手教你用Python创建微信聊天机器人
新智元
4+阅读 · 2018年3月14日
Gluon —— 微软和亚马逊联合推出深度学习库
开源中国
7+阅读 · 2017年10月24日
Arxiv
92+阅读 · 2020年2月28日
Arxiv
35+阅读 · 2019年11月7日
Arxiv
3+阅读 · 2018年3月13日
VIP会员
相关VIP内容
相关资讯
重磅!Flutter 2019年最新进展和未来展望
前端之巅
4+阅读 · 2019年6月20日
“黑客”入门学习之“windows系统漏洞详解”
安全优佳
8+阅读 · 2019年4月17日
BMC新举措,审稿过程更清晰,投稿更放心
科研圈
27+阅读 · 2018年10月24日
Java开发者必看!机器学习开发库精选
云栖社区
5+阅读 · 2018年8月22日
Python3.7中一种懒加载的方式
Python程序员
3+阅读 · 2018年4月27日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Python语音识别终极指南
人工智能头条
8+阅读 · 2018年4月8日
手把手教你用Python创建微信聊天机器人
新智元
4+阅读 · 2018年3月14日
Gluon —— 微软和亚马逊联合推出深度学习库
开源中国
7+阅读 · 2017年10月24日
Top
微信扫码咨询专知VIP会员