资讯详情

Linux-4.4-x86_64 内核配置选项简介

Linux-4.4-x86_64 内核配置选项简介

作者:金步国

版权声明

其他作品

联系方式

Gentoo LinuxGentoo内核(gentoo-sources)特有的选项

General setup常规设置

Enable loadable module support可加载模块支持

Enable the block layer块设备支持

Processor type and features中央处理器(CPU)类型及特性

Power management and ACPI options电源管理和ACPI选项

Bus options (PCI etc.)总线选项

Executable file formats / Emulations可执行文件格式/仿真

Networking support网络支持

Device Drivers设备驱动程序

Firmware Drivers固件(Firmware)驱动

File systems文件系统

Kernel hacking内核hack选项

Security options如果您不了解这里的选项,建议不要选择安全选项,否则可能会弄巧成拙.

Cryptographic API内核加密API支持这里的加密算法广泛应用于驱动程序通信协议等机制.不能选择子选项。如果核心中的其他部分依赖它,它将自动选择.可能需要手动选择内核树外的模块.

Virtualization虚拟化支持仅在将此内核用作宿主机(host)只有在这里打开子项

Library routines库子程序子选项可以选项。如果核心中的其他部分依赖它,它将自动选择.可能需要手动选择内核树外的模块.


Linux-4.4-x86_64 内核配置选项简介

作者:


版权声明

本文作者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

  • 无担保:本文作者不保证作品内容准确无误,亦不承担任何由于使用此文档所导致的损失。
  • 自由使用:任何人都可以自由的阅读/链接/打印此文档,无需任何附加条件。
  • 名誉权:任何人都可以自由的转载/引用/再创作此文档,但必须保留作者署名并注明出处。

其他作品

本文作者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

  • 金步国作品集 [ http://www.jinbuguo.com/ ]

联系方式

由于作者水平有限,因此不能保证作品内容准确无误。如果你发现了作品中的错误(哪怕是错别字也好),请来信指出,任何提高作品质量的建议我都将虚心接纳。

  • Email(QQ):70171448在QQ邮箱

Last Update: 2016-10-24


Gentoo Linux Gentoo内核(gentoo-sources)特有的选项

Gentoo Linux support CONFIG_GENTOO_LINUX

选"Y"后,将会自动选中那些在Gentoo环境中必须开启的内核选项,以避免用户遗漏某些必要的选项,减轻一些用户配置内核的难度.建议选"Y".

Linux dynamic and persistent device naming (userspace devfs) support CONFIG_GENTOO_LINUX_UDEV

目前此项的作用仅是开启CONFIG_TMPFS和CONFIG_DEVTMPFS及其所依赖的选项.CONFIG_TMPFS是为了在"/dev/shm","/run","/sys/fs/cgroup"三个目录中挂载tmpfs文件系统,CONFIG_DEVTMPFS是为了在"/dev"目录挂载devtmpfs文件系统.建议选"Y".

Select options required by Portage features CONFIG_GENTOO_LINUX_PORTAGE

自动选中各种Portage特性(FEATURES="cgroup ipc-sandbox network-sandbox")所依赖的内核选项.由于这些FEATURES即将变为默认开启,所以建议选"Y".

Support for init systems, system and service managers

"init"系统(系统与服务管理器)."init"是内核启动的第一个用户空间程序(PID=1),也是所有用户态进程的"大总管"([提示]所有内核态进程的大总管是PID=2的[kthreadd]).

OpenRC, runit and other script based systems and managers CONFIG_GENTOO_LINUX_INIT_SCRIPT

OpenRC是Gentoo传统的"init"系统,使用基于SysVinit的传统启动脚本技术.选"Y"后,所有OpenRC所必需的内核选项(目前仅有CONFIG_BINFMT_SCRIPT)都会被自动选中.不确定的选"Y".

systemd CONFIG_GENTOO_LINUX_INIT_SYSTEMD

尽管倍受争议,但是systemd确实是目前风头最劲的"init"系统,大有在Linux世界一统江湖的霸气和潜力.仅在你打算从OpenRC迁移到systemd时选"Y".选"Y"后,内核中所有被systemd依赖的选项都将被自动选中,包括systemd建议的(而非必须的)选项,总计约20项.systemd官方的README文件也列出了必须/推荐/可选的内核选项.



64-bit kernel CONFIG_64BIT

编译64位内核.本文仅讲述x86_64(AMD64)平台的内核编译,所以这个是必选项.

General setup 常规设置

Cross-compiler tool prefix CONFIG_CROSS_COMPILE

交叉编译工具前缀(比如"arm-linux-"相当于使用"make CROSS_COMPILE=arm-linux-"进行编译).除非你想配置后默认自动进行交叉编译,否则不要使用此选项.

显示专属于其他平台(非x86平台)的驱动选项(需要交叉编译),仅供驱动开发者使用,普通的发行版制作者应该选"N".

在内核版本后面加上自定义的版本字符串(最大64字符),可以用"uname -a"命令看到

自动在版本字符串(CONFIG_LOCALVERSION)后面添加版本信息(类似"-gxxxxxxxx"格式),需要有perl以及git仓库支持

Kernel compression mode

内核镜像的压缩格式,可选Gzip/Bzip2/LZMA/XZ/LZO格式之一,推荐使用XZ格式.你的系统中需要有相应的压缩工具.

设置默认主机名,默认值是"(none)".用户可以随后使用系统调用sethostname()来修改主机名.

使用交换分区或者交换文件来做为虚拟内存

System V 进程间通信(IPC)支持,用于进程间同步和交换数据,许多程序需要这个功能.选"Y",除非你确实知道自己在做什么

POSIX消息队列是POSIX IPC的一部分,如果你想编译和运行那些使用"mq_*"系统调用的程序(比如为Solaris开发的程序),或者需要使用Docker容器,就必须开启此选项.POSIX消息队列可以作为"mqueue"文件系统挂载以方便用户对队列进行操作.不确定的选"Y".

用户程序可以使用句柄(而非文件名)来追踪文件(使用open_by_handle_at(2)/name_to_handle_at(2)系统调用),即使某文件被重命名,用户程序依然可定位那个文件.此特性有助于实现用户空间文件服务器(userspace file server).建议选"Y",因为systemd和udev依赖于它.

启用老旧的uselib()系统接口支持,仅在你需要使用基于libc5的古董级程序时才需要,不确定的选"N".

内核审计(跟踪每个进程的活动情况)支持,某些安全相关的内核子系统(例如SELinux)需要它.但是它会与systemd冲突,所以在使用systemd的系统上必须关闭.

对系统调用进行审计.既可独立使用,也可被其他内核子系统(例如SELinux)使用.

审计时使用固定的loginuid.在使用systemd之类的系统上应该开启(login服务由init进程负责重启),在使用SysVinit或Upstart之类的系统上应该关闭(login服务由系统管理员手动重启).OpenRC就是一个基于SysVinit的系统.

IRQ(中断请求)子系统

通过debugfs中的irq_domain_mapping文件向用户显示硬件IRQ号/Linux IRQ号之间的对应关系.仅用于开发调试.

稀疏IRQ号支持.它允许在小型设备上(例如嵌入式设备)定义一个很高的CONFIG_NR_CPUS值,但仍然不希望占用太多内核"memory footprint"(一段可以被操作或被管理的内存区域)的场合.稀疏IRQ也更适合NUMA平台,因为它以一种对NUMA更友好的方式分发中断描述符.不确定的选"N".

Linux内核时钟子系统

内核时钟滴答处理程序,更多信息可以参考内核源码树下的"Documentation/timers/NO_HZ.txt"文件

无论CPU是否需要,都强制按照固定频率不断触发时钟中断.这是最耗电的方式,不推荐使用

CPU在空闲状态时不产生不必要的时钟中断,以使处理器能够在较低能耗状态下运行以节约电力,适合于大多数场合

完全无滴嗒:即使CPU在忙碌状态也尽可能关闭所有时钟中断,适用于CPU在同一时间仅运行一个任务,或者用户空间程序极少与内核交互的场合.即使开启此选项,也需要额外设置"nohz_full=?"内核命令行参数才能真正生效.

即使没有设置"nohz_full"引导参数,也默认对所有CPU(boot CPU 除外)开启完全无滴答特性.

等价于CONFIG_NO_HZ_IDLE,临时用来兼容老版本内核选项,未来会被删除.

高精度定时器(hrtimer)是从2.6.16开始引入,用于取代传统timer wheel(基于jiffies定时器)的时钟子系统.可以降低与内核其他模块的耦合性,还可以提供比1毫秒更高的精度(因为它可以读取HPET/TSC等新型硬件时钟源),可以更好的支持音视频等对时间精度要求较高的应用.建议选"Y".[提示]这里说的"定时器"是指"软件定时器",而不是主板或CPU上集成的硬件时钟发生器(ACPI PM Timer/HPET Timer/TSC Timer).

CPU/进程的时间及状态统计

CPU时间统计方式

简单的基于滴答的统计,适用于大多数场合

E

通过读取CPU计数器进行统计,可以提供更精确的统计,但是对性能有一些不利影响.

利用上下文跟踪子系统,通过观察每一个内核与用户空间的边界进行统计.该选项对性能有显著的不良影响,目前仅用于完全无滴答子系统(CONFIG_NO_HZ_FULL)的调试

通过读取TSC时间戳进行统计,这是统计进程IRQ时间的更细粒度的统计方式,但对性能有些不良影响(特别是在RDTSC指令速度较慢的CPU上).

标签: 温度传感器型号86x86mma05环境传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台