百科问答小站 logo
百科问答小站 font logo



为什么Ubuntu不能像Windows一样自带大量驱动呢? 第1页

  

user avatar   meteor-68-23 网友的相关建议: 
      

TL;DR: Linux desktop市场占有率太小,实现所提出的问题而带来的收益约等于没有。

想象一下你是一家硬件公司的研究人员,你的公司都是Windows/Mac用户,有一天你们研发了一款新的硬件,在写驱动的时候,你首先肯定会给Windows/Mac写驱动,写好之后提交给MS/Apple,购买签名,提交到MS/Apple,结束了。于是你的硬件在Windows/Mac上即插即用,驱动全自动装好。

那Linux咋办?你会给Linux写驱动吗?不会?问题解决了。

什么?你会?好的那你源代码要交出来吗?

商业机密怎么能说公开就公开?

不交出来?那Ubuntu要怎么预装/自动安装你的驱动呢?提交给Ubuntu仓库吗?那恭喜你,一个新的问题将会出现在知乎:《为什么XXX(某Linux发行版)不能像Windows一样自带大量的驱动呢?》。

那我顺便提交到其他发行版仓库就好了。可这世界上有那么多的发行版,怎么可能提交的过来,更何况还有lfs,gentoo这种…

放到自家官网上?那布太星,这与“预装”已经完全偏离了。

回滚到源代码的问题上,如果你大公无私选择把源代码公开出来,那么实现“预装”的这个途径就是将代码并入到Linux kernel当中,于是你将代码交给了linus,希望能进入到内核当中。

很不幸你将会有90%或者更高的概率被linus喷自闭,“你的代码简直是一坨屎,我宁愿把一群猴子敲出来的代码合并到内核”,诸如此类的。

一旦你自闭了,“预装”也不太可能实现了。

假设你顶住压力,不断改代码,花费了数十倍乃至数百倍于Windows/Mac驱动的时间和精力,终于让linus勉强满意同意合并入内核,那可以做到“预装”了吗。

还是布星,你只不过是合并到主线内核上了,旧的内核咋办?不管了吗?《为什么Ubuntu 14.04不能…》、《为什么Fedora 20不能…》、为什么《CentOS 6不能…》。。。

于是只能自己或者寄托于别人来做backports,自己做是不可能的,这辈子也不可能的;别人做又容易出问题。

于是你思考了一小会之后一拍大腿:不做了,QQ这么大用户量的应用都还没Linux版呢,我做个鬼的Linux驱动,让这些Linux用户都见鬼去吧。

当然如果有一天Linux desktop的市场占有率能和Windows和Mac OS平分天下的话,我相信你无论如何也会想办法把驱动并入内核并且做大量的backports,抽出一些人手来维护Linux驱动。别的厂商也会去做同样的事情,“预装”或者能自动安装驱动将不再是一个问题。可事实上Linux desktop占有率连Windows零头都没有。本身一个硬件的使用比例已经很低了,P(AB)可是等于P(A) * P(B)的。

补充一张linus经典照片:

具体故事背景可自行搜索关键字“linus NVIDIA”。




  

相关话题

  终端、Shell、tty 和控制台(console)有什么区别? 
  Fedora 18如何通过Dr.com联网? 
  为什么Ubuntu Edge需要筹集3200万美元资金? 
  是什么让 Ubuntu 选用 Qt 而不是 GTK? 
  各个 Linux 发行版的风格和哲学分别是怎样的? 
  为什么感觉用Ubuntu写代码麻烦呢? 
  如何看待ubuntu开发者进驻魅族论坛? 
  熟悉 Ubuntu 的新手怎么玩转 Arch? 
  打算用 Linux 作为日常使用的操作系统,不做开发,哪个版本比较合适? 
  为什么不开发 Linux 上的傻瓜式桌面? 

前一个讨论
学了计算机后感觉各种软件其实都不可靠,信不过电脑怎么办?
下一个讨论
怎么看待不给外卖员坐电梯这种情况?





© 2025-02-27 - tinynew.org. All Rights Reserved.
© 2025-02-27 - tinynew.org. 保留所有权利