Gentoo 安装日记 10 (配置内核 :General setup)

来源:互联网 发布:ntfs for mac 界面 编辑:程序博客网 时间:2024/04/29 08:44
接:http://nvd11.blog.163.com/blog/static/20001831220127231400990/
进入/usr/src/linux/
输入

make menuconfig


进入内核配置界面
Gentoo 安装日记 10 (安装stage3:配置内核 :General setup) - 饥民 - 饥民2011

下面尽量讲解下内核选项
其中大部分参考
http://lamp.linux.gov.cn/Linux/kernel_options.html  作者金步国。
http://blog.csdn.net/unsigned_/article/details/6123426

黄色高亮表示启用该选项
General setup
 
Prompt for development and/or incomplete code/drivers
      
默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际上它是安全的。

Cross-compiler tool prefix

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

Local version - append to kernel release
         自定义版本,也就是uname -r可以看到的版本,可以自行修改,这里我没有使用

Automatically append version information to the version string
         自动生成版本信息。这个选项会自动探测你的内核并且生成相应的版本,使之不会和原先的重复。这需要Perl的支持。由于在编译的命令make-kpkg 中我们会加入- – append-to-version 选项来生成自定义版本,所以这里选N。

Kernel compression mode (Gzip)
          有四个选项,这个选项是说内核镜像要用的压缩模式,回车一下,可以看到gzip,bzip2,lzma,lxo,一般可以按默认的gzip,如果要用bzip2,lzma,lzo,要先安装相关解压缩工具(3.3.8 内核有5选项)

((none)) Default hostname
           默认主机名,先保持none吧 反正以后可以改。

Support for paging of anonymous memory (swap)
          使你的内核支持虚拟内存 , 一定要选。

 System V IPC
       
进程提供通信机制,这将使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能运行,所以不用考虑,这里一定要选。

POSIX Message Queues
           这是POSIX的消息队列,它同样是一种IPC。建议你最好将它选上

BSD Process Accounting
           这是允许用户进程访问内核,将账户信息写入文件中。这通常被认为是个好主意,建议你最好将它选上。将进程的统计信息写入文件的用户级系统调用,主要包括进程的创建时间/创建者/内存占用等信息。

BSD Process Accounting version 3 file format
            用的话统计信息将会以新的格式(V3)写入,这格式包含进程ID和父进程。注意这个格式和以前的 v0/v1/v2 格式不兼容,所以你需要 升级相关工具来使用它。选不选均可。

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 handlesinstead of names. The handle would remain the same even if file names get renamed.)
          呢度个人,稍微翻译一下, 可以通过1个叫句柄 既野, 可以代替文件名来匹配文件,  即使文件名被修改, 句柄属性还是保留与修改前一至的。   按默认吧

Export task/process statistics through netlink (EXPERIMENTAL)
           处于实验阶段的功能。通过通用的网络输出工作/进程的相应数据,和BSD不同的是,这些数据在进程运行的时候就可以通过相关命令访问。和BSD类似,数据将在进程结束时送入用户空间。如果不清楚,选N。
           通过netlink接口向用户空间导出任务/进程的统计信息,与BSD Process Accounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的

Enable per-task delay accounting (EXPERIMENTAL)
          在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间

Enable extended accounting over taskstats (EXPERIMENTAL)

          在统计信息中包含扩展进程所花费的时间

Auditing support
          审计支持,某些内核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计,不选

IRQ subsystem
          申请中断系统, 保持默认吧.

RCU Subsystem
       
一个高性能的锁机制RCU 子系统,不懂不了解,按默认吧。

Kernel .config suppor
          把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本来提取这些信息.
 
Enable access to .config through /proc/config.gz
          将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc中得到内核的配置,选上,重新配置内核时可以利用已有配置

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。
          我这里默认是15

Control Group support  --->
         添加对进程集合分组的支持,用来处理控制子系统如:CPUsets.CFS.内存控制或设备隔离, 
         唔了解,保持默认吧

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
         唔清楚,保持默认唔选

Kernel->user space relay support (formerly relayfs)
        在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口,不选吧。

Initial RAM filesystem and RAM disk (initramfs/initrd) support

       用于在真正内核装载前,做一些操作(俗称两阶段启动),比如加载modulemount一些非root分区,提供灾难恢复shell环境等,资料这个一定要选,亲自试过, 这个不选的就启动不了啊.  提示error on block(0,0)

Optimize for size
      这个选项将在GCC命令后用 “-Os” 代替 “-O2″参数,这样可以得到更小的内核。没必要选。一个编译好的内核才7-10多M。选上了可能会出一些问题。最好不选。有时会产生错误的二进制代码。当然,如果是做嵌入式开发另当别论。

      其实gentoo和ubuntu这个默认是选上的,的确会得到1个更小的内核, 金步国不推荐, 但我个人推荐哈哈

Configure standard kernel features (expert users)  --->
     这是为了编译某些特殊的内核使用的,例如引导盘,通常你可以不选择这一选项,你也不用对它下面的子项操心了。

Embedded system
       嵌入式 系统,  应该用唔上

Kernel Performance Events And Counters  --->
       内核性能事件和计数器, 保持默认即可

Disable heap randomization
       禁用随机heap(heap堆是一个应用层的概念,即堆对CPU是不可见的,它的实现方式有多种,可以由OS 实现,也可以由运行库实现,如果你愿意,你也可以在一个栈中来实现一个堆),选不选均可。
 
Choose SLAB allocator (SLAB)  --->
         选择内存分配管 理器(强烈推荐使用SLUB), 默认是SLAB
               ( ) SLAB   //各种环境通用的内存分配管理器
               (X) SLUB (Unqueued Allocator) //更加优秀的内存分配管理器
      
Profiling support
        我不是内核开发人员,不需要profiling内核,用到时再启用。如果要用OProfiler的同学请启用

Kprobes
         调试内核,除非内核开发人员,否则不选

GCOV-based kernel profiling --->
        保持默认


下一篇继续内核配置 

http://nvd11.blog.163.com/blog/static/200018312201272515750861/