Linux為什么還沒準備好成為桌面操作系統(tǒng)?
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
作者 | Artem S. Tashkinov 責(zé)編 | 蘇宓 出品 | CSDN(ID:CSDNnews) 以下為譯文: 多年前,我寫過一篇關(guān)于這個主題的文章(https://itvision.altervista.org/why.linux.is.not.ready.for.the.desktop.current.html),相較而言,那篇文章過于技術(shù)化、篇幅過長,還包含許多有爭議的觀點,因此我思考了很久,決定將其完全重寫,使其更易于非技術(shù)人士理解,并揭示出那些使 Linux 仍然難以匹配現(xiàn)代桌面 PC 的深層核心問題。 十多年前寫的初版文章曾頗受歡迎,但如今這個網(wǎng)站的訪問量非常少,因為 PC 已經(jīng)或多或少地被淘汰了:世界上的大多數(shù)人都依賴智能手機完成一切。而 PC 主要被企業(yè)、專業(yè)人士、硬核 PC 游戲玩家以及 PC 發(fā)燒友所使用。 再次聲明,與舊文章一樣,我想明確一點:Linux 完全可以滿足你的某些需求,尤其是當(dāng)這些需求主要集中在將電腦用作 Web 客戶端時。只需啟動 Firefox 或 Chrome 就可以搞定(當(dāng)然,前提是你足夠幸運,系統(tǒng)上的硬件視頻加速功能能夠正常運行。然而即使到了 2024 年,硬件加速仍然是個問題,而 Windows 早在近二十年前就幾乎完美解決了視頻編碼和解碼加速問題)。 需要強調(diào)的是,這篇文章討論的是 Linux 發(fā)行版,而非特指 Linux 內(nèi)核。單獨的 Linux 內(nèi)核本身在沒有應(yīng)用程序運行時是毫無用處的。 Linux 適合 IT 專業(yè)人士。這篇文章關(guān)注的是普通用戶的使用體驗,即那些不愿接觸終端或?qū)W習(xí) Shell 命令的用戶。 接下來,讓我們逐一討論以下核心問題。這些問題如果沒有人投入十億美元以上的資金,幾乎不可能得到解決: Linux 并不是一個操作系統(tǒng) 當(dāng)人們談?wù)摬僮飨到y(tǒng)時,通常想到的是一個核心操作系統(tǒng),配備大量的軟件,這些軟件可以在不同版本的操作系統(tǒng)上運行。例如,Windows 上的許多軟件即便是 20 年前開發(fā)的(沒錯,20 年!),在 Windows 11 或其當(dāng)前版本中依然能正常運行。Android 15(截至 2024 年的最新版本)支持自 Android 7.0 起發(fā)布的所有 Android 軟件,確保了超過 8 年的兼容性。
這正是 Linux 發(fā)行版的問題所在。對 Linux 發(fā)行版來說,軟件的首選分發(fā)方式是為每個操作系統(tǒng)版本單獨編譯。而這種方式并不保證兼容性,大多數(shù)時候,過去版本的軟件根本無法在你當(dāng)前的 Linux 發(fā)行版上運行。 更糟糕的是,為當(dāng)前版本的 Linux X 編譯的軟件,不一定能在當(dāng)前版本的 Linux Y 上運行。Linux 發(fā)行版普遍要求所有軟件必須為其當(dāng)前版本編譯,或者以源代碼形式提供。 然而,源代碼的難題在于:普通用戶不會愿意自己編譯軟件,其次,即使有興趣,也不一定能成功編譯,因為軟件可能依賴于特定的編譯器或依賴庫,而你的發(fā)行版可能不提供這些資源。此外,各個發(fā)行版還需要維護者來支持這些軟件,如果沒有人愿意承擔(dān)維護工作,你在該發(fā)行版中根本找不到所需的軟件。 當(dāng)然,熟悉 Linux 的讀者可能會提到 Linux 提供了 Flatpak、Snap 和 AppImage。這些技術(shù)試圖解決軟件兼容性問題,但我不會深入探討它們的不足(https://ludocode.com/blog/flatpak-is-not-the-future)。簡單來說,它們實際上是輕量級的虛擬機。這些工具的核心原理并非真正解決兼容性問題,而是通過讓用戶分配并運行大量的二進制代碼來規(guī)避問題,結(jié)果卻不必要地消耗存儲空間、CPU 和內(nèi)存資源。更令人無語的是,你可以輕松地在 Windows 的 WSL(Windows Subsystem for Linux)中運行它們。那么,最初為何要在電腦上安裝 Linux 呢? 此外,這些工具還有另一個主要問題:軟件必須被某人以輕量級虛擬機的形式打包。只有最流行的軟件才會得到這樣的處理,因此那些曾經(jīng)用過的冷門應(yīng)用可能永遠無法使用。在 64 位 Windows 11 上,與此形成鮮明對比的是,過去 30 年中發(fā)布的大多數(shù)軟件幾乎都能完美運行。我這里并不是在討論游戲(許多游戲確實不兼容),但這并非因為 Win32 的兼容性差,而是因為當(dāng)時的游戲開發(fā)者沒有為未來做好準備。 換句話說,每個 Linux 發(fā)行版都是一個獨立的操作系統(tǒng)。至于普通用戶該選擇哪一個?沒有人能給出明確的答案,而且關(guān)于哪個發(fā)行版“更好”或“更合適”的爭論永無止境。 有人可能會反駁說:“這些問題根本不存在!”那么,Linus Torvalds 這個名字你應(yīng)該聽說過吧?他在 2014 年時幾乎和我說了同樣的話(https://youtu.be/5PmHRSeA2c8)!然而,從那時起情況有任何改變嗎?絕對沒有。 Linux 發(fā)行版之間唯一真正的兼容性體現(xiàn)在它們使用相同的 Linux 系統(tǒng)調(diào)用(這部分內(nèi)容具有一定技術(shù)性)。理論上,這意味著靜態(tài)鏈接的應(yīng)用程序應(yīng)該可以在所有發(fā)行版中通用。然而,現(xiàn)實中往往并非如此。例如,最近許多 Linux 用戶已經(jīng)遷移到 Wayland,有些人甚至完全移除了 XWayland。結(jié)果是,靜態(tài)鏈接的 X11 應(yīng)用程序無法再為這些用戶提供服務(wù)。類似地,隨著 Linux 的發(fā)展,許多技術(shù)已經(jīng)被淘汰。 例如,基于 ESound 或 OSS 的應(yīng)用程序如今無法使用,因為現(xiàn)代 Linux 發(fā)行版完全不再包含 ESound 或 OSS,無論是以模擬還是兼容層的形式。再如,舊版系統(tǒng)中的 devfs、libc5 和 a.out 二進制文件也早已被淘汰,且沒有任何現(xiàn)代替代方案或向后兼容支持。
QA/QC、Bug 和回歸問題 你無需理解上述所有術(shù)語,但核心問題是:Linux 始終處于持續(xù)變化的狀態(tài)。 回歸(問題重現(xiàn))經(jīng)常發(fā)生,因為 Linux 開發(fā)者很少甚至完全不花時間檢查他們的代碼更改是否會引入回歸或破壞原本正常的功能。他們通常只關(guān)注修復(fù)他們試圖解決的問題或?qū)崿F(xiàn)的新功能。 不僅如此,Linux 內(nèi)核開發(fā)者通常無法接觸到他們正在支持的所有硬件設(shè)備。因此,對一個設(shè)備的更改可能會影響到另一個開發(fā)者未能測試的設(shè)備。例如,在 AMD GPU 的 Bug 追蹤器中,你會看到 AMD 開發(fā)者的聲明:“抱歉,我們沒有那種硬件,能否幫忙測試這個補???” 這種問題影響了多個 Linux 組件,從 Linux 內(nèi)核到 MESA(圖形卡與操作系統(tǒng)之間的接口),甚至包括桌面環(huán)境。
軟件和游戲的缺乏 絕大多數(shù)應(yīng)用程序僅為 Windows 開發(fā)。至于游戲,Linux 多年來幾乎沒有原生的 AAA 大作,用戶基數(shù)太小是主要原因。即便是 CS2(反恐精英2),雖然有 Vulkan 的 Linux 版本,但其性能遠不如原生 Windows 版本。此外,盡管 CS2 擁有數(shù)百萬玩家,但它很難被視為 AAA 大作,因為它基于已超過十年的 Direct3D 11,缺乏光線追蹤等現(xiàn)代光影技術(shù)。 的確,許多 Windows 游戲可以通過 Wine + DXVK(Linux 上的 Win32 API 仿真)運行,但既然如此,直接用 Windows 不是更好嗎? 此外,很多游戲永遠無法運行,尤其是那些擁有數(shù)百萬玩家的在線多人游戲,因為它們需要內(nèi)核級別的反作弊系統(tǒng)。典型的 Linux 用戶可能會說:“我不玩這些游戲,你也不需要!去買個索尼 PlayStation 吧!” 但對于 Windows 用戶來說,幾乎所有的 Linux 應(yīng)用程序都可以輕松運行。 更糟糕的是,Linux 缺乏某些非?;A(chǔ)的應(yīng)用程序,甚至連檢查系統(tǒng)性能是否正常的工具都沒有。
本地網(wǎng)絡(luò)上的文件和文件夾共享問題 Linux 沒有類似于 Windows 文件共享的原生技術(shù),既易于配置,又支持自動發(fā)現(xiàn)、加密和密碼保護。目前 Linux 使用的 Samba 技術(shù)在設(shè)置共享文件夾時非常麻煩,尤其是在使用 SE Linux(高級安全機制)的發(fā)行版中。用戶需要創(chuàng)建賬戶、分配和更改密碼,同時還要處理文件夾權(quán)限問題。 一些極客聲稱 SSHFS 和 NFS 是很好的替代方案,但這些工具非常不友好,功能受限,設(shè)置過程需要大量精力并閱讀冗長的手冊。某些功能,比如用戶/組的細粒度控制,幾乎無法實現(xiàn)。 即使是 Samba,如果需要多個用戶和組的細粒度權(quán)限控制,配置過程也非常復(fù)雜。更別提使用圖形界面了,這一切幾乎都要通過命令行完成。 資金不足 Linux 上的許多軟件都有大量 Bug 和功能缺失。這是因為 Linux 在桌面領(lǐng)域資 金嚴重不足。雖然 Linux 在服務(wù)器領(lǐng)域無可匹敵,連續(xù)二十多年成為全球最流行的操作系統(tǒng),但桌面領(lǐng)域的情況卻相當(dāng)慘淡。 Linux 在服務(wù)器上運行良好,主要是因為絕大多數(shù)資金都流向了服務(wù)器領(lǐng)域。但桌面用戶需要面對顯示器工作,還要處理音頻輸入和輸出問題。 影響服務(wù)器提供商(如 Google、Facebook 和 Netflix 等)的 Bug 通常會被立即修復(fù),優(yōu)先級非常高。但影響 Linux 音視頻子系統(tǒng)的 Bug 可能會持續(xù)數(shù)年。例如,Linux 音頻子系統(tǒng)的活躍維護者可能不超過兩人。
硬件支持與兼容性 對于全新硬件,你可能會發(fā)現(xiàn)筆記本的 Wi-Fi 網(wǎng)卡、攝像頭、音頻甚至鍵盤無法正常工作。這是因為在 Windows 中有穩(wěn)定的驅(qū)動 API(應(yīng)用程序接口)和 ABI(應(yīng)用程序二進制接口),OEM 廠商可以從一開始就發(fā)布驅(qū)動并確保正常運行。而在 Linux 中,硬件支持取決于你運行的內(nèi)核版本。有時需要幾個月甚至幾年時間,Linux 才能支持你的硬件。 其次,OEM 廠商為 Linux 驅(qū)動工作的開發(fā)者數(shù)量通常比 Windows 少 10 到 100 倍。這意味著某些 Bug 可能會持續(xù)數(shù)月、數(shù)年,甚至永遠不會被修復(fù),因為開發(fā)人員有更高優(yōu)先級的任務(wù)。 第三個問題是,Linux 程序員的數(shù)量不足以確保代碼庫的更改完全無 Bug。 最后,由于 Linux 的驅(qū)動通常是內(nèi)核的一部分(NVIDIA 等少數(shù)例外),你無法隨意升級到最新版本或降級到之前能用的版本。必須切換到另一個內(nèi)核版本,這既麻煩又不總是可行。 偶然遇到的 Linux 安全性 Linux 在桌面上的安全性幾乎是“偶然的”或者“純靠運氣”。服務(wù)器的情況稍微好些,但也需要由高水平專業(yè)人士來管理。以下是一些典型問題: 1. 大多數(shù) Linux 用戶隨意使用 sudo 命令(授予系統(tǒng)完全訪問權(quán)限),并不理解其必要性和用途。 2. Linux 缺乏完善的原生殺毒軟件,無法通過沙盒或仿真等方式掃描惡意軟件。 3. 許多用戶從網(wǎng)上下載并運行軟件,但未驗證其是否安全。 4. 大多數(shù) Linux 用戶會直接運行來自網(wǎng)上的命令,而不會確保這些命令的功能和安全性。 5.從內(nèi)部來看,Linux 的安全機制非常復(fù)雜,或者用 AI 的話來說就是:“Linux 并不總是提供一個用戶友好的界面來實時處理權(quán)限問題?!?/span> 6. 當(dāng)你需要在用戶組之間正確共享資源時,祝你好運,試著設(shè)置好目錄和文件的權(quán)限吧。 7. 許多 Linux 用戶禁用了 Secure Boot,原因如下: - 第三方軟件需要 Linux 內(nèi)核驅(qū)動,而使用這些軟件的復(fù)雜性極高。 - 無法寫入 MSR CPU 寄存器。 我把上面列出的內(nèi)容交給了一款 AI 工具來作答,AI 的回答是:“這些問題部分屬實,責(zé)任主要在缺乏經(jīng)驗的用戶,用戶需要使用他們的軟件存儲庫?!?好吧,那我們來看看:
“歸根結(jié)底,這些問題是真實存在的,但并非不可解決。它們反映了 Linux 在易用性和兼容性上的改進空間,同時也突出了用戶教育的重要性?!?/span> 然而,我奇怪的是,Windows、iOS、macOS 或 Android 似乎并不需要太多“教育”。也許,這只是因為某些東西的設(shè)計本身存在缺陷?
Linux 社區(qū) 可以肯定的是,你在使用 Linux 時一定會遇到問題。而當(dāng)你試圖尋求幫助時,就會見識到 Linux 社區(qū)的“真面目”。根據(jù)我在過去 25 年互聯(lián)網(wǎng)經(jīng)歷中的觀察,Linux 社區(qū)有時會顯得格外具有挑戰(zhàn)性,甚至是令人不悅的。 以下是你在提問時最有可能收到的“回答”:
總結(jié) 或許你會說:“Linux 絕對適合我,對我來說完全沒問題?!碑?dāng)然,這種情況對于很多個人而言也普遍存在。但是,每個人的需求可能不同。例如,有人可能希望在 Linux 上運行舊軟件。 而且,你是否認為自己是極客?很有可能是的。那么,對于那些普通用戶來說呢?他們可能既不想接觸終端,也不想研究 Linux 的復(fù)雜性。他們只想安裝、運行,而不需要多想。 好吧,那么該如何解決這些問題?早期的文章對此問題有過專門的討論:https://itvision.altervista.org/why.linux.is.not.ready.for.the.desktop.current.html#Solving_Linux。 如果需要更技術(shù)性的解讀,可以參考以下文章:《2023 年 Linux 桌面端的主要問題》(https://itvision.altervista.org/why.linux.is.not.ready.for.the.desktop.current.html)。 該文章在 2025/1/8 11:04:39 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |