首页 文章

编译模块的数量会影响RAM中Linux内核的大小吗?

提问于
浏览
0

当我编译Linux内核时,我编译的驱动程序和模块的数量肯定会影响生成的二进制文件的大小 . 但它在加载到内存时是否也会影响内核的大小?

我的意思是,当我编译我的硬件不需要的驱动程序时,内核会忽略它们,还是它们也被加载到RAM中?

TL;DR : I compile kernel A containing ONLY drivers that I need; Kernel B containing drivers I need + extra drivers I don't. Will kernel B eat more memory than kernel A?

1 回答

  • 2
    • 作为Linux内核映像的一部分构建的任何驱动程序在引导期间都会加载到主内存中,并且无论是否使用它都将继续占用主内存 .

    • 作为单独模块构建的驱动程序,即 .ko 文件可以根据需要单独加载 . 除非加载,否则它们不会消耗任何主内存 .

    • 在加载并运行Linux内核后,使用modprobeinsmod命令加载内核模块 .

    • 使用 modprobe 加载Linux内核模块时,它所依赖的任何其他模块都是automatically loaded first .

    • 加载内核模块时,需要将它们映射到连续的虚拟内存块中 . 这是通过引入additional constraint on the memory map using vmalloc来实现的 .

相关问题