LemonHX

LemonHX

CEO of Limit-LAB 喜欢鼓捣底层的代码,意图改变世界
twitter
tg_channel

Linux的困境

linux.png

隨著近年來的開源運動,越來越多的大型軟體選擇使用更加開放的工具鏈去構建,這也給了 Linux 翻身的可能,隨著軟體越來越多,越來越多人把 Linux 當成了他們的首要操作系統,以至於到今天 Linux 的桌面佔有量(算進去其他的 * nix)大概 5%,好歹也算一個小有規模的操作系統了。

然而其實 Linux 從來就沒有是一個系統過,它上次長得像一個系統的時候還是大家還在用 gnu 全家桶和 sysv 的時代,後來越來越分崩離析,生態也越來越一盤散沙,導致現在基本沒有幾個一般用途的軟體開發者傻到先做 linux 的 target,這究竟是怎麼回事呢?

大集市造就了極高的上手門檻#

屏幕截圖 - 2022-05-28-005953.png

Linux 無論是各個發行版還是軟體開發者都要把自己的軟體用不同的方式去反復的打包,就如同把他們的貨物放在不同的集市上售賣,這個也不能說不好,但是往往會出現大大小小的兼容性問題。

一個合格的 Linux 用戶往往是不斷踩坑,不斷修坑,然後將自己的解決方式放到網站上使別人查閱... 可是,就連我這個從高中就開始使用 Linux 作為我的首要操作系統的人,在 2019 年開始的 WSL 的步步緊逼下,我竟然徹底放棄了 Linux,我覺得我們應該從裡面找一些原因。

我在早期使用 Linux 的時候(Ubuntu14.04)bug 奇多,但是網站上論壇上的人很多都對我表現出一種近乎敵對的態度,這個都不會,請查閱 man,或者請自行搜索。這其實對於一個新手來說是非常困難的一件事情,我甚至不知道 man 的存在,也沒有受到過正經的 Linux 為基礎的教育,也從來沒 Unix 系列的操作系統使用經驗何談知道怎麼用 man。

等當我有了一定的 Linux 上手基礎之後,我發現市面上用的 RPM 系比較多,等當我使用 Fedora 時再次陷入了同樣的問題... 我文檔呢?

就跟去大集市購物一樣,你會知道菜市場裡的菜是使用的什麼農藥,什麼化肥,產地是哪裡哪個國家的種子,轉的哪一個基因嗎?不,你只是能看見這是一顆被割下來放哪裡再噴了點水的「新鮮」的菜。

生態的缺失不是靠開源情懷複刻就能解決的#

我體驗到過的沒有一款 Linux 有什麼能夠佔領用戶心智級別的體驗(KDE 的 connect 挺好用的,感謝 INOKI 的團隊),如 Windows,從當年的 XP 到現在的 Windows11,你想用全套的 Office 嗎?你只可以在 Windows 上跑,而 Linux 上只有拙略的替代品(如 OpenOffice),跟正常用戶討論什麼開源精神其實是並沒有太大的用處的,因為再有什麼精神什麼口號,但是你沒有人喊得再響也沒有什麼用。

還有比如 Photoshop,我認為 Linux 的態度很暧昧,如果沒有為什麼不讓 Adobe 公司移植?如果移植 Linux 很難?不根本就沒有這種如果,因為 Adobe 很多產品都是 Mac 起家的,而 Mac 的核心就是隔壁的 BSD,而 COCOA 當時 GNU 也搞過 GNU NeXT。只不過是這群趾高氣昂的人不歡迎不開源的軟體,非要自己做,最後你看看 GIMP 和 Krita 哪個像正常人用的軟體的樣子?你指望美工去使用這個滿是 Bug 而且 UI 醜的要死的軟體?

鬆散而分散#

使用過 Windows 的人多多少少都會聽說過註冊表,控制面板,設置。

regtree.png

上個世紀偉大的發明

據微軟的不可靠統計,Windows 的可配置項是 Linux 的兩倍。

而你看看這 Linux 配置一個配置甭說註冊表了,你需要在 /etc/usr /usr/local ~/.local 等的某個文件夾的某個.conf 或.ini 文件裡通過 nano 或 vim 等編輯器去使用一天一個的奇葩語法編輯。

如果這還算好的... 那你應該聽說過多版本,也就是 /etc 有一個 /usr 有一個 /usr/local 也有一個... 這種你都不能確定你的配置有沒有生效,其實這也還算好的。

現在越來越多軟體都把配置文件直接扔到~/. 軟體名,行,徹底贏了。

雖然各種各樣的人批評註冊表,但調整註冊表和組策略SELinux 和 Systemd你選一個?

通過解耦我們獲得了更難用的介面。

這還算好的,你看看 DBus 有幾個實現,常用的有幾個...

  • 蘋果:我們一家子都 COCOA
  • 微軟:COM 接口反正還活著
  • Linux:Systemd dbus,kdbus,gtdbus,qtdbus,libdbus

關鍵是你比他們複雜幾倍啊,造那麼多一些進 kernel 一些默認裝,還有一些從軟體分發,真的無語死了。

屏幕截圖 - 2022-05-28-010941.png

能夠隨便氣死運維的目錄之一

反正這是我的 etc 目錄,大概幾千來個不同的文件,用了幾十種不同的描述語言吧 2333

有人要說了,俺們 Linux 的祖宗可是 Unix#

還記得當年 Unix 怎麼擴張的嗎?
沒錯就是因為好用,想當年大家都一人一套傻逼接口(就跟現在的 Linux 有點類似),買一個電腦只能用一個 OS,然後換電腦約等於換 OS,中間的數據根本不能遷移(就跟現在的 Linux 有點類似),於是一群做遊戲的花了一個星期開發了 Unix 的原型。

Unix 和 C 語言的崛起正是說明了簡單粗暴且實用才有利於傳播,而現在的開源社區和黑客的風氣就味道怪怪的,仿佛不想讓菜鳥(比如說我)去融入這個圈子,圈地自萌,做出來的東西也越來越看不懂(如我們可愛的 k8s)

還有個反駁就是說:你看 Unix 時代不也是有什麼壞了就自己修嗎?#

你可以看看那時候的計算機用戶受過高等教育的比例,隨著計算機系統越來越複雜,曾經一萬行代碼就可以說我寫了一個非常棒的操作系統,你看看現在就連寫一個腳本語言都不止一萬行了,已經不是黑屏幕 + 綠色字的 shell 能解決一切的年代了,再者說了,現在 Linux 的用戶環境動不動就是 2000 多個包,每一個包都很可能是非常領域相關的知識。

時代已經變了,之前確實一本 200 頁的書就可以詳細的記載整個操作系統的所有功能,現在我覺得靠一個人去記住操作系統有什麼頂級模塊都費勁。

Untitled-10.png

Unix 流行的年代基本人人都是半個程序員,我記得我爸說他們那個年代去網吧玩遊戲都會手動加載顯卡,調整分辨率,加載聲卡,mount 一個軟盤,mount 第二個... 直到最後執行,你看看現在又有幾個人可以在 linux 的 CLI 裡面幹相同的事情?

總之我的觀點是,現在那一套已經過時了,我們作為開發者可以在開發時預留出一些可配置相,但所有東西都可以配置或者都允許用戶自己去鼓捣的年代已經過去了。

碎碎念的總結#

歷史的車輪滾滾向前,至於未來的操作系統長什麼誰都沒有一個確切的定論,但科技的發展方向一定是更加以人為本,使得每一個人都能享受到科技的紅利的產品絕對是風口,微軟的 windows3 是這麼飛起來的,Mac 的 NeXT 是這麼飛起來的,下一個是誰?一定是比他們對人類更友好的。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。