為什麼Linux桌面環境往往對顯卡支持不好而各個顯卡廠商、發行版廠商不為Linux開發驅動呢?

在我使用過的發行版中,Linux桌面對顯卡的管理,行之有效的方案還是使用Bumblebee或者Prime手動切換顯卡。

即使這樣,不管是Ubuntu、Fedora、LinuxMint、Deepin還是Opensuse,不管桌面環境使用的是Gnome、KDE、Mate還是Xfce,還是沒有一個桌面發行版能給用戶MacOS的體驗,桌面足夠華麗了往往就不夠穩定,桌面樸素了往往就功能先天不足。

為什麼Linux的發行版中沒有一款能夠做的想MacOS那樣,給用戶帶來很爽的體驗?

為什麼沒有一家廠商為Linux開發高效的驅動程序?

同時為什麼也沒有一家發行版廠商嘗試像MacOS那樣自己開發驅動?


題主要把這個問題拆成兩個問題看:

1、為什麼Linux下界面體驗不好。

這個問題跟驅動沒什麼關係,以現在的硬體水平來說,驅動爛一點,只要不是跑大型3D遊戲,只是跑桌面程序的話,界面體驗跟驅動沒什麼關係。

Gnome或者KDE都是開源項目,最初的原型都不是商業化產品,開發的源動力不足。而不管Windows還是MacOS,界面的好壞都直接影響用戶的第一評價,所以設計一個優秀的界面就是一個商業操作系統必須重視的方面。

搞一個好的界面是要花很多人力的,這是需要金錢支持的,而大多數開源項目最初的目的都是「能用就行」,所以要想搞好並不容易。

2、為什麼Linux驅動不好。

因為Linux內核是GPL的,顯卡驅動是保密性很高的東西,一般廠商不願意提供源碼,而GPL就意味著廠商又必須提供源碼,否則不能編譯進內核。

解決的方法是先在內核里插入一個LGPL的交換層,基於這個再做閉源的驅動,但這麼做很麻煩,所以廠商動力不足。


AMD、Nvidia都有閉源的驅動啊!Intel一直提供開源驅動。所以說,三家都是廠家直接在開發的好嗎!就算你說性能問題,那也應該指的是社區開發的開源驅動,Nvidia、AMD的閉源驅動效能和windows是差不多的。自從KMS提出後,GPU作為運算能力的一部分,使得顯卡的驅動開發一直在努力加快進行中,之前只是因為用戶少,沒賺頭而已。你看,只要用戶數一上來,比如Linux的分支Android,大家就很開心的為其開發驅動。

而桌面的問題明明是軟體寫的不好,缺乏工程質量管理的概念,加上X協議有些複雜和落後。其實只要肯投入的話,要解決也不會是問題,比如,我就用Android在筆記本上當桌面來著。


本質上就是各大廠商都有自己的算盤,其中更是有很多廠商不把桌面的Linux作為核心。另一方面,Linux版本很多、很分散,桌面環境也很雜(GNOME,KDE等),也給這些廠商帶來了兼容的麻煩。

反觀Windows和OSX,首先這兩大平台的桌面用戶更多,應用更豐富;其次,介面和桌面環境都相當穩定,實現兼容也不難。

所以,他們可以為OSX和windows提供最好的驅動,但是卻為Linux提供最爛的兼容。 Linus為此事還罵過其中一家公司:NVIDIA

引用一個Linux之父Linus Torvalds的視頻:

Linus Torvalds- So Nvidia, Fack you!


以前一師弟覺得大神都用linux,可惜他不會找驅動,然後就覺得linux不好用


以為 Mac OS X 只需要支持有限的幾款硬體,稍微舊一點的就直接放棄,根本不提供升級,而 Linux / UNIX 不行,只要有幾種支持不好用戶就會叫喚,更何況現在的情況。驅動、資料豐富的往往是社區用戶用得多的硬體。

更何況,對於使用 Linux / UNIX 用戶而言,尤其是經過用戶的篩選培養之後,這些用戶大多是不會需要這類大型需要顯卡的程序,或者說,沒有也不會抱怨。大多數 Linux 用戶用的都是 shell。真正需要大型計算的,他們可以自己根據需要寫底層,自己處理「驅動」的問題,也不用我們操心了。

更何況,現在只是多顯卡切換不方便,這並不是剛需,閉源開源顯卡驅動都挺完善了。


推薦閱讀:

基於Linux開發的操作系統有哪些?安卓是基於哪個Linux版本開發的呢?
linux設備模型,如何實現/dev/xxx/xxx?
OS boot 的時候為什麼要 enable A20?
計算機行業領先的公司大多在美國,Linux為什麼卻是芬蘭人發明的?
為何 Linux 的系統 API 相比 Win32 到處是縮寫?有何優劣? 造成兩者差別的原因是什麼?

TAG:Linux | NVIDIA英偉達 | 顯卡 | Linux內核 | linux驅動 |