學Linux倒不是因此學校叫我學才學,而是一陣一陣。因為我念的是語言相關的科系。」
我不認為我已經學會Linux,尤其是伺服器這一塊還很淺。現在主要把Linux當主力作業系統,用來文書處理、美工,以及玩遊戲,偶爾開發程式。
學Linux好處是認識了很多開源軟體方案,而且很多都是跨平台的,可以取代許多商業軟體。當然我是說自用方面,業界可能多半無法接受。
學習Linux過程蠻碎片化的,知識點是一個一個補齊全,最近才知道中文輸入法有那麼多框架能選,我特地去上了Linux的入門課和閱讀鳥哥的Linux私房菜,才知道循序漸進的學是怎樣感覺。為了增進了解,我去資工系修資料結構和作業系統(因為這二科都不用用到數學;P)。
編年史#
2018年
最早的接觸是高中時用的Ubuntu 16.04,因為32位元的Windows 7在2GB記憶體的主機上有點卡,所以尋求替代品,當時還是用Wubi這種懶人的方案來安裝。
用了之後,果然還是一樣卡,或許不是E3300 CPU的關係,而是長期以來GPU都是依賴G41的主機板顯卡(我最近才知道),所以Gnome桌面動畫會lag也就不意外了。
後來Lubuntu也沒好到哪去,因為顯示晶片不夠力導致LXDE視窗常常變成IE一樣的掉格重疊畫面。
因此斷斷續續玩幾個月後就刪掉了,不過這是一個開始。
2020年
在那之後沉寂了幾年,到2020年開始又入迷Ubuntu。現在看來Ubuntu不等於Linux全部,可是是最好入門的。當時我電腦居然中類似Wannacry的Mars病毒,就胡亂把Windows 10刪除,用Ubuntu做為主力系統,但是Libreoffice用不慣,導致後來用不到一個月又回到Windows。當時還把資料碟格式化成EXT4,可在Windows上要裝驅動程式才能讀,而且相容性也不好,所以也換回NTFS。
在這個混亂的時期,我也大致會用虛擬機了,因此Linux就改存在VMware裡面。
2021年
2021年應該是接觸最廣的一年。我想做Windows 11和Linux雙系統,本來是這樣,可是Windows常常開機後就把Ubuntu分區搞壞(開機後要用fsck修復硬碟),我裝了Fedora和Kubuntu也不能解決分區損壞問題,所以又變回單系統。之後又有試過Arch Linux ,太麻煩。
9月,Termux開了我眼界,Termux可以在Android手機上執行終端機,除了Android本身的指令外,也能建立類似chroot的Linux環境,也就是限制更多的Proot,不用root權限,但是要自己設定VNC、PulseAudio,甚至是設定X11 server。感覺很像在用Arch Linux,但是Proot功能畢竟還是有限,無法使用systemd,要硬體加速也要編譯驅動程式。
研究Termux讓我知道了更多Linux底層細節,甚至為了跑docker而編譯出支援cgroups的Android kernel。
此時還接觸到postmarketOS,給手機用的Linux發行版,源自Alpine Linux這個超小的發行版,但是它用的是很少見的muslc,移植軟體過去有難度。
Alpine Linux似乎在docker方面比較受歡迎。要在封閉驅動的Android上跑Linux,不採用libhybris的技術會碰到很多硬體驅動問題,可是像Ubuntu touch的話就有一點縫合怪的感覺。
微軟推出的WSL2也差不多成熟了,不過我不太喜歡像chroot一樣限制多的系統,要處理的問題太多了,還是老實開虛擬機吧。
2022年
2022年我又回到Ubuntu當主系統,在學校與個人自學的努力下,Windows平台我已經學習過主流的文書美編軟體了,掌握基本概念,花一個學期「向Linux遷移」:在Windows這個相對穩定的平台多用Windows版的開源軟體,以及熟練虛擬機,完成準備之後就能幾乎無痛遷移到Linux。
不過在那之前,先嘗試了一個禮拜的Manjaro KDE,雖然很漂亮,但是我果然還是不習慣AUR的安裝軟體模式,而且Manjaro的軟體倉庫也不完全是Arch Linux的,所以問題會更難以解決。
最後還是老實換成Ubuntu 20.04。
美工繪圖部分已有Adobe的替代方案: GIMP、Kritia、Kdenlive。至於文書就用網頁版Ofice。
遊戲部分,我主要玩的大型遊戲:War Thunder沒什麼問題,但是Minecraft基岩版恐怕真的只能玩Android版。
因為目前的想法是,真有必要用Windows軟體,我也有KVM加速的高效Windows虛擬機可以用,因此Ubuntu當主系統是沒問題的。
除非我哪天需要用到Visual Studio…哈哈,Linux只有VS Code。
莫名其妙的是,每年都會重灌電腦,今年這次還不小心損失了Github建站資料,所以以後不論出於什麼原因,都必須將長期性保存的文件存在資料碟,考慮相容性,資料碟還是使用NTFS。
現在Linux打指令的警覺性較高,不會再發生製作開機碟卻把另一個資料碟格式化的慘案;用圖像化程式來處理也是保險一點的方案。
桌面環境就維持預設的Gnome就好了…雖然碰過Manjaro KDE,不過Gnome的簡單風也不壞。
全面改用自由軟體從這裡開始#
為什麼要用Linux呢?請先看FSF(Free Software Foundation) 的自由軟體定義:
「自由軟體」代表軟體尊重使用者的自由,以及社群的自由。粗略地講,它代表使用者擁有執行、複製、散布、研究、更動和改善該軟體的自由。
因為認同FSF的理念,為隱私,為安全,更重要的是為自由,醞釀四年決定全盤轉換到Linux,指的是電腦、手機的作業系統,都必須是Linux;而運作在上面的軟體,大部分也都得是自由軟體。甚至是電腦週邊配件(繪圖板、網路卡)等也必須是對Linux友好,為證明Linux不是只能存在於伺服器,同時也能當成桌面系統使用。
要說身份,我只能算業餘的程式開發者,使用電腦和手機的日常用途依然是寫作、辦公、作美工,偶爾玩點遊戲。
那麼就說說切換到Linux的發現與學習吧,分為幾個部分,下述提及的軟體都有附超連結供參考。
電腦採用自由的系統#
電腦規格:i5-7400 + Nvidia GTX1050Ti,美光500GB SSD + 16 GB RAM。
現在硬碟上只有一個Ubuntu,雙系統對用Linux來說並無好處,只會讓人想一直進Windows而已,且Windows常常破壞Linux分區。
發行版採用Ubuntu + Gnome的原因為很多人用,使用圖形介面和終端機的比率大約一半一半。
儘管Ubuntu被指責過做過監視使用者的骯髒事,以及我行我素,像是強推Snappy跟Flatpak對抗(後者大部分發行版都有採用),我還是覺得主力電腦用Ubuntu為好,以期獲得工作與娛樂之平衡。等到各發行版的共通概念摸熟之後,或許就可以離開Ubuntu,去學Gentoo或LFS。
而另一台主機板為G41晶片組的舊電腦,我倒是一直切換發行版,在上面試過Arch Linux、Fedora、openSUSE,並使用Flatpak消弭常用軟體於各發行版的差異,不會有哪家的打包版本比較舊的問題。
但仍有要用到Windows的時候,比方說回答別人的刷機問題,或是教授要我們用Visual Studio。這時我的解決方案是QEMU KVM虛擬機,在Linux上的效率比起VMware和VirtualBox快多了。
於是情況反轉,過去幾年把Linux關在Windows平台的虛擬機裡面,當作偶爾把玩的東西。現在日常主力變成Linux,Windows禁錮在虛擬機裡,偶爾用來開那些「頑固軟體」,例如Line電腦版。
對硬體的要求亦可以擴展到筆電/變形平板上,未來採買筆電應該不會買一堆僅支援Windows的硬體,就只為了驅動鍵盤光效和調整螢幕顏色。所以Surface是看似不錯的平板,但不是首選。
小結:現在電腦只有一個主系統,其餘系統都鎖在虛擬機裡面,多重開機只會使人分心。
全面改用自由軟體#
很多東西都可以用自由軟體替代,就算業界、學術單位不採用,自學自用也是可以。
要注意的的是開源軟體並不完全等價自由軟體,但此標準目前仍過於嚴格。
2021年花了6個月正式開始遷移至Linux的計畫,於是逐步於Windows 11上使用自由軟體,逐漸與Office、Adobe美工軟體脫鉤,使之成為「真的緊急;別人傳來的檔案打不開時才使用」
這些東西自由軟體都可以取代,Office要製作新文件就用LibreOffice。但是論文考慮到要給教授看,仍是用網頁版Word編輯。
影像編輯主要用GIMP、Kritia、Kdenlive替代。
GIMP有智慧填充的功能能夠製圖修圖,還能漢化漫畫,字體主要使用"NotoSans CJK"。
Kritia是替代Photoshop用於繪圖,為此還把繪圖板從蒙恬換成華康的,這樣才能安裝社群提供的驅動。
Kdenlive可以勝任我大部分的YouTube影片剪輯作業,包括上字幕。能夠替代威力導演和繪聲繪影等級的剪輯軟體。
有需要做建模就用Blender,處理Blockbench的模型也綽綽有餘,有時候還可以做一點影片特效。寫程式有編譯器和GNU Nano就能寫,跨平台IDE還有QT Creator和VS Code可以用。
瀏覽器在Windows時期是從Chrome跳到Edge,後來換成Firefox。Firefox現在在市場上反而是弱勢,好多網頁在Firefox上看就會不正常,例如Imgur無法拖拉上傳等。但Firefox同步還不錯,且各個平台都有,所以繼續用,玩艦隊Collection等特定服務才會開啟Chromium。
FSF認為使用網際網路服務不算自由軟體的範疇,但我還是說一下網路服務的轉變。
因為Google會掃描我的雲端,因此把重要資料改放MEGA;電子郵件改用ProtonMail。
串流服務沒得選擇,畢竟是版權物,目前只訂Apple Music聽無損。而DRM雖是戕害自由,也無可奈何。一些冷門音樂我還是得去抓盜版flac..買實體CD工程浩大。
社群媒體仍沒辦法離開,但接觸LBRY、Matrix/IRC等平台後,覺得是可以多推廣的,尤其Linux開發者很愛用IRC聊天。這些或許可以用於取代Discord、Telegram相對不自由的通訊服務,存取這些服務的客戶端更應該採用開源版本。
小結:除非必要,不然我不會開Windows虛擬機,也不會使用封閉軟體,就算它有Linux版也一樣。有些軟體甚至用網頁版即可解決,有時將其視為是在「存取服務」而非使用軟體。
遊戲於Linux上的支援情況#
遊戲在自由軟體這一塊比較微妙,因為很少人會堅持玩自由開源的遊戲。
我主要玩的遊戲有Minecraft基岩版、艦隊Collection、戰爭雷霆。
艦隊Collection是網遊所以沒差,支援HTML5的瀏覽器都能玩。但嚴格說來,艦隊Collection有執行「非自由的JavaScript」的疑慮,因其程式碼有混淆過,以前拆包玩家Flatchi還會幫大家破譯。
FSF有提供"LibreJS",配合Firefox使用。不過基本上裝LibreJS,大概只剩下IE時代的網頁能開了。
Minecraft Java版跨平台支援度較佳,基岩版在Linux有點問題,但也不是不能玩。Java版啟動器有開源的MultiMC,管理模組和版本十分好用。
說到Minecraft,其實有開源版的Minetest可作為替代,同樣高度模組化,但是人數比較少,還容易被人誤會為盜版。
戰爭雷霆是少數的跨平台大型多人遊戲,除了要依賴Steam啟動外沒什麼大問題。
有些Windows老遊戲可以用Wine啟動,所以玩遊戲也不是太大問題。必要時GPU直通給Windows虛擬機也可以在裡面執行遊戲。
小結:我玩的遊戲都有跨平台能力,手機端亦然,因此轉換至Linux並無包袱。
換用自由開源的手機#
Android不也是基於Linux嗎?Android跟GNU/Linux仍有很大差距,Android有自己的C函式庫,且手機製造商會使用很多閉源驅動,Android跟Google服務也是越綁越緊,所以Android不應該當作Linux手機的一種。
iPhone更不用說,整個生態系都超封閉,因此就算以前著迷過iPhone和iPad,未來我也不會將其視為主力機的選擇。蘋果再怎麼保障隱私和安全,沒有自由我是不會用這個系統的。
自從學會刷機,並在Android上裝Termux和Linux Deploy來玩Linux之後,就對Linux系統有更多認識。
因此,採買了從硬體到軟體都是自由的手機,也就是PinePhone,上面可以安裝很多GNU/Linux發行版。相關文章:開箱:Pine64 PinePhone,真Linux手機詳細介紹
實際用下來,PinePhone可以滿足很基本的通訊需求。postmarketOS和Mobian都是很有趣的手機Linux發行版,只不過前者是採用muslC,對主流Linux來說是比較少見的選擇,偏偏這個專案支援一堆Android舊手機,比較多人參與開發。
可是,PinePhone不符合現代人手機的習慣,尤其是續航力。
用了幾天當主力機後,還是回到Android手機。以前用小米覺得刷機很有趣,但Sony Xperia 5 II目前比較對我口味:耳機孔、不錯的外放喇叭、無瀏海、相機和錄影和收音不錯、廣色域螢幕、4000mAh電量、又輕又小。
可惜PinePhone還無法滿足以上需求,主要是硬體性能太差。
但是Android手機軟體選擇也開始起變化:刷機不選擇Pixel Experience,而是LineageOS,並安裝microG取代GMS框架,試圖降低對Google服務的依賴。
此外,軟體都盡量從F-Droid找,認同自由軟體理念的人絕不能錯過。但可惜的是,手機上好用又自由的影音編輯軟體仍然沒有半個,還是得到Google Play下載要付費或者一堆廣告的封閉軟體。
至於手機遊戲,我玩的只有上一節提及的幾款遊戲,除此之外我沒有在玩手遊。
小結:使用Linux手機加深了我對自由軟體的認識,並將其實踐於Android手機上。即使系統本身就不夠自由,但可以使其無限趨近於自由的Linux系統。
其餘欲改進之處#
上述提及的轉換問題,這邊做一些額外說明,並做總結。
Linux於電腦端確實能作為日常主力,可是手機還是不夠成熟。
如果有預算的話,我不會再買Nvidia顯示卡了。對Linux的支援程度很差,死都不開源;社群研發的Nouveau驅動是逆向工程而來,不是很穩定,容易導致畫面凍結,也因此我還不太敢從X11切換到Wayland伺服器。
以前雖然很想要體會遊戲光追,但是我覺得驅動程式開放性更重要,所以未來會選AMD或Intel吧。
外接硬體部分,繪圖板的支援度不差。但是買USB Wifi網路卡時就覺得實在很少有廠商會出隨插即用的設備,多半要另外編譯驅動,或許是台灣比較少進口的緣故?PCIE介面的網路卡比較容易獲得主線內核支援,但是各大廠商的USB網路卡,就要安裝第三方驅動,不然就是私有驅動,似乎只有聯發科的不需要另外安裝驅動就能用。(來源)
網際網路服務部分,Google相簿我沒再上傳新相片了,相片存在硬碟,未來會朝向自架NAS方面努力。事實上目前筆記、日曆還是很依賴Google服務,用Proton公司的也不是長久之計,最後這些都要用self-hosting解決。
手機用PinePhone仍算是社會實驗以及推廣用,PinePhone要是繼續用下去就變原始人了。
我僅以購買硬體作為支持手機Linux的發展,並實際寫了一些APP的使用心得:PinePhone日常使用與其他用途。因為PinePhone跟樹莓派類似,折騰的玩法還很多。
但是日用,目前真的還不行,沒辦法像電腦那樣隨心所欲,性能也不夠。
用自由軟體似乎是在跟世界做對,不過我不是一個人,越關注這些問題就會越意識到本質所在,Scott McNealy談及的下賊船的代價必須越小越好,否則就是把自己的權益犧牲掉,甚至危害整個企業與組織。
最後,養成推廣自由軟體的習慣,就從鼓勵大家換掉微軟的Office開始,逐步推廣到硬體。讓有意識到自己的數位人權的人,能夠對自己、同時也是人群福祉作出貢獻。
我所知道的東西不是很多,但是支持自由的理念逐漸內化成為自我的哲學,所以接觸非主流、不盲從的選擇仍有其必要。