詳解Windows 命令演變史:力證 DOS 未過時
1、簡陋的開始 —— MS-DOS
在 PC 行業(yè)的早期,大多數(shù)計算機完全是通過在命令行輸入命令來操作的。 基于 Unix、CP / M、DR-DOS 等機器爭奪地位和市場份額。 最終,MS-DOS 成為 IBM 個人電腦上的標準操作系統(tǒng),尤其是在企業(yè)中:
像當時大多數(shù)主流操作系統(tǒng)一樣,微軟 MS-DOS 的“命令行解釋器”或 “shell” 提供了一個簡單、奇特但相對實用的命令集,以及用于編寫批處理(.bat)命令的命令腳本語法和文件。
微軟稱:
你可能很少或者說根本不會看到批處理或命令行腳本正在運行,因為許多操作都是在后臺執(zhí)行的,例如登錄到工作PC。僅在 Windows 上每天就會有數(shù)千億的命令行腳本和命令被執(zhí)行。
2、GUI 流行
之后,受施樂奧托(Xerox Alto)的啟發(fā),大量 GUI 出現(xiàn)在 Apple Lisa、Macintosh、Commodore Amiga、Atari ST、Acorn Archimedes、Sun Workstation、X11 / X Windows 以及許多其他公司產(chǎn)品(包括 Microsoft Windows )中。
1985 年推出的 Windows 1.0 ,基本上可以看成是一個提供簡單平鋪式窗口 GUI 環(huán)境的 MS-DOS 應用,允許用戶并排運行多個應用:
之后的 Windows 2.x、3.x、95 和 98 都運行在 MS-DOS 基礎之上。
這期間,還出現(xiàn)了:
XENIX
在開發(fā) MS-DOS 的同時,微軟還忙于將 Xenix 移植到各種處理器和機器架構,包括Z8000、8086/80286 和 68000 。1984 年,Xenix 成為全球最受歡迎的 Unix 變體。
之后由于美國政府將貝爾實驗室解體,導致 AT&T 分拆,該公司開始向計算機制造商和最終用戶銷售 Unix System V 。微軟認為,如果沒有自己的操作系統(tǒng),他們實現(xiàn)未來目標的能力就會受到影響。這導致微軟決定從 Xenix 轉(zhuǎn)型,1987年微軟將 Xenix 的所有權轉(zhuǎn)讓給了其合作伙伴 The Santa Cruz Operation(SCO)。
OS/2
1985年,微軟開始與 IBM 合作開發(fā)名為 OS/2 的新操作系統(tǒng),最初的設計目前是成為“更強大的 DOS ”。然而,由于種種原因,1990年微軟和 IBM 結(jié)束合作,IBM 單獨繼續(xù)開發(fā)和支持 OS/2,一直到2006年底。
3、微軟的豪賭 - Windows NT
1988年,微軟聘請了具有傳奇色彩的程序員—— Dave Cutler 。Cutler 的目標是創(chuàng)建一個新的、現(xiàn)代化的、獨立于平臺的操作系統(tǒng),微軟將完全擁有和控制該系統(tǒng),并將賭入其未來。
這個新的操作系統(tǒng)就是 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 批處理腳本兼容,以幫助簡化業(yè)務對新平臺的采用。
4、PowerShell 發(fā)力
盡管 cmd 仍然保留在 Windows 中(并且可能還會持續(xù)幾十年),但由于它的主要作用是盡可能保持向后兼容,所以很少得到改進,即使是一些小的 bug 修復。
在2000年初,cmd shell 已不再能滿足微軟及其客戶需要的更強大、更靈活的命令行體驗。這種需求推動了 PowerShell 的誕生。
PowerShell 是面向?qū)ο蟮?Shell ,它不處理文本流,而是處理對象流,使 PowerShell 腳本編寫者能夠直接訪問和操作對象的屬性,而不必編寫和維護很多腳本來解析和處理文本。
基于 .NET Framework 和 Common Language Runtime(CLR)構建的 PowerShell 語言和語法旨在將 .NET 生態(tài)系統(tǒng)的豐富性與各種其他 shell 腳本語言中最常見和最有用的功能相結(jié)合,專注于確保腳本高度一致。PowerShell 已被許多 Microsoft 平臺技術和合作伙伴采用,包括 Windows、Exchange Server、SQL Server、Azure 等等。
PowerShell Core 是 PowerShell 的開源版本,適用于 Windows 和各種 Linux、BSD 和 macOS 。
5、POSIX on NT
在設計 NT 時,Cutler 和他的團隊對 NT 的內(nèi)核和系統(tǒng)進行了專門設計,以支持多個子系統(tǒng)。當 Windows NT 3.1 在1993年首次亮相時,它支持數(shù)個子系統(tǒng):MS-DOS、Windows、OS / 2 v1.3 和 POSIX v1.2 。這些子系統(tǒng)允許 NT 在相同的機器和基礎系統(tǒng)上運行針對多個操作系統(tǒng)平臺的應用,而無需安裝虛擬機或模擬器。
雖然 Windows NT 的原始 POSIX 實現(xiàn)是可以接受的,但它需要大幅改進才能使其真正具備實用性。因此,微軟收購了 Softway Systems 和其 與 POSIX 兼容的 “Interix” NT 子系統(tǒng)。 Interix 最初是作為單獨的擴展提供的,之后在 Windows Server 2003 R2 和 Windows Vista 中作為 “Unix for Services”(SFU)發(fā)布。但是,由于并沒有多少用戶感興趣,SFU 在 Windows 8 之后已停止開發(fā)。
訪問:
6、Windows 10 —— 新一代 Windows 命令行
在 Windows 10 的早期開發(fā)階段,微軟發(fā)起了一項調(diào)查,向社區(qū)詢問他們在操作系統(tǒng)的各個領域需要哪些功能。結(jié)果如下:
• 改進 Windows 控制臺進行
• 讓用戶能夠在 Windows 上運行 Linux 工具
基于這些反饋,微軟組建了兩支新隊伍。Windows 控制臺和命令行團隊負責管理和維護 Windows 控制臺和命令行基礎架構;另外一個團隊負責做一個真正能讓未經(jīng)修改的 Linux 二進制文件直接在 Windows 10上運行的工具,即 Windows Subsystem for Linux(WSL)。
WSL
WSL 首次在 Build 2016 上對外宣布,并在不久后出現(xiàn)在 Windows 10 Insider 中。在之后的多個 Insider 構建以及自 2016年秋季版之后的每個主要版本中,WSL 的功能性、兼容性和穩(wěn)定性都得到了改善。在社區(qū)的大力幫助下,WSL 迅速獲得了許多新功能,使其能夠運行日益復雜的 Linux 二進制文件和工作負載。
Windows 控制臺
在2014年底,隨著 WSL 的開發(fā)工作全面展開,并且由于用戶對命令行重新興起的興趣,Windows 控制臺迫切需要增加更多功能來滿足需求。尤其是,控制臺缺乏現(xiàn)代 * NIX 兼容系統(tǒng)所需的許多特性,比如解析和渲染 * NIX 世界中廣泛使用的 ANSI / VT 序列,以便呈現(xiàn)豐富多彩的文本和基于文本(text-based)的 UI 。
以下是控制臺在 Windows 7 和 Windows 10 中呈現(xiàn)時的示例: