针对3.14版本内核
1、ARM架构
1、1 patch physical to virtual translations at runtime
在内核映像启动以及内核模块加载时根据内核本身在内存中的地址,修正物理地址/虚拟地址相互转换函数。只针对非XIP方式运行的内核。
2、general setup
->cross-compiler tool prefix
在内核配置阶段直接指定编译工具链的前缀,配置完成后可以直接调用make;这个选项只针对本内核生效。
->compile also drivers which will not load
在其他平台编译以便测试驱动程序编译流程,通常不需要
->local version - append to kernel release
附加额外的字符串到内核版本信息后面,以及 localversion*文件内容后面
->automatically append version information to the version string
查找git标记的版本号信息,附加到localversion*文件内容后面,以及CONFIG_LOCALVERSION设置值的后面。
->kernel compression mode
配置内核映像启动自解压算法,支持GZIP等
->default hostname
配置内核运行系统的主机名字,用户空间可使用sethostname覆盖。
->support for paging of anonymous memory(swap)
是否使用SWAP虚拟内存管理
->system v ipc
IPC是进程间通信的简称,由一套库函数和系统调用组成,用来实现进程间的同步和数据交换。
->posix message queues
消息队列的POSIX版本是IPC的一部分,每一个消息都有对应的优先级,决定了它被进程接收的连续性。POSIX版本的消息队列提供了文件系统访问接口mqueue,可以在需要访问的时候加载。
->open by fhandle syscalls
用户空间程序可以将文件名映射为文件句柄,并在之后使用文件句柄访问文件,即使文件名变更也不影响访问。
->auditing support
使能内核审计框架,该框架可被其他内核子系统使用,比如selinux;主要和权限管理相关。
->irq subsystem
中断子系统,必选的,当然也没有不选的可能
->timer subsystem
->timers tick handing
periodic timer ticks 时钟节拍无论CPU是否空闲,都以恒定速率运行
idle dynticks system 当CPU处于空闲状态时,时钟节拍只在需要的时候产生中断,以节约电量
->old idle dynticks config 为了兼容以前的配置文件而存在的,不需要选中
->high resolution timer support 支持高精度定时器
->cpu/task time and stats accouting
->cputime accounting
simple tick based cputime accounting 基于时钟节拍维护用户态、内核态以及空闲状态的时间统计(以jiffies为单位)。
full dynticks cpu time accounting 使能动态时钟节拍系统上的任务和CPU时间统计;该统计通过观察内核用户态切换上下文的跟踪代码来得到,因此需要带来明细的额外CPU开销。目前除非用来开发工作在动态时钟节拍的内核,否则不应该选择它。
fine granularity task level irq time accounting 使能任务中断时间统计,这是通过在软中断状态和硬中断状态之间转换时读取时间戳得到,这种方式会带来少量的性能损失。
->bsd process accounting
用户态程序可以通过特殊的系统调用将进程的统计信息写入文件,当进程退出运行时,内核将把该进程的相关
1、ARM架构
1、1 patch physical to virtual translations at runtime
在内核映像启动以及内核模块加载时根据内核本身在内存中的地址,修正物理地址/虚拟地址相互转换函数。只针对非XIP方式运行的内核。
2、general setup
->cross-compiler tool prefix
在内核配置阶段直接指定编译工具链的前缀,配置完成后可以直接调用make;这个选项只针对本内核生效。
->compile also drivers which will not load
在其他平台编译以便测试驱动程序编译流程,通常不需要
->local version - append to kernel release
附加额外的字符串到内核版本信息后面,以及 localversion*文件内容后面
->automatically append version information to the version string
查找git标记的版本号信息,附加到localversion*文件内容后面,以及CONFIG_LOCALVERSION设置值的后面。
->kernel compression mode
配置内核映像启动自解压算法,支持GZIP等
->default hostname
配置内核运行系统的主机名字,用户空间可使用sethostname覆盖。
->support for paging of anonymous memory(swap)
是否使用SWAP虚拟内存管理
->system v ipc
IPC是进程间通信的简称,由一套库函数和系统调用组成,用来实现进程间的同步和数据交换。
->posix message queues
消息队列的POSIX版本是IPC的一部分,每一个消息都有对应的优先级,决定了它被进程接收的连续性。POSIX版本的消息队列提供了文件系统访问接口mqueue,可以在需要访问的时候加载。
->open by fhandle syscalls
用户空间程序可以将文件名映射为文件句柄,并在之后使用文件句柄访问文件,即使文件名变更也不影响访问。
->auditing support
使能内核审计框架,该框架可被其他内核子系统使用,比如selinux;主要和权限管理相关。
->irq subsystem
中断子系统,必选的,当然也没有不选的可能
->timer subsystem
->timers tick handing
periodic timer ticks 时钟节拍无论CPU是否空闲,都以恒定速率运行
idle dynticks system 当CPU处于空闲状态时,时钟节拍只在需要的时候产生中断,以节约电量
->old idle dynticks config 为了兼容以前的配置文件而存在的,不需要选中
->high resolution timer support 支持高精度定时器
->cpu/task time and stats accouting
->cputime accounting
simple tick based cputime accounting 基于时钟节拍维护用户态、内核态以及空闲状态的时间统计(以jiffies为单位)。
full dynticks cpu time accounting 使能动态时钟节拍系统上的任务和CPU时间统计;该统计通过观察内核用户态切换上下文的跟踪代码来得到,因此需要带来明细的额外CPU开销。目前除非用来开发工作在动态时钟节拍的内核,否则不应该选择它。
fine granularity task level irq time accounting 使能任务中断时间统计,这是通过在软中断状态和硬中断状态之间转换时读取时间戳得到,这种方式会带来少量的性能损失。
->bsd process accounting
用户态程序可以通过特殊的系统调用将进程的统计信息写入文件,当进程退出运行时,内核将把该进程的相关