红联Linux门户
Linux帮助

linux的驱动到底在哪里

发布时间:2011-07-26 17:45:56来源:红联作者:crazyeda
[i=s] 本帖最后由 crazyeda 于 2011-7-27 16:32 编辑 [/i]

首先声明,在下是个十足的初哥,windows的痼癖已经养成多年,对linux的理解始终感觉隔着一层薄纱,有很多困惑。

像很多初学者一样,装过了很多发行版,结果发现驱动程序基本上都不用我做太多的干预就装上了,除了无线网卡和一些偏门设备。但这反而让我感到迷茫和困惑了,以前用windows,设备管理器里没有感叹还和问号了,才敢放心大胆的用,windows的驱动程序也基本都是后装的。可是linux,这驱动程序压根不要我自己装啊,这些驱动程序到底是内置在内核的二进制文件里还是作为模块存在于系统目录下供加载使用。为什么一样版本的内核的发行版,内置的驱动程序却有差异,我们可不可以把一个能支持某种硬件的发行版里的驱动程序提取出来,用于另外一个原本不支持该硬件的发行版中。

我的问题是:
1、linux的驱动程序文件在哪,是由内核提供支持的(不需要另外的驱动模块),还是由该驱动模块自己加载到内核里工作的
2、同样版本内核的发行版,却有不同的硬件支持属性,是为什么?如何扩充硬件支持不够的发行版提供更多的硬件支持
3、如果驱动都内置在内核里,那么为了适应如此繁多的硬件种类,他们的存在一定占用了一定的磁盘空间和系统资源,当需要定制一个高度针对单一硬件的系统时,如何剥离那些根本用不上的驱动和它们占用的系统资源。

问题很外行,自己表达的也不尽人意,希望有人能解答一下我的困惑,谢谢!
文章评论

共有 13 条评论

  1. D调漫步 于 2011-08-11 17:59:39发表:

    学习了!!!

  2. 578247556 于 2011-08-10 16:28:13发表:

    hehe

  3. zl870213 于 2011-08-10 14:19:05发表:

    就要这样多问。

  4. lren 于 2011-08-01 23:49:35发表:

    支持下,顶顶啦。。

  5. lren 于 2011-08-01 23:49:30发表:

    支持下,顶顶啦。。

  6. lren 于 2011-08-01 23:49:25发表:

    支持下,顶顶啦。。

  7. crazyeda 于 2011-07-29 14:14:10发表:

    谢谢楼上,红联是个好地方

  8. age 于 2011-07-29 11:10:43发表:

    引用:
    谢谢,接着问,官方下载的源码,好比说下载的3.0内核,70多M,他那些源码里,会包含了收录的所有支持的硬件的驱动程序吗,还是硬件驱动(指的是前面所说的内核支持的大部分硬件的驱动,不是特殊的需要自己安装的第三 ...
    crazyeda 发表于 2011-7-29 10:29

    它收录所有常见的开源驱动
    不常见的和闭源的需要单独下载安装

  9. crazyeda 于 2011-07-29 10:29:54发表:

    谢谢,接着问,官方下载的源码,好比说下载的3.0内核,70多M,他那些源码里,会包含了收录的所有支持的硬件的驱动程序吗,还是硬件驱动(指的是前面所说的内核支持的大部分硬件的驱动,不是特殊的需要自己安装的第三方驱动)的源码要另外去下载

  10. age 于 2011-07-27 17:17:41发表:

    引用:
    谢谢楼上热心哥们的解答,自己又百度了一番有了新问题

    编译内核的时候,可以使用[M]选项把驱动作为模块编译在外面,那么请问,在kernel.org上下载的内核源码中包含大部分驱动程序的源码吗,还是这部分要额外去寻找 ...
    crazyeda 发表于 2011-7-27 17:04

    官方内核只是源代码而已,
    发行版内核则是二进制包, 是对官方内核配置后的编译结果.

  11. crazyeda 于 2011-07-27 17:04:27发表:

    谢谢楼上热心哥们的解答,自己又百度了一番有了新问题

    编译内核的时候,可以使用[M]选项把驱动作为模块编译在外面,那么请问,在kernel.org上下载的内核源码中包含大部分驱动程序的源码吗,还是这部分要额外去寻找加入。其实我就是想知道,官方内核和发行版的内核是不是本质上都是来自于同一个源码的不同编译配置项的结果

  12. age 于 2011-07-26 19:07:43发表:

    1. 二者都有,内核包里本身自带了很多常见硬件的驱动,对于不能识别的硬件,则需要手动安装驱动。
    2. 内核是可配置的,有很多选项的。所以即使是同个版本的内核源码,配置不同,最终得到的驱动种类和数量都是不同的。想扩展硬件支持就自己装驱动,网上可以到很多驱动模块的。
    3. 要说这点,首先要明白linux内核的编译方式。它只把最核心的功能编入vmlinuz,以使内核尽可能的小和高效,而不常用的功能,以及驱动都编译为模块,只在需要时才调用。如果你想定制自己的内核,就自己编译内核吧

  13. hml1006 于 2011-07-26 19:02:11发表:

    如果学一下如何编译自己的内核,这些都不是问题。
    linux驱动一部分常用的放在内核镜像里,还有一部分作为模块在使用时加载。
    编译时决定