百科问答小站 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”。




  

相关话题

  ubuntu20.04,师弟把我 /home/user/ 下的一个项目删除了,如何恢复? 
  为什么不开发 Linux 上的傻瓜式桌面? 
  在Ubuntu 上有什么必装的实用软件? 
  为什么不开发 Linux 上的傻瓜式桌面? 
  Ubuntu 什么最强大? 
  在Linux中如果把Python卸载了系统还能正常运行吗? 
  为什么Ubuntu Edge需要筹集3200万美元资金? 
  熟悉 Ubuntu 的新手怎么玩转 Arch? 
  熟悉 Ubuntu 的新手怎么玩转 Arch? 
  如何优雅地同时使用 Linux 和 Windows 两个系统? 

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





© 2024-11-26 - tinynew.org. All Rights Reserved.
© 2024-11-26 - tinynew.org. 保留所有权利