Windows Terminal 發布以后,立刻引爆了整個技術圈,各種社交媒體上紛紛傳播著它的消息,它開源的 GitHub 倉庫的星標數一路飆升,迅速成為當日 GitHub 趨勢榜的首名,甚至連它 issue 區都擠滿了人——以至于項目運營團隊緊急出場管理。不過,在我觀看了相關的資料和視頻以后,感覺并沒有那么令人興奮。
在我看到一時間出現的很多文章,都視 Windows Terminal 為 Windows 下命令行體驗的救世主之后,我覺得,是時候潑一盆冷水降降溫了。
Windows Terminal 項目下的討論
在潑冷水之前,我想先來介紹一下 Windows Terminal 是什么,以方便你理解我的觀點:Windows Terminal 是一個套在 Windows 操作系統原本的 CMD、Powershell、Windows Subsystem for Linux(WSL)之上的一個界面更加漂亮、功能更加強大的終端工具。嚴格來說,它是套在 CMD 、Powershell 之上的一個終端。
Powershell on Windows Terminal。
圖片來源: https://devblogs.microsoft.com/commandline/introducing-windows-terminal/
這里需要了解一下 終端(terminal)和 shell 的區別:
在命令行中,shell 提供了訪問操作系統內核功能的途徑,比如說我們所熟悉的 bash、zsh,都是不同的 shell;而終端則為 shell 提供視覺界面(窗口),比如我們所熟悉的 iTerm2、Linux 桌面上的終端工具等。甚至于我們在 VSCode 中所使用的命令行,也是某種意義上的終端。
我們在 Windows 下所使用的 CMD、Powershell 既然是一個終端,也是一個 Shell,還是同名的腳本系統。
但是,它也只是一個終端而已,而不是一個更加好用的 Shell。
作為一個終端,Windows Terminal 無疑是合格的,它提供了非常強大的功能,來自微軟的強大工程能力也讓它能夠吸引更多的眼球。
Cmder 效果圖。
圖片來源:Cmder 官網
但是,如果僅僅是一個終端,其實開源社區早已有更多的解決方案,比如 cmder 、 ConEmu 、 Hyper 等等,這些 Terminal 也足夠好看和好用。
ConEmu效果圖。
圖片來源:ConEmu 官網
這種第三方就可以做好的事情,微軟官方的進入不過是在現有的命令行生態下提供更多的一種選擇,而不是真正的問題解決方案。
那么我們是對什么不滿意呢?Windows 用戶所吐槽的命令行不好用不在于其表面,而在于其沒有一個足夠好用的 Shell。 Windows 下的兩個命令行界面都各有自己的問題,CMD 因為時間久遠,很多功能不齊全。而 Power Shell 雖然功能強大,但不合理的命令語法,大量冗長的、駝峰式命名的命令和參數使得用戶的命令操作極為不便,體驗極差。如果沒有一個足夠好用的 Shell ,無論換了多少外面的終端,無非是披了一個閃閃發光的、半透明的漂亮外衣罷了。
對于開發者們來說,真正希望 Windows 做的,不是一個更漂亮的終端。漂亮的終端只能讓他們一時新鮮,但是如果希望開發者們真正感覺到 Windows 命令行好用,就需要提供一個更加強大的 Shell,幫助開發者能夠用上 Unix 式的命令行工具。
在 Microsoft Build 2019 大會上,除了 Windows Terminal 以外,還發布了 Windows Subsystem for Linux 2(WSL2)。新一代的 WSL 相比于上一代,提供了完整的 Linux 內核,將會提供更好的系統支持。看起來,Windows Terminal 和 WSL 的結合,已經非常完美了,但作為一個 Shell 來用的話,又顯的過于笨重。
WSL 2 所提供的,不過是一個更加簡單、更加易用的 Windows 下的虛擬機,你不再需要安裝 Virtual Box、VMWare 而已,一個 Windows Subsystem for Linux 就可以滿足開發者的大部分需求。
但是,這并不能解決問題,這治標不治本的選擇。WSL 無論做的再怎么好,無法擺脫它只是一個運行于 Windows 系統中附屬的子系統。無論 WSL 做的再好,本質上并沒有比虛擬機做的更多。
Windows Love Linux。
圖片來源: https://cloudblogs.microsoft.com/windowsserver/2015/05/06/microsoft-loves-linux/
作為 Windows 系統的開發者,微軟真正的價值顯然不是做一個終端那么簡單。作為生態的打造者,微軟真正可以做好的是,打造一個能夠在體驗和生態上與 Unix Shell 一致的 Shell,或者是干脆提供 Bash、Zsh 等常用 Shell 的原生支持(WSL 雖然支持 Bash、Zsh等,但依然是需要先進入 WSL 才能使用,但你可以暢想一下,如果 CMD 變成了 Bash,會是什么樣的呢?)。這些事情是第三方開發者所無法做的更好的,只有生態的構建者在一開始就將一個體驗良好的 Shell 放置在系統的核心,無需開發者自行安裝、配置,才能夠讓開發者真正擁有一個好的命令行體驗。如果微軟能提供一個足夠好用的 Shell,我相信類似于 Windows Terminal 這樣的應用,會如雨后春筍一般,從開源社區中源源不斷的冒出來。
對于廣大使用 Windows 開發的用戶來說,一個閃閃發亮的、現代化的、功能強大的終端固然很好,但好的終端只不過是錦上添花之舉,而一個強大好用的 Shell 才是真正能夠雪中送炭的東西,只有一個足夠好用的 Shell,才能成為 Windows 命令行世界的救世主。而這,才是真正值得微軟花費大量的時間、精力去做的。
Windows和Intel兩家巨頭攜手掌控個人消費PC市場話語權已多年,Wintel聯盟看似牢不可破,看隨著一大批搭載Windows 10操作系統的ARM芯片筆記本亮相,這兩個原本親密無間的巨頭關系還能繼續保持嗎?
ARM的Windows 10電腦開賣
近年來輕薄筆記本受到了大眾的熱捧,華麗麗的外觀和輕便的體積都是我所欲也,但輕薄帶來的弊端也很明顯,續航大幅降低,從而不得不削弱處理器性能。
Intel在移動智能終端上發力較晚,后期也是心有余而力不足,ARM&高通也順勢而起,占據了大半江山,近年推出的驍龍系列處理器更是無人能敵,在蠶食了絕大部分手機市場之后,終于把手伸到了PC,因此一大堆搭載驍龍845處理器的超級本扎堆發布。
搭載驍龍835、Windows 10系統的惠普、華碩筆記本電腦陸續登場,這是繼Windows 8 RT之后,微軟又一次對ARM平臺的嘗試。顯然,這樣的嘗試恐怕或多或少會讓老搭檔Intel心理不怎么快活……
不支持64位程序有點尷尬
Windows 8 RT開始對ARM平臺嘗試后,微軟似乎就一直卡在應用上了,而這一次,似乎也不太順利。據neowin報道,微軟日前更新了一份Windows 10 on ARM的技術文檔,明確了這一平臺的一些局限。
首先需要注意的是,ARM平臺的Windows10無法運行64位程序。這是因為微軟實現ARM平臺模擬運行x86 Win32程序的模擬器嫁接的是x64運行x86的那一套。
除此之外,還不支持Hyper-V虛擬機技術;專為手機平臺開發的UWP在ARM Win10上依然難用;所有需要調用OpenGL 1.1.以上版本API的游戲無法運行;只有ARM64位驅動才能適配和安裝;專為Windows平臺開發優化的APP可能工作不暢。
對于以上這種情況,高通也主動做過說明,稱搭載驍龍835芯片的電腦性能,會比搭載AMD/英特爾CPU的電腦要慢。這是因為,驍龍芯片處理為x86架構打造的exe程序時,需要借助微軟開發的抽象層和模擬層,無法實現100%的代碼直接編譯。
Windows 10 on ARM將于五月支持64位應用
對于這樣的缺陷,微軟顯然不愿意就這么放棄。如此前承諾的那樣,這件事將很快迎來改變。據 Engadget 報道,在五月份召開的Build 2018 開發者大會上,微軟將會最終放出一款允許開發者編譯 ARM64 應用的 SDK 。
統一Windows 應用(UWP)支持三種封裝形式,即ARM、x64、以及 x86 。此前包括Windows Phone在內的許多ARM設備,都只支持32位的系統和應用。不過需要指出的是,即便 Windows on ARM PC 運行著 64 位的操作系統,它會優先調用 ARM 封裝包。
如果 ARM 包不存在,那么系統會在商店里搜尋 x86 包(因為不支持 x64)。
對終端用戶來說,新的 ARM64 SDK 會帶來細微的不同。App 運行速度可能會略快一些,但它無法解決根本性的問題 —— 缺少對x64的支持。
大多數 Win32 應用都有提供32位版本,但Photoshop Elements 等軟件卻不是,且微軟不大可能在短時間內為Windows 10 on ARM帶來x64仿真。
點擊下方閱讀原文,關注電腦報新媒體矩陣更多精彩