当前位置: 首页 > 知识库问答 >
问题:

驱动是安装进 linux 内核的吗?

蒋寒
2023-08-20

之前看到一个说法,linux 的源代码基本都是驱动代码

我想知道的是,这些驱动是作为编译后的内核的一部分吗?还是像 glibc 一样,只是一个内核外的软件包


如果我安装了 nv 的 GPU 驱动,那么这些 GPU 驱动也会进去内核吗?

共有1个答案

长孙和悦
2023-08-20

内核是内核,驱动是驱动。

所谓的“Linux 的源代码基本都是驱动代码”这句话是某种程度上是对的,但这仅仅说的是源代码而已 —— Linux Kernel 的仓库里确实也托管着各种驱动的代码,不过是在 drivers 目录下。

Linux 上的驱动既可以以链接的形式与内核一起编译、随内核在系统启动的时候一起被加载;也可以以编译成外部模块,在系统启动后再动态地加载到内核中。这都取决于编译时的配置。

要不然全部驱动都跟着内核一起编译,那最后构建出来的内核得多大……而且绝大部分驱动你也用不上啊……

N 卡驱动一般是编译为模块的。

 类似资料:
  • 本文向大家介绍Linux安装PHP MongoDB驱动,包括了Linux安装PHP MongoDB驱动的使用技巧和注意事项,需要的朋友参考一下 PHP利于学习,使用广泛,主要适用于Web开发领域。 MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。 在php中使用mongodb你必须使用 mongodb 的

  • 问题内容: 我从LDD3第14章读到了有关热插拔驱动程序的信息。我需要编写一个USB鼠标驱动程序,在插入硬件时会加载该驱动程序。现在,通过做一些实验,我知道有一个名为“ hid-generic”的驱动程序,在插拔时会被调用。 另外,lsmod显示 我的疑问如下 1)为了在插入此鼠标时加载模块(hotplug),我必须在内核中禁用这3个驱动程序,并使用id_table中具有供应商和设备ID的驱动程序

  • 主要内容:initramfe虚拟文件系统GRUB 加载了内核之后,内核首先会再进行二次系统的自检,而不一定使用 BIOS 检测的硬件信息。这时内核终于开始替代 BIOS 接管 Linux 的启动过程了。 内核完成再次系统自检之后,开始采用动态的方式加载每个硬件的模块,这个动态模块大家可以想象成硬件的驱动(默认 Linux 硬件的驱动是不需要手工安装的,如果是重要的功能,则会直接编译到内核当中;如果是非重要的功能,比如硬件驱动会编译为模块

  • 我刚刚从官方的android站点下载了最新的android studio并安装了它。但我得到这个错误而不是有英特尔X 86模拟器加速器。什么会导致此错误

  • 问题内容: 在Linux中,如果将设备驱动程序构建为可加载的内核模块,则在插入设备驱动程序内核模块后,内核会调用宏所指出的设备驱动程序的init函数。 这对于静态编译到内核中的设备驱动程序如何起作用?他们的init函数如何调用? 问题答案: 内置驱动程序的 init 例程仍可以使用宏声明该入口点。或者,当驱动程序永远不会被编译为可加载模块时,驱动程序可以使用。或者要在启动顺序的早期阶段移动其初始化

  • 驱动开发注意事项 不能访问C库 只有一个很小的定长堆栈 没有内存保护机制 浮点数很难使用,应该使用整型数 Kconfig 描述了所属目录源文档相关的内核配置菜单,用于make menuconfig中的配置 示例: menu "Network device support" config NETDEVICES bool "Enable Net Devices" 菜单类型 depen