軟Windows10的內置Linux系統WSL已經有幾年歷史了。不得不說,在Windows中內置原生的Linux系統,對微軟而言是個非常冒險的舉措,但也是微軟大刀闊斧擁抱開源世界的轉折點。幾年來,雖然用戶對WSL一直詬病不斷,但其用戶體驗與功能卻一直穩步向前邁進。雖然WSL下使用桌面環境非常不方便,但對大部分深度Linux用戶來說,使用Linux更多是由于其內核與設計的美學而不是拼湊起來的桌面,因此,從某種程度上來說,Windows的桌面系統與Linux命令行系統的結合,也的確可能打造出一套更接近理想的操作系統來(這就像體驗MacOS一樣,因此如果預算允許,還是MacOS更值得推薦)。
目前WSL系統已經可以支持的Linux發行版包括Debian、Ubuntu、KaliLinux、OpenSUSE和Fedora,基本上囊括了各個流行的Linux開發版。對于習慣或者應該在Linux系統下進行開發的專業用戶來說,可以擺脫虛擬機、雙系統的局限,在Windows系統下暢快使用各種Linux開發板進行開發。本文對Windows系統下安裝與配置WSL進行介紹。
要安裝WSL,需要先在Windows中啟用該功能,這可以在使用管理員權限打開Powershell命令行中輸入下列命令實現。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
當然,也可以在控制面板-->程序和功能-->啟用或關閉Windows功能中,勾選適用于Linux的Windows子系統選項來打開。
上述步驟可能需要重啟電腦。
WSL子系統的安裝,同樣有三種途徑,第一種是在Microsoft Store微軟在線商店中搜索Linux并根據需要點擊安裝相應的Linux子系統。
由于微軟商店在國內訪問的不穩定性,可能需要嘗試多次才能安裝成功。當然,也可以按照微軟的官方文檔,直接下載相應的發行版并進行安裝。參考的下載地址分別如下:
安裝WSL的第三種方式是通過PowerShell命令行下載與安裝,例如可通過下列命令安裝Ubuntu16.04
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing
Add-AppxPackage .\app_name.appx
下載并安裝完成后,Linux子系統會進行初始化,需要輸入默認的管理員用戶與密碼,才可以正常使用。該賬戶與windows系統賬戶相互獨立,賬戶擁有對應的Linux子系統下的sudo權限。
如果忘記Linux子系統密碼,WSL系統也提供了一個重置密碼的選項,這和是默認的Linux系統不具備的功能,同時也是一些潛在的安全隱患來源,輸入下列命令可以重置WSL子系統密碼。
wsl -u root #重置默認的WSL子系統密碼
wsl -d Debian -u root #重置指定的發行版(非默認的)子系統debian的密碼,debian可替換為其他發行版
在搜索欄輸入(或者在開始菜單中查找)可以看到相應的linux發行版圖標。點擊即可進入相應的Linux子系統命令行中開始使用。
當然,也可以在windows命令行(僅支持Powershell,不支持cmdline)中輸入相應linux發行版指令直接進入相應的linux子系統中。在命令行下進入linux子系統的好處是可以保持默認的windows子目錄不變(經過試驗,僅僅在ubuntu系統下如此,進入opensuse和kali的時候都會改變),官方文檔對此示例如下,在我的powershell中,輸入ubuntu并無法進入linux系統,需要改為ubuntu18.04.exe:
PS C:\Users\sarah> pwd
Path
----
C:\Users\sarah
PS C:\Users\sarah> ubuntu
scooley@scooley-elmer:~$ pwd
/home/scooley
scooley@scooley-elmer:~$ exit
logout
PS C:\Users\sarah>
當然,也可以在windows命令行下直接輸入wsl命令進入默認的linux子系統中,或者輸入bash進入默認的linux子系統中。
針對windows10 19.03或更高版本系統,可以使用下列命令行命令來管理和配置系統中安裝的不同linux子系統發行版。
wsl -l
wsl --list #列出系統中安裝的所有linux發行版
wsl --list --running #列出當前在運行的linux發行版
wsl -s <DistributionName> #-s等于--setdefault,設置系統默認的linux子系統發行版
wsl --unregister <DistributionName> # 卸載指定的發行版
wsl -u <Username>
wsl --user <Username> #以特定用戶訪問linux子系統
wsl -d <DistributionName>
wsl --distribution <DistributionName> #運行、進入指定的linux發行版
在windows 10 19.03之前的版本,可能需要類似 wslconfig.exe /l類似的指令來完成上述操作。
在Windows 內部預覽版17093之后的版本中,可以手動配置WSL參數,在每個linux子系統發行版的/etc/wsl.conf 文件中可對WSL子系統進行配置。官方文檔提供的一個配置文件參考如下,各配置項意義見配置文檔說明。
# Enable extra metadata options by default
[automount]
enabled=true
root=/windir/
options="metadata,umask=22,fmask=11"
mountFsTab=false
# Enable DNS – even though these are turned on by default, we’ll specify here just to be explicit.
[network]
generateHosts=true
generateResolvConf=true
微軟為WSL設計有專門的問題解決頁面Troubleshooting。其中幾個典型的常見問題如下:
安裝WSL后,在復雜的Windows文件管理體系中又增加了更多的復雜性,為此微軟有專門的章節對WSL系統的文件權限進行說明。在實際使用中,最簡單的做法莫過于不要讓兩個系統的文件有太多交集。由于WSL子系統在Windows系統下的存儲路徑過于復雜。(例如我的電腦中ubuntu的系統路徑在這里C:\Users\weizy\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs)為了便于使用,可以在windows盤符下創建一個Linux專用的文件夾,比如D:\linux\ubuntu并在WSL下創建一個軟連接,比如ln -s /mnt/d/linux/ubuntu ~/ubuntu就可以將前面創建的文件夾軟連接到ubuntu子系統主目錄的ubuntu文件夾中,這樣在兩個系統中都可以方便的訪問。
由于國內網絡條件的原因,linux系統的升級和軟件倉庫訪問可能速度很慢或者無法完成,這時可能需要將對應的軟件倉庫修改為對應的國內軟件源,可以在清華大學開源軟件鏡像站找到相應的Linux發行版,根據對應的說明進行文件修改和替換。
雖然WSL安裝在本機上,可以直接通過命令行訪問,但是如果習慣了通過XSHELL,PUTTY等軟件訪問Linux主機的話,可能更希望將主機添加到SSH客戶端中進行統一的管理和訪問。默認的ubuntu終端SSH Server可能存在bug,導致無法訪問,需要卸載并重新安裝 openssh-server 軟件后方可和通常的linux系統一樣配置ssh方式進行訪問。
如果其他電腦要通過遠程SSH訪問WSL,還需要在windows防火墻中開啟相應端口。配置方式為 設置-->網絡和Internet-->Windows防火墻-->高級設置-->入站規則-->新建規則-->端口。配置相應端口即可。
在時間的汪洋中,我們人類的所有記憶,都在一張名為“世界”的淡藍色地圖上徐徐展開。
人類對地圖的癡迷,和文化本身的歷史一樣悠久。
中文里,我們更常說“版圖”,“版”是戶籍,“圖”才是地圖,連在一起,意思就是在權力支配下的土地地圖。
地圖,也就被看作描繪了國家支配空間的說明書,是財富、權利和榮耀的象征。所以,頗得領導們的喜愛。
今天的故事,就與曾經締造了中國航海巔峰的鄭和航海地圖有關。
據說,鄭和的航海圖,得自于數千年前神秘的古埃及,爾后又在中國的典籍中離奇地銷聲匿跡,之后的中國開始逐步與世界脫鉤,喪失掉了參與繪制世界地圖進程的主動權。
以亞歷山大港為中心的托勒密世界地圖
鄭和用的那張航海地圖的名字,就叫做——托勒密世界地圖。
這張“托勒密世界地圖”是15世紀的修復版本。
托勒密世界地圖,幾乎影響了它誕生以來2000多年的人類歷史。不僅僅是鄭和用它來七下西洋,緊隨其后的哥倫布,也是由于這張地圖的“錯誤指示”,才發現了新大陸,開啟了我們今天的全球化時代。
話說,當年,哥倫布是聽了馬可·波羅的忽悠,才想著拿它去中國和日本的。我們先看看波羅先生在《馬可·波羅行紀》中是怎么添油加醋的吧:
秦海(秦來源于秦朝,意思就是中國的海洋),是一個和印度洋同樣廣闊的海洋,秦海中有7448 座島嶼,其中最大的就是日本島。這個國家遍地都是黃金,每個人都擁有龐大的黃金儲備。這個國王的宮殿,完全是由純金打造的。宮殿內的無數房間、地面上也都鋪滿了兩個手指那么厚的金磚。
日本,居然成了一個純金的島嶼。估計看完這些描述,整個東亞人民現在都是:
但在當時,窮怕了的歐洲人還就真信了。哥倫布更是信心滿滿,因為在當時,他自認為手中有了全世界最靠譜的地圖——托勒密世界地圖,靠譜得你簡直無法反駁。
你看,這張地圖,上面有經緯網,還有,最重要的一點,它突破了宗教觀念的束縛,表現出地球是個圓的,是不是很科學?
還有,你看,地圖的最右邊,是中國和日本,左邊是我們歐洲,既然地球是個圓的,那我把地圖一對折,怎么著?我們歐洲和中日兩國就接起來啦!
就像這樣,對折起來。
哇!那我從歐洲往西走的話,那中國和日本不就近在咫尺了嗎!別說,錯誤的信息,加上錯誤的地圖,還真起到了“負負得正”的效果。就這樣,哥倫布“如愿以償”地發現了新大陸——美洲。
理論很豐滿,但現實卻很骨感。哥倫布其實是被這份地圖的制作者克羅狄斯·托勒密給誤導了。
克羅狄斯·托勒密(Claudius Ptolemaeus,)“地心說”的集大成者,生于埃及,父母都是希臘人。公元127年, 年輕的托勒密被送到亞歷山大去求學。
怎么說呢,雖然這張繪制于2000多年前的地圖被稱為是人類歷史上的第一幅世界地圖,但是從現代的視角來看,他所描繪的“世界地圖”只包括了古埃及最大商業都市亞歷山大及其周圍的貿易空間。
更直觀化的托勒密世界地圖。
圖片來源:The Atlas of Ancient and Classical Geography by Samuel Butler,出版年:1907.
也就是說,除了當時阿拉伯半島南部與敘利亞因為和埃及之間的乳香貿易非常興盛,所以輪廓描繪的輪廓非常準確,半島周圍的紅海、亞丁灣、波斯灣雖然描繪得有點走形,但也還算準確之外,其他的所謂“世界”,不得不說,畫得就有點湊合了。
比如說,印度,在這張圖上,你幾乎找不到它,但實際上,托勒密爺爺是畫了的,只不過它不是伸出來的小甜筒形狀。更夸張的是斯里蘭卡,本來如一顆淚珠般秀氣的它被描繪為異常巨大的島嶼。
據說這主要是因為古羅馬商人從來沒有到過斯里蘭卡島,都是在印度港口購買轉運而來的豐富的斯里蘭卡商品,心想:這應該是個物產富饒的大國吧,我就給你在地圖上往大了整吧。
而有太平洋和東亞各國的形象準確地出現在世界地圖上,則要等到1524年。
但瑕不掩瑜,托勒密使用相同間隔的經線和緯線以俯瞰的視角描繪出西起摩洛哥、東至中國的廣闊區域,在人類歷史上首次客觀和準確地表現出了陸地和海洋之間位置關系,光憑這一點,就足以傲視群圖。
除此之外,托勒密還有一個非常偉大的地方就是,他基本掌握到了陸地與海洋的整體形狀。
在后世紀念托勒密的肖像畫中,托爺爺都會驕傲地舉起這個象征著自己學術成就的全球。
圖片來源:維基百科
古代的天文學、地理學以及國際商業都市亞歷山大港積累的海圖和地圖,都被托勒密完美結合在一起。可以說,這是世界上第一幅以上帝視角創作出來的世界地圖。
托勒密在他的代表作《地理學》的開頭指出,創作這本書的目的就在于俯瞰人類居住的“全部”世界。托勒密的地理學,就是將整個地球(geo)相關的信息圖像(graphic)化的學問。
托勒密世界地圖在很長一段時間里,作為標準的世界地圖,對歐洲乃至亞洲都產生了非常大的影響。自從五千年前人類文明誕生以來,一直過了三千年,才首次出現了這張能夠幫助人類在未知的海洋中航行的世界地圖。
雖然對哥倫布形成了誤導,但也不得不承認,這種誤導也發揮了積極的作用。
走進鄭和的世界地圖
有時候,歷史遠比小說情節更加跌宕起伏。本來,離搞懂整個地球只差一步之遙的古希臘羅馬,卻隨著羅馬帝國的東西分裂而迅速衰落。
托勒密世界地圖在歐洲失去了其曾經的價值,卻被阿拉伯人視為珍寶。從唐玄宗時代開始一直到元代末期,由于中國一直堅持開放政策,由阿拉伯人規范和改良過的托勒密世界地圖,也被帶入了中國。
在元朝滅亡10 年之后的1378 年,從明朝《大明混一圖》(混一是“ 世界”的意思)中,我們能夠很明顯地看出其受托勒密世界地圖的影響。
在這張地圖上不僅將大明朝按照傳統的方法描繪得很大,還描繪了比實際更小的印度半島、印度洋、阿拉伯半島、波斯灣以及舌狀的非洲大陸。
圖片來源:中國第一歷史檔案館
這個將傳統的中國地圖與伊斯蘭的地理知識機械性地結合在一起的新類型的“世界地圖”,就是那個時代的中國人對世界的嶄新認識。
1405年,Judy命令回族宦官鄭和率領一支龐大的艦隊,在東南亞、印度、波斯灣、非洲東岸等地進行了六次航海(包括下一任皇帝時期總共進行了七次航海)。
在近代世界史上,像鄭和這樣率領如此龐大的艦隊進行航海的壯舉,可以說是獨一無二的,這也是托勒密世界地圖第一次對人類艦隊的航海產生真正巨大影響。
在很長一段時期內,后世都認為敵視宦官的明朝官員們將鄭和艦隊使用過的海圖全部付之一炬。但實際上,在明朝末期,一個叫茅元儀的人編撰的《武備志》中,卻十分偶然地混進了一張海圖。
根據《武備志》復原出的鄭和航海圖,這是一本參考了2000 余部書籍而編寫出來的兵法書。可能是艦隊船員手中的海圖幸免于難留存下來之后,被偶然地收集到了這本書中。
圖片來源:《武備志》
根據參加過鄭和遠洋航行的船員所遺留下來的航海日志分析,我們可以斷定這幅海圖就是鄭和艦隊所使用的海圖。
鄭和艦隊使用的海圖,形狀是一幅很長的書卷,描繪了從南京到波斯灣霍爾木茲港的漫長航線,其中包括河流的入海口與流域、島嶼、暗礁、沿岸的主要城市、港口、航線、指南針的方位、行程、距離等龐大的數據。
從中國沿岸到東南亞的海圖是以中國傳統的繪畫形式描繪的。印度洋海域則是對應伊斯蘭的天文航海法以托勒密世界地圖為基礎描繪的海圖。
鄭和海圖,將使用指南針的中國傳統航海法的海域,和使用伊斯蘭世界天文航海法的海域采用完全不同的繪圖方法進行繪制,并且將兩者完美地結合在了一起,可以說是鄭和海圖最為出色的地方。
但是,在鄭和艦隊的航行結束之后,明朝脫離了歐亞大陸的商圈,實行海禁政策,再次走上了內陸封閉的道路。
之前一直被放在擴張上的注意力被重新轉向對內的建設,原本擴展至歐亞大陸范圍的中國的對外貿易在明朝時期一下子變得萎靡不振。
利瑪竇和《坤輿萬國全圖》
公元1500年前后,人類進入大航海時代。地理大發現,將散落在地球上各個板塊的不同國度,第一次連接在一起。人們開始熱衷于征服海洋的探險,開始比以往更加重視地圖。
地圖就象征著對到達財富之地的控制,此時的歐洲諸國,地圖開始被作為最高的國家機密,被各國君主們嚴防死守。
利瑪竇像
圖片來源:維基百科
100之后的1601年,來自意大利的傳教士利瑪竇已經來中國傳教十多年了,但一直沒有辦法打開他的傳教之路。無奈之中,他決定鋌而走險,獻上西方世界的最高機密——地圖,來買通大明朝的萬歷皇帝。
這就是《坤輿萬國全圖》,它以托勒密世界地圖為基礎,采用了當時最先進的多種投影法繪制而成。
《坤輿萬國全圖》的原版在中國早已遺失,這張地圖是日本于1604年的翻刻版。
圖片來源:日本東北大學附屬圖書館狩野文庫畫像
而我國傳統的制圖方法,是建立在平面測量的基礎之上,即計里畫方,這種方法在小范圍內可以達到一定的精度,但由于誤差會累計疊加,而對繪制大范圍的全國地圖或世界地圖就不夠精確了。
利瑪竇帶來了標有經緯網格的世界地圖及其繪制方法,極大提高了地圖的精確程度。
在明朝,我國天文學者已經能夠通過觀星的方法測定緯度,但經度卻一直測不準。因為經度要有準確的時間計量才能換算出來,利瑪竇帶來了自鳴鐘,極大地提高了時間計量精度。
在利瑪竇的主持下,《坤輿萬國全圖》成為了當時世界上測量最精確、信息含量最大的地圖之一。
從這張地圖中我們可以發現,鄭和第一次下西洋之后的兩百年中,西方人幾乎弄清了整個地球的具體情況。但諷刺的是,當利瑪竇把《坤輿萬國全圖》,以及幫助中國天文學家確定經度的自鳴鐘獻給萬歷皇帝之后,并沒有得到積極的回應。
他最重要的工作,卻已經變成了為皇帝修理那些來自歐洲的玩具——自鳴鐘。再精確的地圖,也終究沒能挽留住帝國閉關鎖國的決心。
《坤輿萬國全圖》被視為世界留給中國的最后一次機會,但卻被皇帝拒絕了。
在此之后,中國人的世界地圖也歸于傳統,本來中國人本來有機會親自將由古希臘地理學家主導的托勒密世界地圖中缺失的東亞和東南亞部分親自補全,卻最終放棄了主動權。
又過了兩百年,當1840年英國敲開中國國門之時,道光帝拋出了一個驚天之問:
英吉利,在哪嘎達?
而答案,其實利瑪竇早就已經給出了。