`
isiqi
  • 浏览: 16483918 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

linux内核编译选项详解(二):Loadable Module and Block Layer Support

 
阅读更多

[*] Enable loadable module support --->
打 开可加载模块支持,如果打开它则必须通过"make modules_install"把内核模块安装在/lib/modules/中这个选项可以让你的内核支持模块,模块是什么呢?模块是一小段代码,编译 后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在 运行时可以使用modprobe命令来加载它到内核中去(在不需要时还可以移除它)。一些特性是否编译为模块的原则是,不常使用的,特别是在系统启动时不 需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文件系统,系统总线的支持就不要编为模块,否则无法启动系统。在启动时不用到 的功能,编成模块是最有效的方式。你可以查看MAN手册来了解:modprobe, lsmod, modinfo, insmod 和 rmmod.
如果不清楚,选Y。

  • [ ] Forced module loading
    允许强制加载模块
  • [*] Module unloading
    允许卸载已经加载的模块
  • [*] Forced module unloading
    允许强制卸载正在使用中的模块(比较危险)这个选项允许你强行卸除模块,即使内核认为这不安全。内核将会立即移除模块,而不管是否有人在使用它(用 rmmod -f 命令)。这主要是针对开发者和冲动的用户提供的功能。如果不清楚,选N。
  • [ ] Module versioning support
    有时候,你需要编译模块。选这项会添加一些版本信息,来给编译的模块提供独立的特性,以使不同的内核在使用同一模块时区别于它原有的模块。这有时可能会有点用。如果不清楚,选N。允许使用其他内核版本的模块(可能会出问题)
  • [ ] Source checksum for all modules
    为所有的模块校验源码,如果你不是自己编写内核模块就不需要它这个功能是为了防止你在编译模块时不小心更改了内核模块的源代码但忘记更改版本号而造成版本冲突。如果不清楚,选N。

-*- Enable the block layer --->
块 设备支持,使用硬盘/USB/SCSI设备者必选这选项使得块设备可以从内核移除。如果不选,那么 blockdev 文件将不可用,一些文件系统比如 ext3 将不可用。这个选项会禁止 SCSI 字符设备和 USB 储存设备,如果它们使用不同的块设备。选Y,除非你知道你不需要挂载硬盘和其他类似的设备。不过此项无可选项

  • [*] Support for large (2TB+) block devices and files
    仅在使用大于2TB的块设备时需要
  • [*] Block layer SG support v4
    通用scsi块设备第4版支持
  • [ ] Block layer data integrity support
    块设备数据完整性支持
  • IO Schedulers --->
    IO调度器I/O是输入输出带宽控制,主要针对硬盘,是核心的必須的东西。这里提供了三个IO调度器。
    • <*> Anticipatory I/O scheduler
      使 用于大多数环境假设一个块设备只有一个物理查找磁头(例如一个单独的SATA硬盘),将多个随机的小写入流合并成一个大写入流,用写入延时换取最大的写入 吞吐量.适用于大多数环境,特别是写入较多的环境(比如文件服务器)抢先式 I/O 调度方式是默认的磁盘调度方式。它对于大多数环境通常是比较好的选择。但是它和Deadline I/O 调度器相比有点大和复杂,它有时在数据调入时会比较慢。
    • <*> Deadline I/O scheduler
      使 用轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,特别适合于读取较多的环境(比如数据库)Deadline I/O调度器简单而又紧密,在性能上和抢先式调度器不相上下,在一些数据调入时工作得更好。至于在单进程I/O磁盘调度上,它的工作方式几乎和抢先式调度 器相同,因此也是一个好的选择。
    • <*> CFQ I/O scheduler
      使用QoS策略为所有任务分配等量的带宽,避免进程被饿死并实现了较低的延迟,可以认为是上述两种调度器的折中.适用于有大量进程的多用户系统CFQ调度器尝试为所有进程提供相同的带宽。它将提供平等的工作环境,对于桌面系统很合适。
    • Default I/O scheduler (CFQ) --->
      默 认IO调度器我这样理解上面三个IO调度器:抢先式是传统的,它的原理是一有响应,就优先考虑调度。如果你的硬盘此时在运行一项工作,它也会暂停下来先响 应用户。期限式则是:所有的工作都有最终期限,在这之前必须完成。当用户有响应时,它会根据自己的工作能否完成,来决定是否响应用户。CFQ则是平均分配 资源,不管你的响应多急,也不管它的工作量是多少,它都是平均分配,一视同仁的。
      • ( ) Anticipatory
      • ( ) Deadline
      • (X) CFQ
      • ( ) No-op
分享到:
评论

相关推荐

    Linux内核编译菜单中各选项代表的含义

    本文将深入解析Linux内核编译菜单中的各项选项及其含义。 1. **prompt for development and/or incomplete code/drivers**:这个选项涉及到是否启用那些还在开发或者不完全稳定的代码和驱动。通常,为了获得最新的...

    Linux 2.6.28 内核配置选项详解

    ### Linux 2.6.28 内核配置选项详解 #### 前言 本文档旨在为Linux 2.6.28 内核的配置提供详细的指导和解释。随着Linux内核版本的不断更新和发展,对于内核配置的理解变得越来越重要。本文将根据给定的部分内容对...

    linux2.6内核编译与安装方法

    ### Linux 2.6 内核编译与安装方法 #### 概述 本文档将详细介绍如何在 Ubuntu 10.4 上编译并安装 Linux 2.6.38.8 内核版本的过程。该文档适用于希望深入了解内核编译流程、定制内核配置的 Linux 用户及开发者。...

    Linux内核配置选项翻译.

    3. **Loadable module support**:这部分配置与可加载模块有关,它们允许在需要时动态添加或移除内核功能。选择`Y`可以启用模块支持,`M`表示编译为模块,`N`则不包含。 4. **Processor type and features**:根据...

    linux内核裁剪的具体过程和方法.doc

    Loadable module support 是一个重要的选项,允许内核支持模块。模块是一小段代码,编译后可以在系统内核运行时动态地加入内核,从而为内核增加一些特性或是对某种硬件进行支持。 (四)Block layer 在 Block ...

    linux 内核编译详细过程

    - **模块配置**:选择“Loadable Module support”下的“Module unloading”和“Automatic kernel module loading”,这些选项能够使内核能够自动加载和卸载模块。 - **设备驱动**:配置块设备支持、RAID/LVM支持...

    Linux操作系统内核编译详解

    Linux操作系统内核编译详解 Linux内核是操作系统的核心组件,负责管理系统的各种资源,包括进程调度、内存管理、设备驱动、文件系统和网络通信,是系统性能和稳定性的关键。Linux的一大特色是其源代码开放,允许...

    linux内核配置详细

    在Block layer中,我们需要配置块设备相关的选项。 第五部分:除以下选项,其它全部删除 在Processor type and features中,我们需要配置处理器类型和特性。在这里,我们可以选择PC-compatible作为我们的处理器...

    深入Linux内核.pdf

    Enable loadable module support:将内核使用较少的特征设置为可以装入的模块,应该将其设置为yes。Set version information on and II symbols for modules:在兼容的情况下,在目前的内核中使用最初为不同的版本...

    linux内核裁剪的具体过程和方法.docx

    选择 Loadable module support,以便让内核支持模块。模块是一小段代码,编译后可在系统内核运行时动态加入内核,从而为内核增加一些特性或是对某种硬件进行支持。 4. 配置 Automatic kernel module loading 选择 ...

    linux-2.6.18内核编译全过程

    ### Linux-2.6.18 内核编译全过程详解 #### 实训目标与内容概览 在本文档中,我们将深入探讨Linux-2.6.18内核的编译过程,这一过程旨在帮助读者掌握核心技能,包括但不限于内核编译的基本命令、配置选项的理解以及...

    Linux内核配置选项.pdf

    Linux内核配置选项还涵盖了可引导模块支持(Loadable module support),该选项允许用户在运行时动态地加载或卸载模块,这样可以为内核动态地增加特性或支持特定硬件。模块化驱动的好处在于,可以只在需要时加载驱动...

    Linux 内核升级到2.6.18成功笔录

    * Loadable Module support 选项中,一定要选上 “Module unloading” 和 “Automatic kernel module loading” 这两项。 * Processor type and features 选项中,一定要选上 “Preemptible Kernel”。 * Device ...

    linux实验十编译linux内核借鉴.pdf

    * Loadable module support:这个选项是你的内核对内核模块的支持选项,包括是否支持和支持的一些配置等。 * System Type:择对系统的支持,如什么样的 ARM 内核,什么样的配置平台等。 * General Setup:这里是内核...

    linux内核升级教程

    ### Linux内核升级教程知识点详解 #### 一、前言 在进行Linux内核升级之前,我们首先需要了解几个关键概念。Linux内核是Linux操作系统的核心部分,它负责管理系统的硬件资源并提供基本的服务给其他应用程序。随着...

    linux内核裁剪过程与方法

    Loadable module support 允许内核支持模块,模块是一小段代码,可以在系统内核运行时动态加入内核,从而为内核增加一些特性或是对某种硬件进行支持。 4. 删除 Block layer Block layer 是块设备相关的配置,删除...

    linux实验十编译linux内核参照.pdf

    - **Loadable module support**:开启对内核模块的支持,会增加内核大小。 - **System Type**:选择内核支持的系统类型,如ARM内核和配置平台。 - **General Setup**:配置内核的基本属性,如压缩方式、网络支持...

    Linux kernel内核升级全过程

    在 /usr/src 文件夹下,删除 linux 文件夹(如果内核先前从未编译过,则没有这个文件夹),然后解压新内核源码包 using tar jvxf 命令,最后重新生成 linux 文件夹。 六、安装 module-init-tools 工具 在 /usr/src...

Global site tag (gtag.js) - Google Analytics