linux内核编译过程及配置说明解释(2)--General setup

所有选项截图如下:

  x x    [*] Prompt for development and/or incomplete code/drivers                 x x  即时开发/非完整代码/驱动
  x x    ()  Cross-compiler tool prefix                                                                       x x  交叉编译工具前缀
  x x    ()  Local version - append to kernel release                                             x x  本地版本--追加内核版本
  x x    [ ] Automatically append version information to the version string        x x  自动在版本字符串后追加版本信息
  x x        Kernel compression mode (Gzip)  --->                                                   x x  内核压缩模式
  x x    ((none)) Default hostname                                                                            x x  默认主机名
  x x    [*] Support for paging of anonymous memory (swap)                              x x  支持使用交换分区来作为虚拟内存
  x x    [*] System V IPC                                                                                                x x  system V 进程间通信支持
  x x    [*] POSIX Message Queues                                                                           x x  POSIX 消息队列
  x x    [*] open by fhandle syscalls                                                                            x x  使用文件句柄进行系统调用
  x x    -*- Auditing support                                                                                           x x  审计支持
  x x    [*]   Enable system-call auditing support                                                      x x  支持对系统调用的审计
  x x    [ ]   Make audit loginuid immutable                                                                x x  使审计登陆用户ID不可变
  x x        IRQ subsystem  --->                                                                                      x x  中断请求子系统
  x x        Timers subsystem  --->                                                                                x x  定时器子系统
  x x        CPU/Task time and stats accounting  --->                                                x x  CPU/Task时间与状态保护
  x x        RCU Subsystem  --->                                                                                    x x  高性能的锁机制RCU 子系统
  x x    < > Kernel .config support                                                                                x x  内核.config支持
  x x    (17) Kernel log buffer size (16 => 64KB, 17 => 128KB)                              x x  内核日志缓冲大小
  x x    -*- Control Group support  --->                                                                         x x  控制组支持

[*]Prompt for development and/or incomplete code/drivers
显示尚在开发中或尚未完成的代码与驱动,你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际上它是安全的。这个选项同样会让一些老的驱动可用。如果你选了Y,你将会得到更多的阿尔法版本的驱动和代码的配置菜单。
() Cross-compiler tool prefix

交叉编译工具前缀,如果你要使用交叉编译工具的话输入相关前缀,默认不使用,不需要。

()Local version - append to kernel release
在内核版本后面加上自定义的版本字符串(小于64字符),可以用"uname -a"命令看到

[ ]Automatically append version information to the version string
自动生成版本信息。这个选项会自动探测你的内核并且生成相应的版本,使之不会和原先的重复。这需要Perl及git仓库支持的支持。


Kernel compression mode (Gzip)
内核压缩模式选gzip2
gzip用于UNIX系统的文件压缩。 后缀为.gz的文件。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。
bzip2是一个基于Burrows- Wheeler 变换的无损压缩软件,压缩效果比传统的LZ77/LZ78压缩算法来得好。它是一款免费软件。bzip2能够进行高质量的数据压缩。它利用先进的压缩技术,能够把普通的数据文件压缩10%至15%,压缩的速度和解压的效率都非常高!支持现在大多数压缩格式,包括tar、gzip 等等。
lzma是一个Deflate和LZ77算法改良和优化后的压缩算法,开发者是Igor Pavlov,2001年被首次应用于7-Zip压缩工具中,是 2001年以来得到发展的一个数据压缩算法。

[*] Support for paging of anonymous memory (swap)
将使你的内核支持虚拟内存。这个虚拟内存在LINUX中就是SWAP分区。除非你不想要SWAP分区,否则这里必选Y。

[*] System V IPC
System V进程间通信(IPC)支持,处理器在程序之间同步和交换信息,如果不选这项,很多程序运行不起来,特别地,你想在LINUX下运行 DOS仿真程序,你必须要选Y。

[*] POSIX Message Queues
POSIX消息队列,这是POSIX IPC中的一部分。最好将它选上POSIX 表示可移植操作系统接口

[*] open by fhandle syscalls
If you say Y here, a user level program will be able to map file names to handle and then later use the handle for different file system operations. This is useful in implementing userspace file servers, which now track files using handles instead of names. The handle would remain the same even if file names get renamed.


[*] Auditing support
审计支持,用于和内核的某些子模块同时工作,(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计。
允许审计的下层能够被其他内核子系统使用,比如SE-Linux,它需要这个来进行登录时的声音和视频输出。没有CONFIG_AUDITSYSCALL 时(即下一个选项)无法进行系统调用。

[*] Enable system-call auditing support
支持对系统调用的审计。允许系统独立地或者通过其他内核的子系统,调用审计支持,比如SE-Linux。要使用这种审计的文件系统来查看特性,请确保 INOTIFY 已经被设置。

[ ]   Make audit loginuid immutable
使得审计登录用户ID不可更改(具体作用不明确,新功能)

IRQ subsystem 

中断请求子系统


Timers subsystem

定时器子系统


CPU/Task time and stats accounting
CPU/Task时间与状态保护


RCU Subsystem

RCU(Read-Copy Update),顾名思义为读取-复制更新。对于被RCU保护的共享数据结构,读者不需要获得任何锁就可以访问它,但在访问它时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调(callback)机制在适当的时机把指向原来数据的指针重新指向新的被修改的数据。这个时机就是所有引用该数据的 CPU都退出对共享数据的操作。

< > Kernel .config support
这个选项允许.config文件(即编译LINUX时的配置文件)保存在内核当中。它提供正在运行中的或者还在硬盘中的内核的相关配置选项。可以通过内核镜像文件 kernel image file 用命令 script scripts/extract-ikconfig 来提取出来,作为当前内核重编译或者另一个内核编译的参考。如果你的内核在运行中,可以通过/proc/config.gz文件来读取。下一个选项提供这项支持。看起来好像是一个不错的功能,可以把编译时的 .config文件保存在内核中,以供今后参考调用。用来重编译和编译其他的内核的时候可以用上。

(17) Kernel log buffer size (16 => 64KB, 17 => 128KB)
内核日志缓存的大小,12 => 4 KB,13 => 8 KB,14 => 16 KB单处理器,15 => 32 KB多处理器,16 => 64 KB for x86 NUMAQ or IA-64,17 => 128 KB for S/390

-*- Control Group support
cgroup支持,如cpusets那样来使用cgroup子系统进程(不确定可以不选)。添加对进程集合分组的支持,用来处理控制子系统如:CPUsets.CFS.内存控制或设备隔离。(This option adds support for grouping sets of processes together, for use with process control subsystems such as Cpusets, CFS, memory controls or device isolation.)



[ ] Checkpoint/restore support (NEW)

检查点和恢复支持

-*- Namespaces support
命名空间支持,允许服务器为不同的用户信息提供不同的用户名空间服务

[*] Automatic process group scheduling

自动进程分组调度。优化调度器对通常的桌面工作量通过自动创建和填充进任务组。(This option optimizes the scheduler for common desktop workloads by automatically creating and populating task groups. This separation of workloads isolates aggressive CPU burners (like build jobs) from desktop applications. Task group autogeneration is currently based upon task session.)

[ ] Enable deprecated sysfs features to support old userspace tools

允许弃用sysfs功能来支持原有用户空间的工具。在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口

-*- Kernel->user space relay support (formerly relayfs)

内核-用户空间传递支持。在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口


[*] Initial RAM filesystem and RAM disk (initramfs/initrd) suppor
初始RAM的文件和RAM磁盘( initramfs /initrd)支持(如果要采用initrd启动则要选择,否则可以不选)

() Initramfs source file(s)
initrd已经被initramfs取代,如果不明白这是什么意思,请保持空白

  [*] Support initial ramdisks compressed using gzip
  [*] Support initial ramdisks compressed using bzip2
  [*] Support initial ramdisks compressed using LZMA
  [*] Support initial ramdisks compressed using XZ
  [*] Support initial ramdisks compressed using LZO

以上五项为支持初始化虚拟内存盘压缩使用gzip.bzip2.LZMA.XZ.LZO格式.。


[*] Optimize for size
编译时优化内核尺寸。这个选项将在GCC命令后用 “-Os” 代替 “-O2″参数,这样可以得到更小的内核。没必要选。一个编译好的内核才7-10多M,大家不会少这么点空间吧。选上了可能会出一些问题。最好不选。有时会产生错误的二进制代码。

[ ] Configure standard kernel features (for small systems)
配置标准的内核特性(为小型系统)。这个选项可以让内核的基本选项和设置无效或者扭曲。这是用于特定环境中的,它允许“非标准”内核。你要是选它,你一定要明白自己在干什么。这是为了编译某些特殊用途的内核使用的,例如引导盘系统。

[*] Enable 16-bit UID system calls
允许16 位UID系统调用

[*] Sysctl syscall support   

sysctl 系统调用支持。不需要重启就能修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核行为的参数或变量

-*- Load all symbols for debugging/ksymoops

为调试和ksymoops加载所有的符号表。装载所有的调试符号表信息,仅供调试时选择

[*] Include all symbols in kallsyms
在kallsyms中包含内核知道的所有符号,内核将会增大300K

[*] Enable support for printk

允许printk支持,允许内核向终端打印字符信息,在需要诊断内核为什么不能运行时选择



 [*] BUG() support 

启用BUG事件支持,显示故障和失败条件(BUG和WARN),禁用它将可能导致隐含的错误被忽略

[*] Enable ELF core dumps
内存转储支持,可以帮助调试ELF格式的程序


  [*] Enable full-sized data structures for core
在内核中使用全尺寸的数据结构。禁用它将使得某些内核的数据结构减小以节约内存,但是将会降低性能

[*] Enable PC-Speaker support
允许扬声器支持

[*] Enable futex support
快速用户空间互斥体。可以使线程串行化,也提高了响应速度。禁用它将导致内核不能正确的运行基于glibc的程序


[*] Enable eventpoll support
支持事件轮循的系统调用


[*] Enable signalfd() system call

启用signalfd()事件的文件描述符系统调用


[*] Enable timerfd() system call

启用timefd()事件的文件描述符系统调用


-*- Enable eventfd() system call
启用eventfd()事件的文件描述符系统调用


Use full shmem filesystem
完全使用shmem来代替ramfs。shmem是基于共享内存的文件系统(可能用到swap),在启用TMPFS后可以挂载为tmpfs供用户空间使用,它比简单的ramfs先进许多

[*] Enable AIO support
允许POSIX异步,I/O可能会被一些高性能的线程程序使用(This option enables POSIX asynchronous I/O which may by used by some high performance threaded applications. Disabling this option saves about 7k.)

[ ] Embedded system
嵌入式系统.

Kernel Performance Events And Counters
支持软件和硬件提供的各种性能事件(Enable kernel support for various performance events provided by software and hardware.Software events are supported either built-in or via the use of generic tracepoints.Most modern CPUs support performance events via performance counter registers.).

[*] Enable VM event counters for /proc/vmstat
允许在/proc/vmstat中包含虚拟内存事件记数器.

[*] Enable PCI quirk workarounds
这能使工作区从各种PCI芯片组错误中恢复过来(This enables workarounds for various PCI chipset bugs/quirks. Disable this only if your target machine is unaffected by PCI quirks.).

  [*] Enable SLUB debugging support
支持SLUB内存分配管理器调试.

 [ ] Disable heap randomization
堆不可随机化

Choose SLAB allocator (SLUB (Unqueued Allocator))
使用SLAB完全取代SLOB进行内存分配,SLAB是一种优秀的内存分配管理器,推荐使用

[*] Profiling support
支持系统评测(对于大多数用户来说并不是必须的).


<M> OProfile system profiling
评测和性能监控工具.

 [ ] OProfile multiplexing support (EXPERIMENTAL)
硬件计数器数字被限制(The number of hardware counters limited. The multiplexing feature enables OProfile to gather more events than counters are provided by the hardware. This is realized by switching between events at an user specified time interval.).

[*] Kprobes( Kernel Dynamic Probes)
内核动态探针.(provides a lightweight interface for kernel modules to implant probes and register corresponding probe handlers.).

[*] Optimize very unlikely/likely branches

相似/不相似分支选择

GCOV-based kernel profiling
这个选项允许gcov-based代码剖析(gcov是gnu/gcc工具库中的一个组件,一般来说,都被安装的)(This option enables gcov-based code profiling (e.g. for code coverage measurements).)


暂时到此吧,下来写其它的。


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值