Linux在桌面領域存在的主要問題(2013版)

oschina發表於2013-08-03

 前言

  在這篇日常更新的文章中,我們僅僅討論Linux存在的問題和不足之處(一些人認為Linux不適合桌面,這些或許就是原因)。當然了,各位應該知道的,Linux在很多領域裡是要強過其它作業系統的:比如出色的包管理;多平臺架構開箱即用的支援;極佳的穩定性(一般情況而言);沒有氾濫的病毒和惡意軟體;基本不需要重灌系統;另外Linux還具有高度的定製性和便捷的指令碼環境,甚至還是免費的。

  這並不是一篇諸如Windows與Linux之比較的文章,不過文章當中也會有地方拿Windows或Mac OS來作為一個參考(畢竟,它的市場佔有率更高)。下面列出的大多數問題是技術性質的,也有一些是“政治性”的(不是我說的,是別人說的),例如如果某硬體生產商拒絕公開技術資料或者公開的資料不完整,那麼Linux對該硬體的支援就會不完整或者BUG百出,這個問題在Linux社群裡是沒人能解決的。

  我想把一件事弄得清清楚楚,明明白白。這件事就是,在某些方面上,Windows平臺甚至還不如Linux平臺,而且已經明確說明了不適合作為桌面級平臺。眼下能想到的是,我要說出Windows平臺以下的一些嚴重問題:沒有加強的檔案系統和登錄檔架構(我已經發現了一個單個的可以完全地解除安裝自身的重要應用程式);沒有真正的安全模式;沒有清理狀態;使用者充當系統管理員(病毒/惡意軟體帶來的UAC警告,大多數使用者不會理解,也不想理解);沒有好的打包機制(MSI是脆弱的);沒有系統的全面更新機制(包括第三方的軟體);Windows很難除錯,在大多數情況下Windows停止啟動非正常的使用者才有助於解決這個問題;Windows依賴於硬體(特別是在UEFI上執行),大多數時候你不能安全地升級你的系統(將會長生成千上萬的冗餘項),等等。

  或許你已經多次聽說全球大部分的智慧手機都已經使用了Android,也就是Linux。但是有兩個問題必須清楚:1.Android並不是Linux(難道你有見過有人在他們的電腦上執行Android系統嗎?)。Android只包含Linux的一個部分——核心(而且是一個已經不再更新的只由Google支援的核心)。2.Android 只是一個智慧手機、平板或者其他觸控裝置的作業系統,並非桌面作業系統。所以本文主要討論的一系列的Linux系統分支和他們所包含的開源軟體而並非Andriod系統。

  Gnome和Mono的創始人Miguel de Icaza對於Linux有相同的看法。他在這裡反覆重申了很多本文下面將要提到的意見。

  Ubuntu的開發者們決定把Ubuntu變成一個有活力的遊戲平臺。為了達到這個目的,他們列舉了一些需要被處理的話題。令人驚訝的是,他們想到的 這個清單和下面你要讀到的幾乎完全吻合。

  一些Fedora的開發者 提議修改這個發行版,來讓它提供更穩定的介面(APIs/ABIs)並且儘可能的防止退化。

  在 評論部分,盡情的表達你的反對意見吧。

  注意:

  列表中的綠色專案要麼是部分解決,要麼是不重要的,要麼是有問題的,要麼是有其他變通方法的。 這個列表非常需要被重新組織一下,因為這裡提到的一些問題很重要,而也有一些並不重要。

  最為一名使用者,你有很大機率不會到這裡的任何問題。(如果你擁有正確的硬體,從來不把你的系統搞亂,並且只使用你的發行版裡面很有限的一些軟體)。

  在你閱讀這篇前,請看看下面一些值得考慮的要點:

  • 如果你相信Linux是完美的,沒有什麼錯誤的話,請關閉此頁。
  • 如果你認為所有關於Linux的批評只是為了毫無意義地詆譭Linux,請關閉此頁。
  • 如果你覺得這篇文章的目的是為了說明“所有在Linux上做的事情或者Linux本身是毫無用處的”,那麼你錯了,請關閉此頁。
  • 如果你相信Linux和Linux的使用者可以不需要商業軟體和遊戲做好工作或者生活的話,請該關閉此頁。
  • 如果你認為我在這裡是為了要大力推崇Windows 或者Mac OS的話,請給關閉此頁。
  • 如果你覺得我在這裡是要傳播謠言或者質疑Linux的話,請立即關閉此頁並永遠別再回來。你到底想幹嘛?請繼續回去參加激烈的爭論和誹謗吧。

  請記住這列問題的真正的目的是要告訴大家應該更多地深入到Linux裡面,而不只是單純找些錯誤出來而已。

 桌面Linux的問題和主要缺點

  (對哪些憎恨讀長文章的人來說,下面有一個簡要版本)。

  硬體支援

  1. 視訊加速器/加速(也見X系統一節)

  • Linux上的NVIDIA優馳技術和ATI的動態GPU切換技術都不是官方支援的,也不能遠端使用已經實現的駭客軟體來支援。至多你可以使用   BIOS設定或者在啟動過程中執行圖形子系統之前更改要執行的GPU來切換GPU。優馳技術現在由Linux黑客半解決(而且任何Linux釋出也不直接支援它)。
  • 沒有高質量的開發原始碼的Intel,NVIDIAAMD驅動:
  • 開放原始碼的AMD和NVDIA驅動不能正確地和完整地支援電源特性管理和風扇速度的管理
  • 所有開放原始碼圖形驅動實現了非常不完整和舊的OpenGL(到2013年為止,實現了OpenGL 3.1,然而OpenGL 4.3已經在2012年釋出)。
  • Intel驅動比它們在Windows下的驅動很多。
  • 開放原始碼的AMD和NVIDIA驅動也比它們專有的驅動要慢很多(有時是數量級的慢)。
  • 由於問題不同,所以缺乏合適的效能對比器的支援。
  • (但願在2013年能或多或少的解決一部分)新的東西經常使系統崩潰。
  • 完整的OpenGL棧不能合法地在Linux裡實現/或者匯入到Linux裡,因為許多OpenGL功能(例如S3TC紋理壓縮和浮點數紋理)是專有的。
  • 開放原始碼OpenGL棧(也稱作mesa)處在極度糟糕的狀況下。
  • 對許多數人來說,NVIDIAAMD的專有智慧財產權的圖形驅動不能可靠地工作(崩潰、不支援新核心和X伺服器,逐漸緩慢,超高溫度,非常吵的風扇等)。
  • 專有智慧財產權的NVIDIA/AMD圖形驅動不支援KMS和VirtualFB,以及功能實現滯後(新的X.org和新的核心版本正確的和完全的休閒和娛樂的支援,完全2D加速支援等)。除了Linux開發者通過更改API或者使得API在GPL領域外不可用而打破封閉式原始碼驅動所做的一切外。
  • H.264 AVC/微軟VC加速沒有統一的API。VDPAU僅僅在NVIDIA GPU上支援。Intel的VAAPI仍然不成熟,仍然無法合併和由Mpalyer/ffmpeg/xin/等)接受。AMD仍然沒有一個可以執行的實現。
  • 當(使用Adobe Flash)觀看視訊或者youtube片段,非常多的使用者經歷了嚴重的視訊斷裂-這個問題不但影響了專有驅動,也影響了開放原始碼的GPU驅動。很明顯它是X.org的“功能”。

  2.音訊子系統:

  • 沒有可靠的音響系統,沒有可靠的統一的軟體音訊混合系統(除了Linux外,其他現代的作業系統都已經實現),許多舊的和/或者專有應用仍然開啟哪些特別引起主要使用者問題和頭痛的音訊輸出。
  • 太多的抽象層使得使用者不能確定為什麼他的音訊系統不能工作(ALSA核心驅動->ALSA庫(->dmix)->PulseAudio 伺服器->Alsa庫+後端脈衝->應用)。
  • (僅僅適用於某類音效卡,樂如Creative Audigy系列)建立音量級別、音訊收錄和甚至某些情況下的音訊輸出都是十分困難的。高度混淆,沒有自我說明的音訊通道名/設定。
  • (Linux開發者不關心向後相容性-如見OSS通常得不到支援,OSSv4不再開發了。ALSA將勝出-喜歡不喜歡就這樣了),如果你有多張音效卡,那麼為所有應用(例如直接使用OSS或者ALSA的舊應用)更改預設音效卡是一件非常痛苦的事情。

  3.印表機、掃描器和或多或少的其他外設:

  • 仍然有許多印表機根本得不到支援,或者只有很少地支援(利盟和佳能就位列其中)。
  • 許多印表機的功能只在Windows驅動裡實現了。
  • 一些型號的掃描器和(網際網路)攝像機仍然得不到很好的支援(同時許多Windows驅動具有的功能沒有了)或者更本就不支援。
  • 一些硬體的不完整或者不穩定的驅動。一些硬體的安裝問題(像音效卡或者電視卡/網際網路攝像機/Wi-Fi卡)。

  4.膝上型電腦/筆記本的特殊按鈕和功能經常無法工作(例如Fn和F1-F12組合和特定的電量節約模式)。

  5.Linux核心裡有大量的 遞迴演算法,當許多硬體同一個新的核心釋出執行的時候,它難以理解地停止執行。我個人已經彙報了兩個嚴重的音訊播放遞迴,這兩個因此得到了解決,然而大多數使用者不知道如何歸檔漏洞,如何分割遞迴,如何識別失效的元件。

  6. 現代膝上型電腦使用的許多省電功能(比如PCIe的ASPM,正確地視訊解碼加速,深度省電狀態等)得到不完全的支援的或者沒有支援。因此在Linux下你將無法獲得像Windows或者MacOS下同樣的電池壽命,而且你的膝上型電腦執行在更熱的狀況下。 天哪

  7.AMD的Hondo CPU在推出的時候僅僅支援 Windows 8

  軟體支援:

  1. X 系統:
    • 對於現代PC和程式來說,X.org 並不合適很大程度上,它已經過時了,而且不安全
    • 沒有用於GUI程式的高層的、持久的、穩定的 (真正向前向後相容) 標準化 API 。Win32 核心 API保持了18年的二進位制級別相容性,大對數Windows 95程式仍然能在Windows 8上執行。GTK和Qt都沒有保持向後相容。最近10年的版本中,GTK 1、2、3和Qt 2、3、4、5都互不相容。
    • !用於切換不同鍵盤佈局的快捷鍵至今仍然不太好用(這個問題9年來一直沒有得到解決)。
    • !全屏應用程式使用自定義解析度時,X.org 不會自動調節解析度。很奇怪的是一些Linux開發者完全無視了Linux平臺的遊戲,但既然目前Linux和遊戲毫無交集,這個問題似乎不足為慮。Valve已經發布Linux平臺的Steam,他們的遊戲業正在向Linux移植,但這只是滄海一粟。
    • 許多程式中,滾動會導致程式需要手動重繪
    • ! X.org 允許程式獨佔鍵盤和滑鼠。如果程式出現意外,系統將無法控制,甚至無法切換至文字命令列介面。
    • ! 在設計上,X.org 的鍵盤處理無法正常工作。開啟的選單將導致全域性快捷鍵無法使用(GTKQt都有這個問題).
    • 臭名昭著的 bug 12309,某些情況下GUI反應遲緩甚至無響應。這通常是由於視訊驅動的不完善(因此使用軟體加速的VESA驅動)。這個bug表面上已經修復但使用者仍然可能遇到這個問題。
    • ! Adobe Flash Player 在Linux下有非常多的問題:不支援GPU解碼和渲染,視訊撕裂,甚至高檔PC仍導致CPU 100%使用率、掉幀或者崩潰。2012年Adobe宣佈將不會繼續維護除Chrome以外任何Linux瀏覽器上的Flash Player。
    • !目前X.org server無法永久儲存或恢復使用者設定(例如X Render和Xv)。NVIDIA和ATI閉源驅動都提供自己的設定工具。
    • 無法無縫替換X.org驅動(簡單來說,在保持使用者會話和執行程式的同時重啟X server)
    • X.org 的2D加速沒有Windows上的Direct2D和DirectWrite那麼成熟. 在一些基於標準的HTML5 demo(包含2D動畫和變形動作)中,Windows比Linux快大概1000倍。當然,公平地說,Mac OS X也有同樣的問題。
    • X.org server沒有真正的安全模式。錯誤的設定或者有問題的驅動會使你的系統無法使用,有時甚至無法進入純文字的控制檯進行修復(現在這個問題已經部分解決了,因為現在通常GPU由核心通過KMS控制,X.org不再控制它了)。
  2. 字型渲染(這個可以由高階GUI庫實現)問題:
    • ! 白色或者淺色字型在深色背景上的抗鋸齒顯示(沒有安裝Infinality補丁的時候——現在的發行版都預設安裝了這個補丁)簡直糟透了。
    • ! ClearType字型無法開箱即用 (我測試了一下自己編譯FreeType 2.4.11,這個版本提供了ClearType技術,但顯示效果糟糕透頂)。即便支援ClearType字型繪製,你也無法進行調整。
    • ! Web字型在Linux下沒法
    • 由於缺乏基於RGB亞畫素的完整字型微調,預設字型經常缺乏合適的字型設定,這導致很多時候這些字型看起來像一樣
    • 不使用GTK或者Qt的話很難正確實現字型抗鋸齒。Opera用了一年才解決了這個問題,而Google Chrome在渲染上花了八個月。
    • 一般來說大多數發行版沒有包括好看的(甚至合適的)字型——這個問題正在逐步改善但是尚未完全解決。
    • 很多桌面環境下字型抗鋸齒設定無法立即應用
    • 由於專利限制,很多發行版禁用了字型抗鋸齒 ——這在2012年或多或少解決了。然而即使在2013年仍有很多發行版禁用了FreeType的SPR技術。
  3. Linux 核心:
    • ! Linux核心無法從顯示卡、音效卡或者網路驅動崩潰中恢復(我很抱歉,在此我要比較一下Linux與Windows。從Windows Vista開始這項特性已經可以在多種場合下完美執行)。
    • KMS 獨佔顯示輸出,而且忽略VESA 的顯示模式設定。這導致系統無法實時切換顯示卡驅動。
    • KMS 顯示驅動無法解除安裝或者重新載入。
    • !! KMS 沒有安全模式:有時KMS無法正確初始化顯示裝置,這個時候你完全無法操作你的系統。"nomodeset" 這個核心選項也許有用,但是這個選項完全禁用了KMS驅動。這個時候,要麼用一個80x25的文字終端,要麼用一個華麗但是不能工作的顯示系統。
    • 傳統的Linux/Unix (ext4/reiser/xfs/jfs/btrfs/etc.) 檔案系統在U盤等大容量裝置上可用性不好
    • 檔案描述符和socket無法強制關閉。沒有解除安裝就拔下U盤的確是危險的,因為這涉及固定的掛載點,某些情況下可能導致衝突甚至崩潰。基於同樣的原因,對分割槽表和root分割槽的移動、調整大小無法立刻生效。
    • 對硬體感測器的支援極不完整。比如說,HWinfo32/64在我的極為一般的桌上型電腦上能偵測並顯示10個硬體感測器資料來源和超過50個感測器,但是lm-sensors只能偵測顯示4個源和20個感測器。筆記本上的情況更糟。有時從lm-sensors上只能讀到CPU核心的溫度。
  4. 大量Linux發行版帶來的問題:
    • ! 對系統設定、服務和裝置沒有統一的設定系統。例如,發行版A使用同一程式設定網路,並且將設定寫入檔案系統特定位置的特定檔案中,而發行版B所有設定的設定方式都不一樣。這會逼瘋大多數使用者。
    • ! 發行版之間沒有統一的安裝程式(或者包管理器、包格式、依賴跟蹤設施)。為解決這一問題, GNU Guix 專案正在開發中,但我們不確定它是否會用於主要的發行版中。考慮一下RPM(這貨有幾個互不相容的版本)、deb、portage、tar.gz、原始碼釋出,你就會發現這麼多種方式增加了軟體開發的成本。
    • ! 發行版的軟體倉庫沒有包含所有的開源軟體——庫的依賴衝突本身就不允許如此。使用者永遠不應該為./configure && make && make install而苦惱。另外,這種方式也不安全,有時還會因為不正確的依賴停止工作。安裝程式應該只需要雙擊安裝包然後輸入密碼——就像Windows一樣。
    • ! 應用程式開發是個問題。不同的發行版可能使用庫版本、不同編譯器開關甚至不同的編譯器。在第三方開發者眼裡這會帶來一大堆麻煩事。將所有依賴的庫都打包並不是解決辦法,因為你可能使用的舊版本庫可能含有嚴重的安全漏洞。
    • ! KDE和Gnome這兩個最流行的開源桌面本身只能進行很少的系統配置,而每個發行版都要為自己的BootLoader、防火牆、網路、使用者和組、服務等創造設定程式。這簡直是浪費時間。
    • 對於ISP/ISV員工來說,Linux是他們最不願意見到的東西。在企業內部你可以強制所有人使用同一個發行版,但是你不能強迫客戶這麼做。他們會自己選擇發行版。
  5. ! 幾乎所有的設定都應該能通過GUI進行,但現在很多情況下只能依賴控制檯。Windows和Mac OS都能這麼做。
  6. 缺乏約定俗成的規則。對於同一個動作,不同的應用程式可能有完全不同的快捷鍵,UI元素的位置和風格也可能不一樣。KDE和Gnome的一些核心程式外觀上有些瑕疵。比如說,KDE的開始選單可能會變成一個巨型垃圾場(這個問題出現在Fedora 17上的KDE 4.8.5)。

  妨礙Linux流行的問題和開源的天性:

  1. ! 軟體名稱缺乏描述性,而且無法執行使用者熟悉的Windows軟體。有些無法用Wine(注意頁面裡面含有“regression”的行)執行的程式在Linux下沒有替代品。
  2. ! 沒有能與Windows下相匹敵的核心級應用程式, ArchiCAD、3ds Max、Adobe Premier、Adobe Photoshop、Corel Draw等程式缺乏Linux下的替代品。家庭使用者和企業使用者不會選擇無法完成他們工作的Linux系統。
  3. !過去五年來Linux平臺上幾乎沒有遊戲AAA級遊戲更是一個也沒有。至於2013年,Valve發移植的3A級遊戲只有總量的0.05%不到。Cedega(現在已經停止開發了)和Wine(非常不穩定)只能提供非常不完善的支援。另外,AMD和NVIDIA的開源顯示卡驅動的效能和相容性不夠,OpenGL也支援到OpenGL 3.1——這已經是4年以前的版本了。
  4. 模糊的專利和法律狀態。美國Linux使用者在得到合適的(符合法律和專利要求的)解碼器之前無法播放很多流行的音訊視訊格式。

  Linux常見問題 :

  1. !!你的系統在更新了GRUB(啟動裝載器)或者核心後是否可以成功地(重新)啟動沒有任何保證-有時甚至一個小小的核心更新都能中斷啟動過程。例如微軟和蘋果為了修補安全漏洞經常性地分別更新ntoskrnl.exe和mach_kernel,卻沒有聽過哪個這樣的更新曾經危及啟動過程。GRUB更新已中斷我PC的啟動過程大約十次。(另見下面的相容性問題)。
  2. !!桌面版的長期技術支援無法申訴,因為極差的支援或者不支援新的硬體,特別是GPU(以及Wi-FI介面卡,網路卡,音效卡,硬體感測器等等)。
  3. !!Linux開發人員有這樣的趨勢 a)抑制安全漏洞新聞 b)當所說的漏洞修補後不會通知大家 c)錯誤地把任意程式碼的執行漏洞當作“可能是拒絕服務”(多虧Gullible Jones提醒我這個問題-很久以前我打算提起這個問題,不過我一直忘記這件事)。這兒是Linux Torvals自己的完整的說明:“因此我個人認為安全漏洞僅僅是“常見的漏洞”。我不提及它們,而且我也沒有有任何理由認為追蹤並宣佈它們是一個特別的東西是個好想法。”
  4. !在一個釋出的生命週期裡固定應用的版本。假如你使用了含有某個軟體的某釋出的10.10版本。在這個版本的10.11釋出之前,這個應用已經有了更新,而且具有新的令人激動的特性,然而你卻不能從官方安裝,並且也不能使用它們。
  5. 一些人認為嚴重阻礙Linux發展和擴充套件的問題之一是在核心繫統和使用者應用之間Linux沒有一個清晰的分割。換句話說(這篇文件通篇都提到)第三方開發人員不能依賴於一套固定的開發庫和程式設計介面(API/ABI)-在大多數其他作業系統裡,你可能期望你的應用在不需要重新編譯和額外修補的情況下執行多年-在Linux裡這經常是不可能的。
  6. 對那些在本地網路共享的實際上只需要密碼認證的加密的檔案來說沒有本地或者/和簡單的實現方案。(Samba不是本地實現的,它是SMB反向工程的實現,並且管理和安裝都很難。Samba 4重新實現了許多Linux網路服務/後臺程式-這看起來像是來自外太空的瑞士軍刀形式的方案)。
  7. 設計的Glibc“洩露”記憶體。Linux下的火狐瀏覽器現在使用了自己的記憶體分配器。KDE的Koncole應用也是用了自己的記憶體分配程式。這兒Neil Skypuch釋出了有關這個問題的非常優秀的說明。
  8. !僅僅(Gnome)沒有足夠(KDE)人手(X.org)-三個主要的開放原始碼專案嚴重地人員不足。
  9. !Linux/開放原始碼開發人員如果不能很容易地再現漏洞,那麼他們通常沒有興趣修補漏洞。這個問題幾乎困擾著所有的開放原始碼專案。
  10. !大量的軟體漏洞跨越所有應用。只要看看KDE和Gnome的漏洞跟蹤系統-現在一些漏洞已經跟隨許多版本複製達十年之久,沒有人去解決這些漏洞,KDE/Gnome等等。開發者忙於新增新的特性和破壞老的API,修補漏洞當然是一項單調的和困難的瑣事。在2013年仍然大量地破壞了KDE的檔案索引。
  11. !過高的學習曲線(甚至在2013年,有時你必須執行命令列介面來完成某些不重要的任務)。
  12. !在Linux核心裡有差的遞迴測試或者幾乎沒有遞迴測試(而alsa,另一個開發原始碼軟體裡也一樣),這導致這種情況:新的核心可能由於某些硬體配置而整體上不可用(軟體掛起不能工作,崩潰,無法啟動,網路問題,視訊撕裂等等)。
  13. !Linux裡的GUI網路管理令人煩惱的事。如果你的網路管理可靠地工作,那麼可以認為你自己很幸運。在大多數情況下,網路管理既不能看到已經存在的eth0連線,也不能檢測到它,甚至以前你從沒有對這個連線做任何配置的情況下。網路管理不能更改你網路卡的硬體引數,甚至像MAC地址這樣的許多基本引數-在2012年,MAC地址可以修改了。你不能在Wi-Fi上建立PPPoE連線。大多數最近的網路管理髮布已經解決了:在微軟的Windows和MacOS X裡,你可以通過DHCP指定IP地址/掩碼/預設閘道器和自定義DNS伺服器-網路管理不支援這樣的配置。
  14. 在核心和使用者應用之間有很差的互操作性。例如許多核心特性在引入之後若干年才獲得相當好的使用者實現。
  15. !Linux的安全/許可權管理是一件令人苦惱的事:PAM ,SeLinux,Udev,HAL(被udisk/upower/libudev代替),PolicyKit,ConsoleKit和常見的Unix許可權管理(/etc/passwd,/etc/group)都有它們各自不相容的許可權管理系統,而且分佈在所有檔案系統上。人們經常不能使用他們的數字裝置,除非他們切換到超級使用者。
  16. 沒有應用級防火牆(為了清晰地說明這一點-沒有方法阻止或者允許某個應用訪問網際網路,例如/usr/lib/firefox)-SeLinux不能解決這個問題,因為SeLinux策略預設情況下不適用於普通的使用者應用,並且SeLinux本身不是防火牆應用 。
  17. 沒有(易於使用)的應用級別的沙盒(例如像SandBoxie)-Fedora正在這方面努力著。
  18. (這需要全面的複查):通常觀察到很慢:只要比較它們之間的啟動時間,例如OpenOffice和微軟的Office。如果你不喜歡這個例子,試試在Windows和Linux下啟動OpenOffice。後一種情況下啟動將花費更長的時間。
  19. !命令列介面(CLI)為使用者應用提供錯誤。所有的GUI應用應該讓可以的錯誤顯示出來。
  20. !非常差的文件和缺乏好的手冊/幫助系統。
  21. (Fedora,Suse,Mandriva,Ubuntu)的桌面安裝存在可疑服務。
  22. !沒有統一的廣泛應用的包簽名和驗證系統(因此驗證你的釋出是否包含這些包漸漸地變成問題)。沒有一箇中心機構對包進行認證和簽名。
  23. (如今認為花費20美元購買4GB的記憶體不是很嚴重的問題。)至於最新的Linux釋出和桌邊環境已經變成了貪婪的資源佔有者。例如Ubuntu KDE 4.8.5消耗了非常巨大的1390兆記憶體。
  24. Linux下沒有防病毒或者類似軟體。巨乳你打算安裝釋出裡沒有包含的新的軟體-目前沒有任何方法可以檢測它是否是惡意軟體。
  25. !非常糟糕的向後相容性和向前相容性
    •  !由於不穩定或者不斷更改核心API/ABI,所以對那些由於許多原因,比如它們是封閉原始碼的( NVDIA,ATI,Broadocom等)或者不能控制開發或者合作開發(VirtualBox/Oracle,Vmware/Workstation等等)或者授權問題(4Front技術/OSS),不能把驅動上傳到核心的公司來說,Linux就是地獄。
    •  老的應用很少能在新的Linux釋出上執行(glibc的不相容性(雙重釋放錯誤,記憶體誤用等),沒有這樣的庫,錯誤的/新的庫版本)。過時的Linux GUI軟體通常也不能在較新的Linux釋出上執行。大多數書寫的很好的windows  95的GUI應用可以在windows 7上執行(二進位制級別上的15年的相容性)。
    •  只連線C庫的新的應用拒絕在老的釋出商執行(甚至它們與老的釋出100%的程式碼相容)。
    • 新庫的版本存在漏洞,遞迴和不相容性
    • 釋出的更新可以使你的系統不可用(核心可能引起無法啟動,其他功能可能停止執行)。
    • 還有令人迷惑的事:向後相容性在Linux上不是問題,因為所有的軟體都有原始碼。然而許多軟體不能在較新的釋出上編譯,只是因為1)過 期,衝突,不再有可用的庫和依賴 2)每個GCC釋出更嚴格的遵循C/C++語法 3)使用者只是不想編譯舊的軟體而使自己煩惱,因為他們不知道 如何‘編譯’,而且他們應該也不知當如何做到這些。
    •  桌面環境(KDE/Gnome)開發人員平常地主要更改的是UI元素,配置以及行為等等。
    • 開發原始碼的開發人員通常不關心超出應用所使用的場景外的行為,也就是說,沒有好的理由的話核心應用的開發者不會破壞Loki安裝程式使用的頭/尾功能。
    • 你不能在長期技術支援的版本里執行新的應用非常頻繁 。最近的例子:基於GTK3的軟體(沒有官方的方法可以在RHEL6上使用)和Google  Chrome(Google決定放棄長期技術支援釋出)。
  26. !作者自己PC目前幾個嚴重問題:
       1)我的ALC892音訊編碼器的最大音量比Windows下要3-4倍。
       2)UEFI模式掛起總是打斷啟動過程。
       3)RPM包管理器已壞
  27.  慢的(庫)聯結器,令大腦死亡的慢的聯結器,無法容忍的慢的聯結器(逐漸得到解決:google使用了黃金聯結器)。(binutils聯結器與應用的裝載無關)。當從Wine啟動OpenOffice的windows版本仍然比在Linux版本本身下面花更少的時間。甚至在1G赫茲CPU和慢硬碟的情   況下從Wine啟動微軟Office 2003只花幾秒種。常常仍然沒有使用黃金聯結器。
      
  28. 其他不著邊際的:
    1)KDE:正在解決 Kded4 漏洞
    2)slashdot站點上有關為什麼人們仍然願意使用Windows而不願意使用Linux的大討論
    3)slashdot站點上有關為什麼Linux仍然缺乏吸引力的另一個大討論
    4)任何一個KDE的微小更改就可以凍結整個KDE桌面。
    5)slashdot上-為什麼桌面Linux仍然不能流行
    6)slashdot上-Torvals猛烈地抨擊NVIDIA的Linux支援
    7)是不是開發原始碼桌面正在失去競爭力?-slashdot站點(通常的共識是-沒有喪失)。
    8)Linux下的Broadcom的Wi-Fi介面卡是一個非常令人苦惱的事。
    9)Gnome開發人員對Gnome 3的開發狀態很遺憾。
    10)去你媽的長期技術釋出:Google說紅帽子的企業版6是過時的產品(見鬼?!是真的嗎?)
    11)對Gnome 3 API的謾罵。
    12)哦天哪: Ubuntu已經宣佈了Mir,X.org/Wayland的替代者。
    13)KDE的郵件客戶端不能正確地處理IMAP郵件帳戶。
    14)桌面Linux的安全就是一堆垃圾(壓縮的微軟PowerPoint檔案,大約1.3M) 。

  Linux下的軟體開發

  1. 穩定的API簡直就是廢話:你不能在核心樹之外開發核心驅動,因為很快它們就與主要的開發版本漸漸不相容。這就是為什麼RHEL和其他長期技術支援釋出在企業界流行的唯一原因。
  2. 遊戲開發:沒有完整的多媒體框架。Flasky OpenGL支援。在2012年開放原始碼大會上,GPU驅動僅僅支援OpenGL 3.1(DirectX 11級別的圖形需要在OpenGL 4.0裡實現的功能。DX10需要OpenGL 3.2裡實現的功能)。
  3. 上面提到的許多觀點也適應於這個題目,不再重複它們了。

  企業級Linux問題:

  1. 大多數釋出不允許你使用這樣的配置:Samba,SMTP/Pop3,Apache HTTP認證和FTP的所有使用者都是虛擬的就很容易地建立伺服器。LDAP也是令人痛苦的事情。對MySQL/其他DB進行認證也是非常痛苦的一件事。
  2. !沒有軟體(組)策略。
  3. !沒有標準的軟體部署方法(通過SSH上傳軟體確實是一個選項,不過沒有其他標準的,易於使用的或者鮮明的方法-就像你通過同樣的方式使用長柄大錘砸開堅果一樣)。
  4. 對現在的世界來說,Unix的許可權系統絕對過時且不適合。Posix的ACL系統預設情況下經常是禁止的,並且不是透明的。沒有合適的GUI的話ACL非常難於配置,不過KDE的ACL編輯器不能遞迴性地更改ACL許可權,也不能設定預設的ACL許可權-使用KDE的實現幾乎沒有什麼用處。這個問題最終在KDE 4.9中得以修補,不過我不能說Gnome/XFCE/LXDE的任何事情都像我那樣不能使用它們。
  5. !沒有CIFS/AD級別的替代/等同軟體(由於許多原因,SAMBA不算在內):1)集中式的且易於管理的使用者目錄。2)簡單的檔案共享。3)簡單地(區域網)計算機發現和瀏覽。
  6. 沒有針對檔案系統的重複資料刪除和檔案壓縮的系統固有產品。根本沒有檔案系統支援單個檔案加密。

  總結

  • 不穩定,漏洞迴歸迴歸迴歸:當用來執行的某些東西毫無理由的中止的時候,(核心和使用者空間上的應用)就有驚人數量的迴歸,許多回歸甚至導致資料丟失。總的來說,在大多數開放原始碼專案(包括核心專案)裡沒有質量控制(QA/QC)和迴歸測試-例如,微軟報告Winodws8 進行了1,240,000,000小時的測試後才能有新的核心版本。而每個Linux核心釋出比作一個新的Windows版本的話,我猜,應該進行10,000小時以下的測試。妨礙正常工作流的嚴重的漏洞可能要花幾年才能得到解決。許多關鍵的硬體(比如GPU,Wi-Fi卡)沒有得到適當的支援。
  • 硬體問題:Linux下許多裝置和裝置特性仍然很少得到支援或者根本就不支援。許多硬體(例如Broadcom的Wi-Fi介面卡)不能使用,除非你已經有一個可執行的網際網路連線。新的硬體經常在引入數個月之後才漸漸得到支援。管理像印表機、掃描器、攝像機、網際網路攝像機,音訊播放器,智慧電話等裝置的專門的軟體幾乎總是不存在-因此你不能完全控制你的新iPad,並更新你Galaxy SIII的韌體。Linux圖形支援是個大麻煩,因為核心/X.org的API/ABI不斷地在更改,而且NVIDIA/ATI/Broadcom等公司不想分配更多的資源,浪費它們的金錢僅僅去跟隨開放原始碼軟體的瘋狂的更改速度。
  • 缺乏標準,碎片化,無保證的而且過多的變體:太多的Linux釋出具有不相容的和不相似的配置,打包系統和不相容的庫。不同的釋出為了配置自己的計算機設定完全使用了不同的桌面環境,不同的圖形化和控制檯應用 。例如基於Debian的釋出強迫你使用與維護任務相關的某個系統的嚴格地基於文字的'dpkg-reconfigure'應用。
  • 開放原始碼開發人員之間缺乏合作內部有鬥爭:沒有中心結構組織開放原始碼棧的不同部分的開發,這常常導致一個專案引入了更改中斷了其他專案(這個問題也反應在下面的"不穩定的API/ABI裡)。即使開放原始碼運動缺乏人力,不同的Linux釋出可以找到醫院並進行子專案(Gentoo開發人員將開發一個udev的替代軟體;ffmpeg的不一致導致了libav的出現;OpenOffice/LibreOffice也是這種情況;新的X.org/Wayland替代-Mir)而且使用自己的方案(Ubuntu沒有使用systemd)。
  • 大量的快速更改:大多數Linux釋出都有非常短的更新/釋出週期(在一些情況下短刀六個月,或者例如Arch是一個滾動發行版,或者Fedora的更新時每6個月進行一次),因此你經常受到你不期望的或者不需要的更改的炮轟。長期技術支援(LTS)釋出大多數情況下不適合桌面使用者,因為它們要保留各個版本應用的策略(而且通常沒有官方認可的安裝前沿應用的方法-請不要給我提及PPA和backports-這些駭客應用沒有既沒有官方支援,也不保證可執行)。長期技術支援釋出的另一個給人印象深刻的問題是長期技術支援釋出的核心經常不支援新的硬體。
  • 不穩定API/ABI以及缺乏真正的相容性:在新的釋出裡使用舊的開放和封閉原始碼的軟體是非常困難的(許多情況下,由於核心的Linux元件比如核心,GCC或者glibc發生更改,使得使用舊軟體變得不可能)。幾乎不存在向後相容性,這使得為Linux釋出建立封閉的原始碼應用變得非常困難和代價高昂。沒有開發人員或者維護人員參加的開放原始碼專案如果它的依賴沒有滿足就簡單地刪除,因為較舊的庫已經過時而且它們不再可用了。由於這個原因,例如大量的KDE3/QT3應用在現代的Linux釋出上已經不可用了,甚至都沒有替代的軟體存在。在主要的Linux核心樹之外開發的驅動是一項折磨人的且昂貴的令人討厭的工作。Linux下沒有WinSxS替代軟體-因此沒有簡單的方法安裝相互衝突的庫。
  • 軟體問題:極少的遊戲和極少的符合AAA標準的遊戲(Humble的獨立遊戲套裝和突襲油田-兩個獨立的,很少出現的-在2012-2013年裡由幾個Valve/Steam標題廣告加入的(而Windows每年有幾千個遊戲釋出)不能真正的算在內)。沒有熟悉的Windows軟體,沒有微軟的Office(LibreOffice在正確地開啟微軟Office生成的文件方面還有幾個主要的問題待解決),沒有本地CIFS(簡單的配置和使用,以及密碼保護和共享加密的網路檔案)的等同軟體,沒有活動目錄或者等同的軟體。
  • 金錢,熱情,動機和責任:多年前我就預測自由和開放原始碼軟體(FOSS)的開發人員將開始從這個平臺上流走,因為自由和開放原始碼軟體(FOSS)不再是他們的遊樂場。這個平臺需要大量的精力和時間,也就是說,娛樂已經結束,開發人員需要真正的金錢才能真正努力的工作。缺乏資金背景的FOSS開發顯示出疲乏和理想的幻滅。畢竟FOSS平臺需要資金驅動的開發者,因為資金不足的專案開始衰落,而且關鍵的漏洞一直存在了好多年。有人曾經說“終於解脫了”,然而問題是這些僵死的專案經常沒有替代軟體或者類似功能的後繼者。

 作者的評論

  許多Linux的新使用者或者只使用了非常小部分應用的人很快就不會搭理說出像“對我來說,Linux下的音訊執行的很好。”或者“Linux下我從沒有遇到任何視訊問題。“這樣的猜猜是什麼的全部列表,存在數千個有大量問題的使用者,因為他們有各自不同的一套硬體或者軟體。自己幫幫自己-去訪問Ubuntu或者Linux.com論壇,計算一下包含"我已經刪除了PulseAudio,而且現在我的音訊可以執行了“或者”我最終發現我能使用最新的驅動而不是 NVIDIA二進位制驅動(或者相反),這樣我的問題解決了。“

  還有另一個重要的事情是批評者沒有理解你的說法。如果某個東西在Linux不能執行,人們不關心是哪個出錯了,他們自動地並且確定 地認為這是Linux出錯了。對一般使用者來說,Linux只是另一個作業系統,他或者她不關心是否某個特定的公司ABC選擇不支援Linux或者沒有釋出全功能的Linux驅動-他們辛苦得到的硬體只要不能執行,就認為Linux不能執行。人們不關心Skype在某個環境下每五分鐘就崩潰-即便實際上Skype是一個很糟糕的軟體,它有許多小的問題而且有時在Windows和MacOS下也崩潰。

  我想糾正一個常見的誤解:Linux對舊軟體的支援比Windows要好許多。有部分是這樣的,不過還有不是這樣的。例如既不是最新的也不是專有智慧財產權的NVIDIA驅動對舊的NVIDIA的GPU就有很好的支援。最新的OpenGL加速器幾乎沒有加速。NVIDIA的二進位制驅動不支援Xrandr的許多關鍵特性或者不支援現代LinuxGUI(如Gnome 3 或者KDE4)進行專有的加速所需的功能。假設你的舊硬體仍然得到奇蹟般地支援,那麼Linux驅動幾乎總是隻提供Windows驅動所提供功能的一小部分,因此說Linux對硬體的支援更好一點無論怎麼說也是不公平的,只是因為你沒有花費20分鐘去安裝驅動。

  一些評論讓我驚訝:“這非常糟糕。我的意思是它完全是半真半假的說明和看法。就是那個NVIDIA的優馳(那麼不要使用它,請使用Intel或者其他的)。"別扯了,先生!我已經購買了膝上型電腦而且在Wine/雙啟動下玩了遊戲,而你卻對我說,首先我不應該買?我懇切地建議你不要把你的看法強加給哪些可以從玩高質量的遊戲真正得到快樂的人身上。說SSHFS是Windows檔案共享的替代是我整個生命中聽到的最荒唐的事情。

  值得注意的是開放原始碼社團的最直言不諱的參與者是相當無禮和超級理想化的人,他們蠻橫地要求一切都要開放原始碼且免費,否則根本就沒有權利存在在Linux裡。採取這樣的態度的話,許多公司完全不理會且迴避Linux桌面就毫不令人吃驚了。Linux Torvald曾經談過這個問題:自由軟體世界裡總有些“極端分子”,而且這是我不再稱呼我所做的為“自由軟體”的一個主要原因。我不想把它與那些只是排斥和怨恨的人聯絡起來。

  最重要的是上面的列表不是一種觀點。幾乎每個列出的觀點都與關注這個觀點的文章、主題和討論相連線,為了證明我沒有把它拖出我的<批評>。那麼請一直核查你的“是否屬實”。

  我不會真正地為把slashdot的評論引用為我這兒所寫內容的證明材料而道歉,因為這麼做我有一個非常強大的理由-/.crowd非常大,它大部分由聰明人、IT專家、科學家等組成-如果這兒的評論獲得晉升為有真知灼見的+5,那麼它通常意味著許多人持有同樣的觀點或者有同樣的經歷。順便說一下,如果某人把這篇文正提交到slashdot.org,我將非常高興(我已經提交給一次,但是我的提交被拒絕了)。我先前曾說過要用”當然“替代”常常“,但是自從這篇文章被稱作”歇斯底里的胡話“(反駁見這兒)後,我決定不再使用這個詞了。

  如果有人感興趣的話,那麼我可以釋出一系列讓使用者和開發者都覺得Linux適用他們的口味,可用,給他們帶來快樂並具有吸引力的必要措施,不過聰明的讀者憑藉著自己的力量可能已經推斷出了一切:-)。

  從好的方面說

  如果你認為Linux很爛 - 那麼你就大錯特錯了。如果我要羅列關於Windows系統的問題,那會跟這個一樣長。內部的Windows問題是幾乎無法修復的,除非微軟公司來處理。相較於此,Linux的問題確實更加用以解決一些。

  幸運的是,目前有幾個專案正致力於統一Linux桌面並且使其真正現代化和統一。他們是systemed,Wayland,由Fedora最先提出和實施的檔案系統統一,以及其他。Valve Software目前正在針對Linux開發Steam(數字遊戲分佈和管理系統)和原始碼引擎,所以Linux使用者有機會最終得到幾個AAA職稱。NVIDIA目前正在探索尋求在Linux下對Optimus的支援。

  Linus Torvalds 堅信現在已經很穩定了 - 儘管我並不贊同這個觀點;)。

  Ubuntu開發者已經聽過我的意見並且已經建立了一個新的統一打包格式,更多相關資訊請點選 這裡 和 這裡

  附言

  有時我有理由說Linux確實令人討厭,而且我確實憎恨它。這周(2012年第32周)Alan Cox獨自關閉了 兩個功能請求,後來也沒有提供任何說明、評論、一點兒也沒有、空的、什麼都沒有。Lennart Poettering根本就 關心我想怎樣使用 我的系統,而且我甚至不想提到以前以前曾經遇到過的那兩個件事情。一般的Linux開發人員這麼說:“我是一名開發人員-我更確切的瞭解使用者想怎樣使用軟體和系統”。最終的結果是大多數創新讓大家感到憤怒和討厭-Gnome 3,Unity,KDE4.0就是強迫Linux使用者接受這樣的趨勢的最好例子.

  再附言

  我猜人人都喜歡開開心心,因此如果你想知道人們怎麼到達這個頁面的,這兒有一個導向這個頁面的非常不完整的Google查詢列表:2012年10月的關鍵詞列表可在 這兒找到,字型相關的關鍵詞列 在這兒

  字型問題:假如你已經到達了這個頁面,那麼你仍然需要好的/最佳的/頂級的/免費的Linux字型, 從這兒下載這些字型。

  好像許多人來這個站點是為了尋找 2013年最佳的桌面Linux釋出的。

  © 2009-2013 Artem S.Tashkinov.最近修改2013年5月26日,最新版本在 這兒可以找到

  英文原文:Major Linux Problems on the Desktop 2013 edition

相關文章