雖然這篇有點久
但過年前比較不想做正事,所以來回一下
逛PTT這麼多年,黑特沒落八卦崛起
近幾年開始有人問Linux掛,雖然動機可能不是那麼良善
但至少表示也有圈外人開始知道Linux,也算好事吧
畢竟,早年就算是Server Side,也是BSD跟傳統UNIX的天下;
敝校到現在都還有FreeBSD 7移不動的機器在運作,
也曾經有SUN的Solaris Workstation
「我在管機器的那個年代,Linux別說跑服務了,是根本裝不起來。」
這句話絕對不是開玩笑的(苦笑)
言歸正傳,
選Linux當桌面系統(Desktop Operation System)嘛
我覺得真的很case-by-case
如果你有下列人格特質
(1) 休閒娛樂是玩最新的遊戲,對聲光要求很重視
(2) 對於東西掌握運作原理沒什麼興趣
(3) 不喜歡出錯時找不到人負責,會覺得沒有安全感
那我覺得Linux不適合當你的桌面系統
Linux的存在意義,很大層面上是黑手的樂趣
就好像玩改車一樣,如果你不具備能力或著性格上不喜歡麻煩事
那還是去用Windows或著OSX吧
的確,Linux這幾年開始往Desktop邁進
GUI、Desktop Environment也越來越「大眾化」
e.g. Gnome 3、KDE Plasma、Unity ......
也有一些Linux發行版是瞄準沒有使用過UNIX-like系統的初心者
e.g. 老字號的Ubuntu、Elementary OS ......
但,這離OSX、Windows還有很長一段路要走
就好像你買了一台別人調校好的跑車,絕大多數相安無事
若哪天某個零件失靈,你載去修車廠可能沒人會修
而且說老實話,也沒有人有那個義務要幫你處理
如果這樣說,你就確定不會想用Linux當桌面系統,
那就可以跳過後文了,因為比較偏我個人的經歷與感受
以下文長— —
(以下內容請勿轉載)
我為什麼說,
「不喜歡出錯時找不到人負責,會覺得沒有安全感」的人不適合用Linux
實則成也蕭何、敗也蕭何,open source世界不是永遠都歌舞昇平
之前短暫工作時,曾經想在某個專案裡面使用一個開源的開發框架
(為求避免暴露個資,只能說是某個parsing framework)
結果團隊裡面的前輩非常強烈地跟我表達他的不認同,
要我自己手刻drop-in replacement
當下我除了嚇到之外,也有點不以為然
因為這位前輩自己也有在contribute一些知名的開源計畫
後來專案快結束時,他才娓娓道來,很久以前他也跟我一樣:
覺得沒事幹什麼重刻輪子?
並且在工作中大量使用開源專案,結果後來手中的一個案子
就炸在某個很關鍵的外部library上面
他在引入那個library時,因為相信該專案的名氣
所以沒有太深入的去看實做細節,外部API看一看,test suite看一看
覺得應該okay就用下去了
開發中間的unite test測起來也都沒什麼異狀
直到做system test時,BOOM,效能跟預期的差超級遠
bottle neck卡在那個library上面
他想說嗯,反正開源嘛,就開code來改唄,順便contribute做功德
沒想到真的認真開始看實做細節,才臉一黑:發現這下完蛋了
後來擦完屁股,整個案子也延宕了快一個月
- -
後來我年歲稍長,看過的案子也變多後
也才發現真的很常發生那種:
大家都說這東西好棒棒
可看到critical part時
才發現是個屎坑的情形
(以上內容請勿轉載)
回首望去,距我在生活上90%使用Linux,已經第五個年頭
(10%是某些只能在Windows上面進行的娛樂跟開發
沒辦法,日本的那些Gal)
一開始的契機,是一個講話很靠北的朋友:
「阿你都念到X大資工了,不會用Linux不會覺得很廢嗎?」
還記得當時心裡面我很火大:
幹!拎爸我能力跟你也沒差多少,是在秋條什麼?
不過是個作業系統,老子又不是沒底子,就學給你看!
於是怒把Windows洗掉,想說背水一戰試試看。
沒想到,就這樣一試成主顧,沒有再回頭過
會這喜歡用Linux,其實也是因為我自己的黑手性格
Windows的開發跟使用,往往只能建基於Microsoft提供的API之上
在API之下,是一個拆不開、看不到的黑箱子
如果用不到還好,但一旦官方API不夠powerful時,往往就是事情會很大條
不說別的,Linux有很方便的namespace機制
自從大學時代吃過一張公文後,
我抓東西都很小心的從掛著付費VPN的network namespace出去
而這樣可以快速隔離出兩個網路空間的機制,在Windows上面不存在
只能靠BindIP這類API hooking的機制,勉強做出來
(遑論Windows上面的tun/tap device也是個hack)
而且絕大多數的娛樂用途,基本上Linux上面都有可以cover的counterpart
看1080p、4K影片是小case,vlc、mpv等等播放器都很完善
電玩的話,撇開比較新的遊戲,遊戲機模擬器類型的都很齊全
http://i.imgur.com/3arwAtM.png
(貼心提醒:尊重智慧財產權人人有責,請務必購買正版內容)
至於視窗界面,對我來說則是有非常方便的自主性
從一開始Ubuntu的Unity,到後來我換到Arch Linux後
開始改用OpenBox、甚至後來使用tiling的i3wm
可自訂性一直是Linux上面的軟體很重要的一點,
你有code、你有設定檔的說明文件
你想要什麼feature,都有著無限的可能(雖然不乏要自己土法煉鋼寫些小工具)
想擺個客製化的indicator?沒問題
想要一個進度條知道編譯進度?沒問題
這就是喜歡改東西的人追求的事物— —一個不怕你改的環境
或許Windows、OSX在裝了某些套件、改了某些registry後
可以作到這樣的效果(我用過Windows的bb4win)
但那終究是很hack的東西,
你不能保證哪天Windows要封殺這類東西、不給你hook某個API
而這些在Linux的世界,基本上這塊是直接放給你作的分層設計
不過改壞了基本上也只能自己摸摸鼻子來修
所以兜了一大圈,原po想知道的
「使用GNU/LINUX 發行版,
而不用最常見的Windows或是很潮的OS X,
想必一定都會有些理由。」
這些理由就是:
(1) 有愛可以配三碗飯
(2) 手賤又對功能的要求很多
= = = = = = = =
既然是八卦版,自然就要補掛點......
是說開源世界也是很多派的
有人的地方就有江湖,傾向不同打筆戰的情況從沒斷過
而GNU一派的教主— —RMS可說是自走砲,
對於早期的自由軟體運動貢獻良多
可說沒有他,就沒有現在的這些成果
但他老人家有時也常常住海邊,管很寬
像前年他說Clang是BSD license、會set back on FreeSoftware那件事,
就讓對系統開發有關注的我覺得超級不以為然:
你們家的GCC就實在就不好port,
而且既然你的那些小弟常常嗆人不爽來fork,
那你們也就不爽的話自己把它改的好一點啊?
還沒說bugzilla上面陳年舊bug多的跟什麼一樣
更別再搬那套「你們勢單力薄」之類的了
你們是在llvm出來前開源世界最大咖的compiler專案了
Red Hat、還沒開始跳船前的Google、Apple......
現在看人家寫的比較現代化,卻怪人不用你那套方式授權
實在給讓人覺得臉上掛三條線Orz