鯨魚,即是 Docker。而 Mac OS X,因其之前使用大型貓咪來命名,故而稱其爲大貓咪。在 Linux 電腦上通過 Docker 來運行 Mac OS X,自然也就是鯨魚背上的大貓咪了。——題記
在處理 D102669 時,遇到了一個僅在 Mac 上纔會觸發的 bug。而手上除了豹豹有一臺公司的 MBP 外,整個家族也就再無觸手可即的 Mac 了。雖說是公司的電腦,但畢竟是豹豹的,所以也就不好意思拿來編譯和 debug。再加上一直以來在 OS X 上都沒有搞掂 debug 相關的事情,於是便萌生了自己來弄一個 Mac 電腦的想法。
作爲一個窮鬼書生,買是買不起的,畢竟家父不是國王。於是,便思考起左道旁門來。比如:進到一家蘋果店裏,把展出的 Mac 電腦連到實驗室的伺服器上開一個反向代理,然後白嫖人家的展示機。不過最後還是鑑於良心上的譴責以及確實登錄會存在問題而放棄了這個方案。(好孩子不可以學我這樣做哦)
因此,看起來比較切實可行的方案就只剩下了黑蘋果和虛擬機。在一次偶然的搜索時,發現了這樣一個項目:Docker-OSX,於是瞬間豁然開朗。這個項目把 QEMU KVM 運行 OS X 虛擬機所必須的文件都封裝到一個 Docker 鏡像中,從而完美地解決了自己配置 OS X 虛擬機搞不掂的問題。使用起來也相當方便且順暢,只需要一條命令把這個 Docker 鏡像運行起來,你便擁有了一個可用的 OS X 環境。
別家的使用教程已經有很多了,這裏就不再贅述,我只給出一些個人的使用經驗。官方教程影片在這裏(https://youtu.be/wLezYl77Ll8),有興趣可自行學習。我這邊使用的是默認版本的鏡像,也就是 Mac OS 10.15 Catalina。啓動之後,默認的鏡像是裸機環境,需要自行安裝系統。安裝大約耗時半小時,安裝完成之後就可以直接使用了。由於沒有 GPU 加速,因此 UI 會比較卡頓。但打開 SSH 登錄之後,直接使用控制檯時並不存在卡頓的問題。因此如果需求是使用 GUI 應用較多的話,還是需要考慮一下配置 GPU 加速的。由於我這邊是跑編譯和 debug,用的工具也是控制檯上運行的 Vim 和 GDB/LLDB,而 GUI 的卡頓對於我的影響也就微乎其微了。
由於編譯需要消耗比較多的記憶體以及 CPU 資源,於是便轉移到了實驗室的伺服器上來運行。這裏便遇到了第一個需要解決的問題:遠端的 QEMU 界面如何在本地顯示。解決的方法就是 X forwarding。首先在 SSH 連接實驗室的伺服器時需要開啓 X forwarding,即 ssh 命令的 -X 或 -Y 參數。同時爲了不卡頓,還需要開啓流量壓縮,即 -C 參數。爲了鑑權方便,我這裏選擇了 -Y 參數。如果是使用其他 SSH 客戶端的話,需要查看一下自己的客戶端如何啓用這兩個選項。
OpenRA 項目脫胎自 Westwood 公司的經典 RTS 遊戲 Red Alert,自 EA 將 Red Alert 開源之後便有了這樣一個全平臺的開源項目。再加上由社區接管之後,大家給這個經典遊戲添加了很多更「現代」的操作方式,以及對於更現代化的設備有了更好的支持,因此相較於最原始的 Red Alert 來說,可玩性和兼容性都有了很大的提升。遊戲通過 .Net 框架實現了跨平臺,因此不光支持 Windows 平臺,Mac OS 和 Linux 也都有良好的支持,甚至 OpenRA 都進入了某些激進的發行版的官方倉庫。
進入遊戲之後,遊戲的 UI 佈局和快捷鍵的設置則是基本照抄 Red Alert 3 的了。雷達、建造選項、金錢、電力等信息放置於右上角,超級武器等支援能力的使用選項則放置於左上角。建造選項爲每行三個共四行,對應各項的快捷鍵分別爲 F1 ~ F12 鍵。建築、防禦、士兵、載具、飛行、水上的選單分別對應 E ~ I 鍵,而變賣、電力控制、修理則分別對應於 Z、X 和 C 三個鍵。幾乎與 Red Alert 3 的完全相同。而建造選單方面不僅相對於原版 Red Alert 加入了單位生產的排程,甚至針對於建築物的建造也可以排程。相信這一點凡是玩過原作的玩家都會覺得是一個非常好的文明。