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