瀏覽量:110次
windows操作歷史,windows的操作系統(tǒng)和發(fā)展史
歡迎閱讀“Windows命令行”系列的第二篇文章。在本文中,我們將討論Windows命令行背后的一些背景和歷史。具體來(lái)說(shuō),我們將探究它在MS-DOS中卑微的出身以及它的現(xiàn)代支持工具,比如Linux系統(tǒng)中的PowerShell和Windows子系統(tǒng)。
1、命令行的由來(lái)
2.Windows命令行的發(fā)展歷史(本文)
在本系列的上一篇文章中,我們討論了命令行的歷史和基本原理,并了解了命令行的架構(gòu)如何隨著時(shí)間的推移而基本保持不變,即終端從機(jī)電電傳發(fā)展到現(xiàn)代終端應(yīng)用。
我們的旅程現(xiàn)在沿著一條相當(dāng)復(fù)雜的道路繼續(xù),從早期的PC,通過(guò)微軟和幾個(gè)操作系統(tǒng)的合作,到今天復(fù)興的命令行:
簡(jiǎn)陋的開始- MS-DOS
回顧計(jì)算機(jī)行業(yè)的早期,大多數(shù)計(jì)算機(jī)都是通過(guò)在命令提示行中輸入命令來(lái)操作的?;赨nix、CP/M、DR-DOS和其他操作系統(tǒng)的計(jì)算機(jī)爭(zhēng)奪領(lǐng)導(dǎo)地位和市場(chǎng)份額。最后,MS-DOS作為IBM個(gè)人計(jì)算機(jī)和裝配工的標(biāo)準(zhǔn)操作系統(tǒng)脫穎而出,特別是在商業(yè)領(lǐng)域。
MS-DOS 6.0
和當(dāng)時(shí)大多數(shù)主流操作系統(tǒng)一樣,微軟的MS-DOS“命令行解釋器”或“shell程序”提供了一套簡(jiǎn)單、奇怪但相對(duì)有效的命令和一套用于編寫batch(。bat)文件。
MS-DOS很快被各種規(guī)模的企業(yè)采用,數(shù)百萬(wàn)個(gè)批處理腳本被創(chuàng)建出來(lái),其中一些至今仍在使用。批處理腳本用于自動(dòng)配置用戶的機(jī)器、設(shè)置/更改安全設(shè)置、更新軟件、編譯代碼等等。
由于命令行腳本在后臺(tái)運(yùn)行,您可能永遠(yuǎn)看不到命令行腳本運(yùn)行。舉個(gè)例子,當(dāng)你登錄一臺(tái)工作電腦時(shí),實(shí)際上每天有數(shù)百億個(gè)命令行腳本和命令在Windows上運(yùn)行。
因?yàn)槊钚惺且粋€(gè)需要耐心和堅(jiān)持學(xué)習(xí)如何使用這些最有效的命令和工具的命令,所以大多數(shù)非技術(shù)用戶都苦于使用命令行來(lái)有效地驅(qū)動(dòng)他們的計(jì)算機(jī),而大多數(shù)不喜歡命令行的人則不得不學(xué)習(xí)記憶大量短得令人難以置信的命令,以使他們的計(jì)算機(jī)做任何有用的事情。
因此,迫切需要一種更加用戶友好和高效的用戶體驗(yàn)。
圖形化界面變成主流
受施樂(lè)Alto的啟發(fā),圖形用戶界面(GUI)已經(jīng)成為主流。
很多有競(jìng)爭(zhēng)力的GUI正在迅速涌現(xiàn),包括蘋果的Lisa和Macintosh,Commodore Amiga (Workbench),Atari ST (DRI的GEM),Acorn Archimedes (Arthur/RISC OS),Sun Workstation,X11/X Windows,還有很多其他的,包括微軟的Windows:
Windows 1.0于1985年問(wèn)世。它基本上是一個(gè)MS-DOS應(yīng)用程序,提供一個(gè)簡(jiǎn)單的窗口GUI環(huán)境,允許用戶同時(shí)運(yùn)行多個(gè)應(yīng)用程序:
Windows 1.01在MS-DOS上運(yùn)行
Windows 2.x,3.x,95,98都是在MS-DOS的基礎(chǔ)上運(yùn)行的。雖然后來(lái)的Windows版本開始替代以前MS-DOS提供的功能,但都是基于Windows的替代(如文件系統(tǒng)操作),都依賴于其MS-DOS基礎(chǔ)。
注意:Windows ME(千禧年版)是一個(gè)有趣的嵌合體!它最終用一些新功能(尤其是游戲和媒體技術(shù))取代了MS-DOS的基礎(chǔ)和上一版本W(wǎng)indows的實(shí)模式支持。Windows 2000中增加了一些功能(比如新的ip協(xié)議棧),在家用電腦上運(yùn)行可能會(huì)比較困難。這個(gè)故事最終可能會(huì)成為一個(gè)有趣的帖子。(感謝蜜蜂對(duì)此的看法:)
然而,微軟知道,到目前為止,他們只能擴(kuò)展MS-DOS和Windows的架構(gòu)和功能:微軟知道,它需要一個(gè)新的操作系統(tǒng)來(lái)構(gòu)建他們的未來(lái)。
微軟-Unix市場(chǎng)的領(lǐng)導(dǎo)者!是的,我是認(rèn)真的!
在開發(fā)MS-DOS的過(guò)程中,微軟也在忙于將Xenix ——微軟的Unix版本7-交付給各種處理器和機(jī)器架構(gòu),包括Z8000、8086/80286和68000。
到1984年,微軟的Xenix已經(jīng)成為世界上最流行的Unix變種!
然而,美國(guó)政府拆分了貝爾實(shí)驗(yàn)室—— Unix的故鄉(xiāng)——,這導(dǎo)致了ATT的拆分,后者開始向計(jì)算機(jī)制造商和最終用戶銷售Unix system V。
微軟認(rèn)為,沒(méi)有自己的操作系統(tǒng),他們實(shí)現(xiàn)未來(lái)目標(biāo)的能力將受到損害。這導(dǎo)致了從Xenix轉(zhuǎn)型的決定:1987年,微軟將Xenix的所有權(quán)轉(zhuǎn)讓給了其合作伙伴——圣克魯斯運(yùn)營(yíng)公司(SCO)。微軟在Xenix上開發(fā)了幾個(gè)項(xiàng)目,在不同的平臺(tái)上移植和增強(qiáng)Xenix。
微軟+IBM==OS/2
1985年,微軟開始與IBM合作開發(fā)新的操作系統(tǒng)OS/2。OS/2最初被設(shè)計(jì)成“一個(gè)更有能力的DOS”。它的設(shè)計(jì)利用了一些現(xiàn)代的32位處理器和原始設(shè)備制造商(包括IBM)的其他技術(shù)。
然而OS/2的故事總是撲朔迷離。1990年,微軟和IBM結(jié)束了合作。這是由許多因素造成的,包括IBM和微軟開發(fā)人員之間的顯著文化差異、時(shí)間安排挑戰(zhàn)以及Windows 3.1采用的爆炸式成功和增長(zhǎng)。IBM繼續(xù)開發(fā)和支持OS/2,直到2006年底。
到1988年,微軟確信它未來(lái)的成功需要一個(gè)更大、更大膽和更有雄心的方法。這種方法需要一個(gè)新的現(xiàn)代操作系統(tǒng)來(lái)支持公司的宏偉目標(biāo)。
微軟的大賭注——Windows NT
1988年,微軟聘請(qǐng)了戴夫卡特勒,他是DEC廣受歡迎的vax/vms操作系統(tǒng)的創(chuàng)始人。Cutler的——的目標(biāo)是創(chuàng)建一個(gè)新的、現(xiàn)代的、獨(dú)立于平臺(tái)的操作系統(tǒng),在未來(lái)的大部分時(shí)間里,微軟將擁有、控制和構(gòu)建這個(gè)操作系統(tǒng)。
這個(gè)新的操作系統(tǒng)變成了Windows NT ——。發(fā)展到Windows 2000,Windows XP,Windows Vista,Windows 7,Windows 8,Windows 10,以及Windows Server,Windows Phone 7,Xbox,Hololens的所有版本!
Windows從一開始就被設(shè)計(jì)成平臺(tái)無(wú)關(guān)的,最初是支持Intel的i860,后來(lái)是MIPS R3000、Intel 80386、DEC Alpha和PowerPC。此后,Windows NT操作系統(tǒng)被移植到支持IA64“Itanium”、x64和ARM/ARM64處理器架構(gòu)的硬件上。
Windows通過(guò)其Windows控制臺(tái)終端應(yīng)用程序提供了命令行界面和命令提示符外殼(cmd.exe)。Cmd被設(shè)計(jì)為盡可能與MS-DOS兼容的批處理腳本,以幫助簡(jiǎn)化企業(yè)對(duì)新平臺(tái)的采用。
PowerShell 的力量
盡管Cmd仍然存在于Windows中(并且很可能在未來(lái)的幾十年內(nèi)都是如此),但因?yàn)樗闹饕康氖潜M可能保持向后兼容性,所以Cmd很少得到改進(jìn)。如果這些“錯(cuò)誤”存在于MS-DOS或更早版本的Windows中,甚至“修復(fù)錯(cuò)誤”有時(shí)也會(huì)很困難!
2000年初,Cmd shell已經(jīng)失去了它的威力,微軟及其客戶迫切需要一個(gè)更強(qiáng)大、更靈活的命令行體驗(yàn)。這種需求推動(dòng)了PowerShell的產(chǎn)生(這來(lái)自杰弗里斯諾弗的“單子宣言”)。
PowerShell是一個(gè)面向?qū)ο蟮腟hel l L,與*NIX世界中基于文件/流的Shell不同:PowerShell腳本編寫人員可以直接訪問(wèn)和操作對(duì)象及其屬性,而不需要處理文本流,他們不必編寫和維護(hù)大量的腳本來(lái)解析和操作文本(例如,通過(guò)sed/grep/awk/lex/等。).
基于。net框架和公共語(yǔ)言運(yùn)行時(shí)(CLR),PowerShell的語(yǔ)言和語(yǔ)法結(jié)合了。net與許多不同的外殼具有最常見(jiàn)的和其他有用的功能,重點(diǎn)是確保腳本高度一致和非常強(qiáng)大。
要了解更多關(guān)于PowerShell的信息,我推薦閱讀《PowerShell In Action》(Manning Press),作者是Bruce Payette,他是PowerShell語(yǔ)法和語(yǔ)言的設(shè)計(jì)者。在前幾章中,以啟發(fā)性的方式討論了語(yǔ)言設(shè)計(jì)的基本原則。
PowerShell已被許多微軟平臺(tái)技術(shù)和合作伙伴采用,包括Windows、Exchange Server、SQL Server、Azure和許多其他技術(shù),并以高度一致的方式提供用于管理和控制Windows機(jī)器和/或環(huán)境的所有方面的命令。
PowerShell Core,PowerShell的開源未來(lái)版本,適用于Windows以及各種版本的Linux、BSD、macOS!
在 NT、Interix 和 UNIX 服務(wù)上的 POSIX
在設(shè)計(jì)NT時(shí),Cutler和他的團(tuán)隊(duì)專門設(shè)計(jì)了NT內(nèi)核和操作系統(tǒng),以支持多個(gè)子系統(tǒng)3354的用戶模式代碼與底層內(nèi)核之間的接口。
當(dāng)Windows NT 3.1在1993年首次發(fā)布時(shí),它支持幾個(gè)子系統(tǒng):MS-DOS、Windows、os/2 v1.3和POSIX v1.2。這些子系統(tǒng)允許NT在同一臺(tái)機(jī)器和基本操作系統(tǒng)上運(yùn)行應(yīng)用程序,而無(wú)需虛擬化或仿真。——即使在今天,這也是一個(gè)強(qiáng)大的功能!
雖然Windows NT最初的POSIX實(shí)現(xiàn)是可以接受的,但它需要顯著的改進(jìn)才能真正具備能力,因此微軟收購(gòu)了Softway Systems及其“Interix”NT子系統(tǒng)。Interix最初是作為一個(gè)單獨(dú)的插件發(fā)布的,后來(lái)與幾個(gè)有用的實(shí)用程序和工具結(jié)合在一起,在Windows Server 2003 R2和Windows Vista中作為Unix服務(wù)(SFU)發(fā)布。然而,SFU在Windows 8之后停止了,主要是因?yàn)榭蛻羧狈εd趣。
然后一件有趣的事情發(fā)生了。
Windows 10 - 新時(shí)代的 Windows 命令行!
在Windows 10開發(fā)之初,微軟就開通了用戶反饋?lái)?yè)面,向社區(qū)詢問(wèn)操作系統(tǒng)各方面需要哪些功能。社區(qū)強(qiáng)烈要求微軟:
1.重點(diǎn)改進(jìn)Windows控制臺(tái)。
2.允許用戶在Windows下運(yùn)行Linux的工具
基于這些反饋,微軟組建了兩個(gè)新團(tuán)隊(duì):
1.Windows控制臺(tái)命令行團(tuán)隊(duì),接手并徹底完善Windows控制臺(tái)命令行底層。
2.另一個(gè)團(tuán)隊(duì)負(fù)責(zé)在Windows 10下運(yùn)行Windows A的真實(shí)的、未修改的Linux二進(jìn)制文件—— Linux子系統(tǒng)(WSL)。
其他人,他們都說(shuō),那是歷史!
Linux 的 Windows 子系統(tǒng)(WSL)
基于GNU/Linux的“分發(fā)”(Linux內(nèi)核和用戶模式工具集合的組合)的使用率一直在穩(wěn)步增長(zhǎng),尤其是在服務(wù)器和云計(jì)算領(lǐng)域。雖然Windows有一個(gè)兼容POSIX的運(yùn)行時(shí),但SFU缺乏運(yùn)行許多Linux工具和二進(jìn)制文件的能力,因?yàn)楹笳叩南到y(tǒng)調(diào)用和行為差異與傳統(tǒng)的Unix/POSIX不兼容。
由于Windows客戶和用戶的反饋,以及微軟內(nèi)部不斷增長(zhǎng)的需求,微軟做了很多調(diào)查,最終決定讓W(xué)indows運(yùn)行不加修改的,真正的Linux二進(jìn)制文件!
2014年年中,微軟成立了開發(fā)Linux的Windows子系統(tǒng)(WSL)的團(tuán)隊(duì)。WSL最初是在2016年的Build大會(huì)上公布的,不久之后在Windows 10的內(nèi)部版本中進(jìn)行了預(yù)覽。
此后,在大多數(shù)內(nèi)部版本中,自2016年秋季發(fā)布周年更新以來(lái),WSL的功能廣度、兼容性和穩(wěn)定性都有了顯著提升:WSL最初發(fā)布時(shí),是一個(gè)有趣的實(shí)驗(yàn),運(yùn)行了幾種常見(jiàn)的Linux工具,但未能運(yùn)行許多常見(jiàn)的開發(fā)者工具/平臺(tái)。團(tuán)隊(duì)迭代很快,并得到了社區(qū)的大量幫助(感謝所有社區(qū)!),WSL很快獲得了許多新特性,使其能夠運(yùn)行越來(lái)越復(fù)雜的Linux二進(jìn)制文件和工作負(fù)載。
今天(2018年年中),WSL能夠愉快地運(yùn)行大多數(shù)Linux二進(jìn)制文件、工具、編譯器、連接器、調(diào)試器等等。許多開發(fā)人員、IT專業(yè)人員、devops工程師和許多需要運(yùn)行或構(gòu)建Linux工具、應(yīng)用程序和服務(wù)的人都享受到了顯著提高的生產(chǎn)力,他們可以在同一臺(tái)機(jī)器上運(yùn)行他們喜愛(ài)的Linux工具和所有Windows工具,而無(wú)需雙系統(tǒng)。
WSL團(tuán)隊(duì)繼續(xù)致力于提高WSL執(zhí)行許多Linux場(chǎng)景的能力,以及它與Windows集成的性能和體驗(yàn)。
Windows控制臺(tái)重啟和檢修
2014年底,Linux構(gòu)建Windows子系統(tǒng)(WSL)的項(xiàng)目如火如荼。由于對(duì)命令行的興趣激增,顯然Windows控制臺(tái)需要一些TLC,應(yīng)該根據(jù)客戶和用戶的常規(guī)需求進(jìn)行許多改進(jìn)。
特別是,該控制臺(tái)缺乏許多現(xiàn)代NIX兼容系統(tǒng)的功能,例如解析和呈現(xiàn)在*NIX世界中廣泛使用的ansi/vt序列,以呈現(xiàn)豐富多彩的文本和基于文本的UI。
那么,如果用戶不能正確查看和使用Linux工具,那么構(gòu)建WSL的目的是什么?
以下是Windows 7和Windows 10中的控制臺(tái)渲染示例:注意Windows 7中的控制臺(tái)(左)無(wú)法在Windows 10中正確渲染tmux、htop、Midnight Commander、cowsay等Linux工具生成的VT(右):
比較Windows 7和Windows 10中的控制臺(tái)
因此在2014年成立了一個(gè)新的小型“Windows主機(jī)團(tuán)隊(duì)”,負(fù)責(zé)破解、理解和改進(jìn)主機(jī)的代碼庫(kù).這個(gè)時(shí)候游戲機(jī)已經(jīng)28歲了,3354比開發(fā)它的開發(fā)者還要老!
任何曾經(jīng)不得不采用舊的、粗糙的和不太優(yōu)化的代碼庫(kù)的開發(fā)人員都可以證明,更新和優(yōu)化舊代碼通常是“棘手的”。在不破壞現(xiàn)有行為的情況下做到這一點(diǎn)更加困難。在不破壞數(shù)百萬(wàn)客戶的腳本、工具、登錄腳本、構(gòu)建系統(tǒng)、制造系統(tǒng)、分析和生產(chǎn)系統(tǒng)的情況下,更新所有windows版本中最頻繁的可執(zhí)行文件需要大量的“細(xì)心和耐心”。
為了應(yīng)對(duì)這些挑戰(zhàn),團(tuán)隊(duì)很快學(xué)會(huì)了嚴(yán)格符合客戶期望的控制臺(tái):例如,如果團(tuán)隊(duì)從一個(gè)版本偏離了兩個(gè)控制臺(tái)甚至百分之一的性能,Windows build團(tuán)隊(duì)就會(huì)觸發(fā)警報(bào),導(dǎo)致“嗯…”快速而直接的反饋”,通常需要立即修復(fù)。
因此,當(dāng)我們?cè)谖磥?lái)的文章中討論控制臺(tái)的改進(jìn)和新功能時(shí),請(qǐng)記住,每一個(gè)變化都有一些不可侵犯的原則,包括:
1.不要引入/暴露新的安全漏洞。
2.不要破壞現(xiàn)有的客戶(內(nèi)部或外部)、工具、腳本、命令等。
3.不要逆轉(zhuǎn)性能或增加內(nèi)存消耗/IO(沒(méi)有明確和充分溝通的原因)
在過(guò)去的3年中,控制臺(tái)團(tuán)隊(duì)已經(jīng):
控制臺(tái)的內(nèi)部結(jié)構(gòu)檢查了很多。
極大地簡(jiǎn)化和減少了控制臺(tái)中的代碼量。
替換幾個(gè)內(nèi)部實(shí)現(xiàn)的集合、列表、堆棧等。使用STL容器
以及模塊化和隔離的邏輯和功能單元,從而在不“毀滅世界”的情況下改進(jìn)(有時(shí)替換)功能。
將幾個(gè)以前獨(dú)立且不兼容的控制臺(tái)引擎合并為一個(gè)
增加了許多可靠性、安全性和安全性改進(jìn)。
增加了解析和呈現(xiàn)ansi/vt序列的能力,使控制臺(tái)能夠準(zhǔn)確呈現(xiàn)來(lái)自NIX和其他現(xiàn)代命令行工具和應(yīng)用程序的富文本輸出。
讓主機(jī)呈現(xiàn)24位顏色,而之前只有16種顏色!
提高控制臺(tái)的可訪問(wèn)性,以便敘述者和其他UIA應(yīng)用程序可以瀏覽控制臺(tái)窗口的內(nèi)容。
添加/改進(jìn)了鼠標(biāo)和觸摸支持
工作還在繼續(xù)!我們目前正在完成一些令人興奮的新特性的實(shí)現(xiàn),我們將在本系列的最新文章中討論這些特性。
那么,我們現(xiàn)在在哪里?
如果你讀到這里,恭喜你,謝謝你!
那么,為什么要上歷史課呢?
希望你看了上面的歷史就明白了。要知道命令行仍然是微軟戰(zhàn)略、平臺(tái)和生態(tài)系統(tǒng)的關(guān)鍵組成部分。
即使微軟向最終用戶提供Windows GUI,微軟及其技術(shù)客戶/用戶/合作伙伴也嚴(yán)重依賴Windows命令行來(lái)完成大量的技術(shù)任務(wù)。
事實(shí)上,如果沒(méi)有一個(gè)快速、高效、穩(wěn)定、安全的控制臺(tái),微軟根本無(wú)法打造Windows本身或任何其他軟件產(chǎn)品。
在MS-DOS、Unix、OS/2、Windows時(shí)代的整個(gè)過(guò)程中,命令行仍然是每個(gè)技術(shù)用戶工具箱中最重要的工具!甚至很多很少在控制臺(tái)輸入命令的用戶,也會(huì)每天使用控制臺(tái)!當(dāng)您在Visual Studio(VS)中構(gòu)建代碼時(shí),您的構(gòu)建是在一個(gè)隱藏的控制臺(tái)窗口中生成的!如果您使用Exchange Server或SQL Server的管理工具,那么許多這些命令都是通過(guò)PowerShell在一個(gè)隱藏的控制臺(tái)中執(zhí)行的!
在本文中,我們討論了很多問(wèn)題:我們回顧了微軟操作系統(tǒng)的一些歷史,因?yàn)樗c命令行和Windows控制臺(tái)有關(guān)。我們還了解了Windows控制臺(tái)的起源。
在下一篇文章中,我們將開始深入研究這項(xiàng)技術(shù)本身。敬請(qǐng)期待!
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776