2022年linux内核编译 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年linux内核编译 .pdf》由会员分享,可在线阅读,更多相关《2022年linux内核编译 .pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux 内核配置选项翻译2.6.19.1(完成到第8 部分)2007-1-11 周四 , 10:29 0 Permalink 心情 : Angelic 内容目录1. Code maturity level options 2 2. General setup 常规安装选项2 3. Loadable module support 引导模块支持5 4. Block layer 6 5. Processor type and features 处理器类型及特性8 6. Power management options (ACPI, APM) 17 7. Bus options (PCI, PCM
2、CIA, EISA, MCA, ISA) 总线选项22 8. Executable file formats 24 9. Networking support 网络支持。25 10. Device Drivers 设备驱动47 11. File systems 文件系统82 12. Instrumentation Support 测试用的支持项目86 13. Kernel hacking 内核调试。86 14. Security options 安全选项。88 15. Cryptographic options 密码选项。88 16. Library routines 常规的库。95 说明 1
3、:文字中的 Y表示选择进内核。M 表示编成模块。N 表示不选择。有的只能选Y,有的只能选M。在 make menuconfig 下,表示Y,M 表示 M,空白表示N。make xconfig 下, 表示 Y ,表示 M,空白表示N。说明 2:菜单中,有的选项你选了Y才出现,有的选了Y,它反而不会出现。有的选项根本不会提供选择。 所以我提供的菜单项应该不是最完整的设置选项。如果你碰到了新的选项,你可以认真看它的英文说明,或者通过上网搜索、在论坛提问等方式来了解它。1. Code maturity level options 代码完成等级选项1.1. Prompt for development
4、and/or incomplete code/drivers 对开发中的或者未完成的代码和驱动进行提示。LINUX下的很多东西,比如网络设备、文件系统、网络协议等等,它们的功能、稳定性、或者测试等级等等还不能够符合大众化的要求,还处于开发之中。这就是所谓的阿尔法版本:最初开发版本;接下来的是BETA版本,公开测试版本。如果这是阿尔法版本,那么开发者名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 为了避免收到诸如“ 为何这东西不
5、工作” 的信件的麻烦,常常不会让它发布出去。但是,积极的测试和使用阿尔法版本对软件的开发是非常好的。你只需要明白它未必工作得很好,在某些情况有可能会出问题。汇报详细的出错情况对开发者很有帮助。这个选项同样会让一些老的驱动的可用。很多老驱动在将来的内核中已经被代替或者被移除。除非你想要帮助软件的测试,或者开发软件, 或者你的机器需要这些特性,否则你可以选N,那样你会在配置菜单中得到较少的选项。如果你选了Y,你将会得到更多的阿尔法版本的驱动和代码的配置菜单。2. General setup 常规安装选项2.1. Local version - append to kernel release 在你
6、的内核后面加上一串字符来表示版本。这些字符在你使用uname -a 命令时会显示出来。你的字符最多不能超过64 位。2.2. Automatically append version information to the version string (LOCALVERSION_AUTO) 自动生成版本信息。这个选项会自动探测你的内核并且生成相应的版本,使之不会和原先的重复。这需要Perl 的支持。由于在编译的命令make-kpkg 中我们会加入- - append-to-version 选项来生成自定义版本,所以这里选N。2.3. Support for paging of anonymou
7、s memory (swap) 这个选项将使你的内核支持虚拟内存,也就是让你的计算机好象拥有比实际内存更多的内存空间用来执行很大的程序。这个虚拟内存在LINUX中就是 SWAP分区。除非你不想要SWAP分区,否则这里必选Y。2.4. System V IPC (IPC:Inter Process Communication) 中间过程连接是一组功能和系统调用,使得进程能够同步和交换信息。这通常来说是好事,有一些程序只有你选择了Y才能运行。特别地, 你想在 LINUX下运行DOS仿真程序, 你必须要选 Y。你可以用info ipc 命令来了解IPC 。一定要选Y。2.4.1. IPC Names
8、paces (IPC_NS) IPC 命名空间,命名空间的作用是区别同名的东西,就比如李宁和张宁,都叫“ 宁” ,加个姓才能区分。这个选项也是为不同的服务器提供IPC的多命名,达到一个IPC提供多对象支持的目的。不清楚的话选N。2.5. POSIX Message Queues 可移植操作系统接口信息队列可移植操作系统接口信息队列是IPC的一部分, 在通信队列中有较高的优先权来保持通信畅通。如果你想要编译和运行在Solaris 操作系统上写的POSIX信息队列程序,选Y,同时你还需要mqueue 库来支持这些特性。它是作为一个文件系统存在(mqueue) ,你可以mount它。为保证以后的不同
9、程序的协同稳定,如果不清楚,选Y。2.6. BSD Process Accounting BSD进程统计如果你选Y,用户级别的程序就可以通过特殊的系统调用方式来通知内核把进程统计信息记录到一个文件, 当这个进程存在的时候,信息就会被内核记录进文件。信息通常包括建立时间、所有者、命令名称、内存使用、控制终端等。这对用户级程序非常有用。所以通常选Y是一个好主意。2.6.1. BSD Process Accounting version 3 file format 选 Y,统计信息将会以新的格式(V3)写入,这格式包含进程ID 和父进程。注意这个格式和以前的v0/v1/v2 格式不兼容,所以你需要升
10、级相关工具来使用它。2.7. Export task/process statistics through netlink (EXPERIMENTAL) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - - - - - - - 处于实验阶段的功能。通过通用的网络输出工作/进程的相应数据,和BSD不同的是,这些数据在进程运行的时候就可以通过相关命令访问。和BSD 类似,数据将在进程结束时送入用户空间。如果不清楚,选N。2.8. UTS Namespace
11、s 通用终端系统的命名空间。它允许容器, 比如 Vservers利用 UTS命名空间来为不同的服务器提供不同的UTS 。如果不清楚,选N。2.9. Auditing support 审计支持 (AUDIT) 允许审计的下层能够被其他内核子系统使用,比如SE Linux,它需要这个来进行登录时的声音和视频输出。没有CONFIG_AUDITSYSCALL 时(即下一个选项)无法进行系统调用。2.9.1. Enable system-call auditing support (AUDITSYSCALL) 允许系统独立地或者通过其他内核的子系统,调用审计支持,比如SE Linux。要使用这种审计的文
12、件系统来查看特性,请确保INOTIFY 已经被设置。上一项的子选项,两项要选就都选。我并不清楚审计的意义,可能是为了调用其他内核的东西吧。所以就都选了,因为我机器上还有个官方2.6.15-27 内核。2.10. Kernel .config support 这个选项允许 .config 文件(即编译LINUX时的配置文件)保存在内核当中。它提供正在运行中的或者还在硬盘中的内核的相关配置选项。可以通过内核镜像文件kernel image file 用命令script scripts/extract-ikconfig 来提取出来,作为当前内核重编译或者另一个内核编译的参考。如果你的内核在运行中,可
13、以通过/proc/config.gz文件来读取。下一个选项提供这项支持。看起来好像是一个不错的功能,可以把编译时的.config 文件保存在内核中,以供今后参考调用。 用来重编译和编译其他的内核的时候可以用上。你是一个编译内核的狂人的话,这项要选上(比如我,不过我总是会备份所有的.config 文件) 。2.10.1. Enable access to .config through /proc/config.gz 上一项的子项,可以通过/proc/config.gz 访问当前内核的.config 。新功能,上一项选的话这个就选上吧。2.11. Cpuset support 多 CPU支持。这
14、个选项可以让你建立和管理CPU集群,它可以动态地将系统分割在各个CPU和内存节点中,在各个节点是独立运行的。这对大型的系统尤其有效。如果不清楚,选N。2.12. Kernel-user space relay support (formerly relayfs) 内核系统区和用户区进行传递通讯的支持。这个选项在特定的文件系统中提供数据传递接口支持,它可以提供从内核空间到用户空间的大批量的数据传递工具和设施。如果不清楚,选N。2.13. Initramfs source file(s) 没有可选项。2.14. Optimize for size (Look out for broken comp
15、ilers!) 这个选项将在GCC命令后用-Os 代替-O2参数,这样可以得到更小的内核。警告:某些 GCC版本会导致错误。如果有错,请升级你的GCC 。如果不清楚,选N。这是优化内核大小的功能,没必要选。一个编译好的内核才710 多 M ,大家不会少这么点空间吧。选上了可能会出一些问题。最好不选。2.15. Configure standard kernel features (for small systems) 这个选项可以让内核的基本选项和设置无效或者扭曲。这是用于特定环境中的,它允许“ 非名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
16、 - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - 标准 ” 内核。你要是选它,你一定要明白自己在干什么。这是为了编译某些特殊用途的内核使用的,例如引导盘系统。通常你可以不选择这一选项,你也不用关心他的子选项。3. Loadable module support 引导模块支持3.1. Enable loadable module support 这个选项可以让你的内核支持模块,模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行支持。一般一些不常用到的驱动或特性可以
17、编译为模块以减少内核的体积。在运行时可以使用modprobe 命令来加载它到内核中去(在不需要时还可以移除它)。一些特性是否编译为模块的原则是,不常使用的, 特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文件系统,系统总线的支持就不要编为模块,否则无法启动系统。在启动时不用到的功能,编成模块是最有效的方式。你可以查看MAN 手册来了解: modprobe, lsmod, modinfo, insmod 和 rmmod. 如 果 你 选 了 这 项 , 你 可 能 需 要 运 行make modules_install 命 令 来 把 模 块 添 加
18、 到/lib/modules/ 目录下,以便modprobe 可以找到它们。如果不清楚,选Y。3.2. Module unloading 这个选项可以让你卸载不再使用的模块,如果不选的话你将不能卸载任何模块(有些模块一旦加载就不能卸载,不管是否选择了这个选项)。如果不清楚,选Y。3.2.1. Forced module unloading 这个选项允许你强行卸除模块,即使内核认为这不安全。内核将会立即移除模块,而不管是否有人在使用它(用rmmod -f 命令) 。这主要是针对开发者和冲动的用户提供的功能。如果不清楚,选N。3.3. Module versioning support (MODV
19、ERSIONS) 有时候,你需要编译模块。有时候,你需要编译模块。选这项会添加一些版本信息,来给编译的模块提供独立的特性,以使不同的内核在使用同一模块时区别于它原有的模块。这有时可能会有点用。如果不清楚,选N。3.4. Source checksum for all modules 这个功能是为了防止你在编译模块时不小心更改了内核模块的源代码但忘记更改版本号而造成版本冲突。如果不清楚,选N。3.5. Automatic kernel module loading 允许内核自动加载模块。一般情况下, 如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe 命
20、令来加载它,内核才能使用。不过,如果你选择了这个选项, 在内核需要一些模块时它可以自动调用modprobe 命令来加载需要的模块。如果不清楚,选Y。4. Block layer 块设备。4.1. Enable the block layer (BLOCK) 这选项使得块设备可以从内核移除。如果不选,那么blockdev 文件将不可用,一些文件系统比如ext3 将不可用。这个选项会禁止SCSI 字符设备和USB 储存设备,如果它们使用不同的块设备。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
21、 - 第 4 页,共 17 页 - - - - - - - - - 选 Y,除非你知道你不需要挂载硬盘和其他类似的设备。不过此项无可选项。4.1.1. Support for Large Block Devices (LBD) 如果你要用大于2TB的硬盘,选这个。4.1.2. Support for tracing block io actions 对块设备进行跟踪和分析的功能。4.1.3. Support for Large Single Files (LSF) 大文件支持。如果你准备建的文件大于2TB,选这个。4.1.4. IO Schedulers 磁盘 IO 调度器IO 是输入输出带宽
22、控制,主要针对硬盘,是核心的必須的东西。这里提供了三个IO 调度器。4.1.4.1. Anticipatory I/O scheduler 抢先式I/O 调度方式是默认的磁盘调度方式。它对于大多数环境通常是比较好的选择。但是它和 Deadline I/O 调度器相比有点大和复杂,它有时在数据调入时会比较慢。4.1.4.2. Deadline I/O scheduler Deadline IO 调度器简单而又紧密,在性能上和抢先式调度器不相上下,在一些数据调入时工作得更好。至于在单进程IO 磁盘调度上,它的工作方式几乎和抢先式调度器相同,因此也是一个好的选择。看介绍这个好像比上面的更好,可以试试
23、。不过按照我的平衡观点,好东西都会带来问题。4.1.4.3. CFQ I/O scheduler CFQ调度器尝试为所有进程提供相同的带宽。它将提供平等的工作环境,对于桌面系统很合适。4.1.4.4. Default I/O scheduler 选择默认的IO 调度器我选了 Anticipatory I/O scheduler 。我这样理解上面三个IO 调度器:抢先式是传统的, 它的原理是一有响应,就优先考虑调度。如果你的硬盘此时在运行一项工作,它也会暂停下来先响应用户。期限式则是:所有的工作都有最终期限,在这之前必须完成。当用户有响应时,它会根据自己的工作能否完成,来决定是否响应用户。CFQ
24、 则是平均分配资源,不管你的响应多急,也不管它的工作量是多少,它都是平均分配,一视同仁的。5. Processor type and features 处理器类型及特性5.1. Symmetric multi-processing support (SMP) 对称多处理器支持。这将支持有多CPU的系统。如果你的系统只有一个CPU,选 N。反之,选Y。如果你选 N,内核将会在单个或者多个CPU的机器上运行, 但是只会使用一个CPU 。如果你选 Y,内核可以在很多(但不是所有)单CPU的机器上运行,在这样的机器,你选N 会使内核运行得更快。注意如果你选Y,然后在Processor family 选
25、项中选择 586 or Pentium ,内核将不能运行在 486 构架的机器上。 同样的, 多 CPU的运行于 PPro构架上的内核也无法在Pentium 系列的板上运行。使用多 CPU机器的人在这里选Y, 通常也会在后面的选项“Enhanced Real Time Clock Support”中选 Y。如果你在这选Y,Advanced Power Management 的代码将不可用。如果不清楚,选N。5.2. Subarchitecture Type 子构架类型5.2.1. PC-compatible 选这个如果你的机器是标准PC 名师资料总结 - - -精品资料欢迎下载 - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年linux内核编译 2022 linux 内核 编译
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内