之前看到一个说法,linux 的源代码基本都是驱动代码
我想知道的是,这些驱动是作为编译后的内核的一部分吗?还是像 glibc 一样,只是一个内核外的软件包
如果我安装了 nv 的 GPU 驱动,那么这些 GPU 驱动也会进去内核吗?
之前看到一个说法,linux 的源代码基本都是驱动代码
我想知道的是,这些驱动是作为编译后的内核的一部分吗?还是像 glibc 一样,只是一个内核外的软件包
如果我安装了 nv 的 GPU 驱动,那么这些 GPU 驱动也会进去内核吗?
1 回答1.2k 阅读✓ 已解决
3 回答881 阅读✓ 已解决
1 回答723 阅读✓ 已解决
1 回答1.5k 阅读
1 回答871 阅读✓ 已解决
2 回答660 阅读✓ 已解决
1 回答713 阅读
内核是内核,驱动是驱动。
所谓的“Linux 的源代码基本都是驱动代码”这句话是某种程度上是对的,但这仅仅说的是源代码而已 —— Linux Kernel 的仓库里确实也托管着各种驱动的代码,不过是在 drivers 目录下。
Linux 上的驱动既可以以链接的形式与内核一起编译、随内核在系统启动的时候一起被加载;也可以以编译成外部模块,在系统启动后再动态地加载到内核中。这都取决于编译时的配置。
要不然全部驱动都跟着内核一起编译,那最后构建出来的内核得多大……而且绝大部分驱动你也用不上啊……
N 卡驱动一般是编译为模块的。