Linux内核定制优化配置
- 格式:doc
- 大小:1.54 MB
- 文档页数:32
Linux 操作系统发展现状Linux操作系统发展迅速,全球Top500超级计算发布数据显示89.2%的超级计算机运行在Linux操作系统之上;桌面操作系统市场份额虽然不高,但也在逐年扩大;国际大公司Intel、Google、IBM等都在Linux操作系统上加大研发投入,为Linux 操作系统长远发展带来充足后劲。
国内操作系统研发组织机构、厂商也都相应加大投入,以缩小与国际Linux 厂商技术之间的差距。
但是Linux 的发展仍然面临着兼容性差,软件缺乏,以及面临版本众多导致Linux 操作系统分裂等问题。
掌握核心技术,解决Linux 当前面临的关键发展问题是当务之急。
一国内Linux 操作系统发展现状国内目前涉足Linux操作系统研发除学校、研发机构外,主要Linux 发行版包括红旗、中标、共创、新华、拓林思等,均有桌面和服务器两个版本;国内各发行版均基于国际社区版本发展而来,基于国际社区成果,在界面定制上做了一些工作,并没有掌握核心技术,且与国际Linux 操作系统发行版之间存在一定的技术差距,缺少技术积累,面临Linux发展后劲不足等问题。
二国外Linux 操作系统发展现状国外主要发行版包括redhat、ubuntu、Suse 等,均提供桌面和服务器两个不同版本。
服务器领域Linux 操作系统发展比较成熟,桌面发展比较缓慢,嵌入式领域发展较快。
RedhatRHEL是目前Linux服务器产品的标杆,在国内和国际上都占据着主要的Linux 服务器市场份额。
RHEL 产品功能全面,产品认证齐全,用户的接受度比较高。
RHEL 主要依靠技术服务和产品维护获取盈利。
Redhat自9.0以后,不再发布桌面版,而是把这个项目与开源社区合作,于是就有了Fedora这个Linux发行版。
目前Fedora对于Redhat的作用主要是为RHEL提供开发的基础。
Fedora 的界面与操作系统与RHEL 非常相似、用户会感觉非常熟悉;另外对于新技术,fedora一直快速引入;并且fedora 一直坚持绝对开源的原则。
linux修改寄存器值的方法Linux是一种开源的操作系统,它具有强大的定制性和灵活性。
在Linux中,可以通过修改寄存器值来实现对系统的控制和配置。
本文将介绍如何在Linux中修改寄存器值的方法。
一、什么是寄存器寄存器是计算机中的一种特殊的存储器,它用于存储CPU的指令、数据和控制信息。
在计算机硬件中,寄存器通常是由高速缓存存储器实现的,其速度比内存要快得多。
寄存器在计算机中起着举足轻重的作用,因为它们直接参与了CPU的运算和控制。
二、如何修改寄存器值在Linux中,要修改寄存器值,可以使用一些特定的命令和工具。
以下是一些常用的方法:1. 使用gdb调试工具gdb是一个功能强大的调试工具,可以用来调试程序并查看和修改寄存器值。
首先,通过命令行启动gdb:```gdb <程序名>```然后,在gdb的调试环境中,可以使用以下命令来查看和修改寄存器值:- info registers:查看所有寄存器的值;- print <寄存器名>:查看指定寄存器的值;- set <寄存器名>=<值>:修改指定寄存器的值。
2. 使用devmem2工具devmem2是一个用于读写物理内存和寄存器的工具。
首先,使用以下命令安装devmem2:```sudo apt-get install devmem2```然后,可以使用以下命令来查看和修改寄存器值:- devmem2 <寄存器地址>:查看指定寄存器的值;- devmem2 <寄存器地址> w <值>:将指定寄存器的值设置为指定的值。
3. 使用sysfs文件系统在Linux中,一些寄存器的值可以通过sysfs文件系统来查看和修改。
sysfs是一个虚拟文件系统,用于提供对设备和内核信息的访问。
通过sysfs文件系统,可以通过读写相应的文件来查看和修改寄存器值。
使用以下命令找到要修改的寄存器对应的文件:```find /sys -name <寄存器名>```然后,使用cat命令查看寄存器的值:```cat <寄存器文件>```使用echo命令修改寄存器的值:```echo <值> > <寄存器文件>```需要注意的是,修改寄存器值可能会影响系统的稳定性和正常运行。
linux实训个人总结8篇篇1一、实训背景与目标本次Linux实训旨在通过实践操作加深我对Linux操作系统的理解与应用能力,提升我在Linux环境下的软件开发和系统管理能力。
在为期XX周的实训过程中,我针对Linux系统的基本配置、软件开发、系统管理等方面进行了系统学习与实践。
二、实训内容1. Linux系统基础操作在实训初期,我重点学习了Linux系统的基本操作,包括文件与目录管理、常用命令的使用、软件包的安装与管理等。
通过实践操作,我掌握了Linux系统下的基本命令和操作技巧,能够熟练进行文件的增删改查以及软件的安装与配置。
2. 软件开发环境的搭建与实践本次实训中,我学习了如何在Linux环境下搭建软件开发环境,包括编译器的安装与配置、代码编辑器的使用、版本控制系统的实践等。
通过搭建开发环境,我能够自主进行软件的开发与调试,提升了我的软件开发能力。
3. 系统管理与维护实践在实训过程中,我还学习了Linux系统的管理与维护知识,包括系统监控、用户管理、进程管理、磁盘管理等。
通过实践操作,我掌握了系统管理的基本技巧,能够独立完成系统的日常管理与维护工作。
三、实训收获与体会1. 深入了解Linux系统架构与运行机制通过本次实训,我深入了解了Linux系统的架构和运行机制,对Linux系统的内核、文件系统、进程管理等方面有了更加清晰的认识。
2. 提升动手实践能力与问题解决能力在实训过程中,我通过大量的实践操作,提升了动手实践能力。
同时,在遇到问题时,我学会了独立思考和解决问题的方法,增强了问题解决能力。
3. 学会团队协作与沟通在实训过程中,我与团队成员紧密合作,共同完成任务。
通过团队协作,我学会了与队友沟通的技巧,提升了团队协作能力。
四、问题与解决方案在实训过程中,我也遇到了一些问题,如软件包安装失败、系统配置出错等。
针对这些问题,我通过查阅相关资料、请教老师同学等方式,找到了解决问题的方法。
同时,我也总结了问题的原因和解决方案,避免类似问题再次发生。
openeuler 使用手册摘要:I.引言- 简介- 目的II.OpenEuler 系统概述- 系统架构- 组件简介III.OpenEuler 安装与配置- 安装流程- 配置步骤- 安装选项与技巧IV.OpenEuler 基本操作- 命令行操作- 文件管理- 系统管理V.OpenEuler 高级应用- 网络配置- 软件包管理- 系统优化与维护VI.OpenEuler 社区与支持- 社区资源- 常见问题与解答- 开发与贡献VII.总结- 亮点与优势- 发展前景正文:I.引言OpenEuler 是一款开源的Linux 发行版,其目的是构建一个稳定、高性能、安全、可扩展的操作系统。
OpenEuler 使用Linux 内核作为基础,并在此基础上进行了深度优化与定制,以满足企业级用户的需求。
本使用手册将为您提供OpenEuler 系统的详细使用指南。
II.OpenEuler 系统概述OpenEuler 采用了多层架构设计,由底层硬件、Linux 内核、虚拟化层、容器层和应用层等多个层次组成。
在系统架构方面,OpenEuler 将组件分为核心组件、基础组件和扩展组件三个部分。
其中,核心组件包括Linux 内核、OpenEuler 基础设施和系统服务等;基础组件包括虚拟化、容器、网络等;扩展组件则提供了丰富的软件仓库和开发工具等。
III.OpenEuler 安装与配置OpenEuler 的安装过程分为四个主要步骤:准备环境、安装基本系统、配置系统和安装附加组件。
首先,用户需要确保硬件和网络环境满足OpenEuler 的最低要求。
接下来,通过引导程序启动安装程序,选择合适的安装方式(如DVD、网络、虚拟机等),然后按照提示完成基本系统的安装。
安装完成后,用户需要对系统进行配置,包括设置时区、语言、密码等。
最后,根据需求安装附加组件,例如桌面环境、开发工具等。
IV.OpenEuler 基本操作OpenEuler 提供了命令行和图形化两种操作方式。
内核编译的步骤内核编译是指将Linux内核源代码转换为可执行的二进制文件的过程。
本文将介绍内核编译的详细步骤,以帮助读者了解并掌握这一过程。
第一步:获取内核源代码要进行内核编译,首先需要获取Linux内核的源代码。
可以通过官方网站或开源社区下载最新版本的内核源代码,也可以从版本控制系统中获取。
第二步:配置内核在进行内核编译之前,需要对内核进行配置。
配置内核的目的是根据具体需求选择合适的功能和选项。
可以使用make menuconfig、make xconfig或make config等命令进行配置。
第三步:编译内核配置完成后,就可以开始编译内核了。
在终端中切换到内核源代码目录,并执行make命令。
编译过程可能需要一段时间,取决于计算机性能和内核源代码的大小。
第四步:安装内核编译完成后,可以将生成的内核安装到系统中。
可以使用make install命令或手动将编译生成的内核文件复制到/boot目录,并修改引导加载程序的配置文件。
第五步:更新引导加载程序安装完内核后,需要更新引导加载程序,使其能够启动新安装的内核。
可以使用grub2-mkconfig、grub-mkconfig、update-grub 等命令更新引导加载程序的配置文件。
第六步:重启系统完成内核编译和引导加载程序的配置后,需要重启系统以使新内核生效。
在重启过程中,选择新安装的内核并等待系统启动。
第七步:验证新内核系统重启后,可以通过执行uname -r命令来验证新内核是否成功安装。
如果显示的内核版本是刚刚安装的新内核版本,则说明内核编译成功。
第八步:配置内核模块除了编译内核本身,还可以编译和加载内核模块。
内核模块是一种动态加载的代码,可以在运行时添加或删除。
可以使用make modules和make modules_install命令编译和安装内核模块。
第九步:定制内核在掌握了基本的内核编译步骤后,还可以根据具体需求进行内核定制。
可以通过配置内核选项和功能来满足特定的需求,例如优化性能、减小内核体积等。
内核版本 2.6.32[*]Prompt for development and/or incomplete code/drivers显示尚在开发中或尚未完成的代码与驱动.你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际上它是安全的。
这个选项同样会让一些老的驱动的可用。
如果你选了Y,你将会得到更多的阿尔法版本的驱动和代码的配置菜单。
()Local version - append to kernel release在内核版本后面加上自定义的版本字符串(小于64字符),可以用"uname -a"命令看到[ ]Automatically append version information to the version string自动生成版本信息。
这个选项会自动探测你的内核并且生成相应的版本,使之不会和原先的重复。
这需要Perl的支持。
由于在编译的命令make-kpkg 中我们会加入- –append-to-version 选项来生成自定义版本,所以这里选N。
Kernel compression mode (Gzip)内核压缩模式选baip2gzip用于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年以来得到发展的一个数据压缩算法。
kbuild 编译过程-回复kbuild是一个Linux内核的编译系统,它主要用于构建和管理Linux内核的编译过程。
kbuild采用Makefile作为构建脚本的描述语言,并提供了丰富的功能和工具来帮助开发者自动化处理各种编译任务。
kbuild的编译过程主要分为以下几个步骤:准备工作、配置、编译和安装。
接下来,我将一步一步详细讲解这些步骤。
1. 准备工作:在开始编译之前,需要先准备好构建环境和所需的工具。
首先,需要确保系统安装了合适的编译器,比如GCC。
其次,还需要安装一些必要的工具,比如make和perl。
这些工具在大多数Linux发行版的默认软件仓库中都可以找到,并且可以通过命令行工具进行安装。
2. 配置:在开始编译之前,需要根据系统和硬件环境的不同进行相应的配置。
Linux 内核的配置文件通常命名为“.config”,它包含了构建内核所需的各种选项和参数。
在kbuild中,可以使用make menuconfig命令来进行配置。
执行该命令后,会弹出一个图形界面的菜单,开发者可以在其中选择和设置各种选项。
在这个过程中,可以根据自己的需求选择需要编译进内核的功能和驱动,并进行其他的相关配置。
完成配置后,配置文件会被保存为“.config”。
3. 编译:在完成配置后,就可以开始进行编译了。
为了简化编译过程,kbuild提供了许多Makefile规则和工具,可以自动地处理依赖关系、并行编译等问题。
在进行编译之前,可以通过make clean命令清理之前的编译产物。
然后,使用make命令开始编译。
make会读取Makefile文件,并根据该文件中的规则执行编译任务。
编译过程可能会持续一段时间,具体时间取决于系统的配置和硬件性能。
4. 安装:在编译完成后,可以使用make install命令将编译得到的内核安装到系统中。
该命令会将编译得到的内核镜像和相关的文件拷贝到指定的目录中,通常是“/boot”。
openwrt原理OpenWRT是一个嵌入式操作系统,主要用于路由器和其他网络设备。
它基于Linux内核,提供了一个灵活可定制的平台,允许用户根据他们的需求和喜好自定义和优化网络设备的功能。
以下是OpenWRT的原理。
1. Linux内核:OpenWRT基于Linux内核,这是一个开源的操作系统内核,为计算机的硬件提供了控制和管理功能。
Linux内核是OpenWRT的核心组件,负责设备的硬件驱动程序、内存管理、多任务处理等功能。
2. 嵌入式设备:OpenWRT主要用于嵌入式设备,如路由器、无线接入点等。
嵌入式设备通常具有有限的硬件资源,如处理器、内存和存储空间。
OpenWRT通过最小化的系统配置和优化的资源管理,使得它可以在这些资源受限的设备上运行。
3. 软件包管理:OpenWRT包含一个软件包管理系统,允许用户根据他们的需求自定义设备的功能。
用户可以通过安装和卸载软件包来添加或删除特定的功能模块。
这使得OpenWRT非常灵活,并且可以根据用户的需求进行定制。
5. 网络协议:OpenWRT支持各种网络协议,如TCP/IP、DHCP、DNS 等。
这些协议使得设备可以连接到互联网,并与其他设备进行通信。
OpenWRT还支持一些高级网络协议和功能,如VLAN、IPv6等。
6. Web界面:OpenWRT提供了一个Web界面,允许用户通过浏览器管理和配置设备。
用户可以通过Web界面进行基本设置、网络配置、安全设置、软件包管理等。
这种可视化界面使得设备的管理和配置更加直观和方便。
7. 社区支持:OpenWRT是一个开源项目,拥有一个庞大的社区。
社区成员贡献代码、修复漏洞、提供技术支持等。
这为用户提供了一个活跃的论坛,可以交流经验、获取帮助和分享创新想法。
总结:OpenWRT是一个基于Linux内核的嵌入式操作系统,通过软件包管理、配置文件、网络协议和Web界面等,提供了一个灵活可定制的平台。
它允许用户根据自己的需求和喜好自定义和优化网络设备的功能。
Menuconfig 是 Linux 系统中一种常见的配置工具,它允许用户通过图形界面选择和配置内核功能。
Python 是一种高级编程语言,它被广泛应用于各种领域,包括网络编程、数据分析、机器学习等。
在本文中,我们将探讨如何使用 menuconfig 来配置和编译支持 Python 的Linux 内核,并介绍一些 Python 在 Linux 内核中的常见用法。
一、menuconfig 基础用法menuconfig 是Linux 内核的配置工具,通过它可以对内核进行配置、编译,以及生成启动镜像。
使用 menuconfig 可以方便地选择需要的内核功能,并对其进行调整和优化。
在使用menuconfig 进行配置时,需要先通过命令行进入 Linux 内核源码目录,然后执行下列命令:```bashmake menuconfig```经过一段时间的加载,会出现一个基于文本的界面,其中包含了各种内核功能的配置选项。
用户可以通过箭头键和回车键来浏览和选择这些选项,对其进行启用或禁用。
二、配置 Python 支持在 menuconfig 中,用户可以选择是否启用 Python 支持,以及配置Python 的版本。
Python 在 Linux 内核中通常用于一些特定的功能,如内核模块的编程、调试和分析等。
在 menuconfig 的界面中,可以按下列路径找到 Python 配置选项:```Kernel hacking -->[*] Kernel hacking[*] Python3 support```用户可以通过箭头键移动到 Python3 support 选项,并按下空格键进行启用或禁用。
在启用后,用户还可以选择 Python 的版本,通常有Python 2 和 Python 3 两个选项。
选择完毕后,用户可以按下 F6 键保存配置并退出 menuconfig。
三、编译内核完成配置后,用户可以使用 make 命令对内核进行编译。
linux内核初始化及启动之用户模式开始2006-08-27 08:00作者:余涛出处:天极开发责任编辑:方舟设备的初始化init()--->do_basic_init()--->pci_init(),初始化PCI,检测系统的PCI设备。
此信息,在linux启动过程中都会出现。
对Socket的初始化,socket_init(),Netlink 一种路由器管理协议(linux-2.4.22\net\core\Rtnetlink.c,Routing netlink socket interface: protocol independent part。
其中RT是route路由的意思。
这句输出是在create产生rtnetlink的socket套接字时的一个调试输出。
)此信息,在linux启动过程中都会出现。
启动交换守护进程kswapd,进程IO操作例程kpiodkswapd可以配合kpiod运行。
进程有时候无事可做,当它运行时也不一定需要把其所有的代码和数据都放在内存中。
这就意味着我们可以通过把运行中程序不用的内容切换到交换分区来更好的是利用内存。
大约每隔1秒,kswapd醒来并检查内存情况。
如果在硬盘的东西要读入内存,或者内存可用空间不足,kpiod就会被调用来做移入/移出操作。
kswapd负责检查,kpiod负责移动。
加载日志块设备驱动。
日志块设备是用来对文件系统进行日志记录的一个块设备。
日志文件系统是在传统文件系统的基础上,加入文件系统更改的日志记录。
它的设计思想是:跟踪记录文件系统的变化,并将变化内容记录入日志。
日志文件系统在磁盘分区中保存有日志记录,写操作首先是对记录文件进行操作,若整个写操作由于某种原因(如系统掉电)而中断,系统重启时,会根据日志记录来恢复中断前的写操作。
在日志文件系统中,所有的文件系统的变化都被记录到日志,每隔一定时间,文件系统会将更新后的元数据及文件内容写入磁盘。
五、Linux内核裁减 (1)安装module-init-tools-3.0.tar.gz: # tar -zxvf module-init-tools-3.0.tar.gz # cd module-init-tools-3.0 # ./configure --prefix=/sbin # make # make install # ./generate-modprobe.conf /etc/modprobe.conf 这个脚本程序会读取原配置文件modules.conf的内容,经过格式转化后,生成新的配置文件/etc/modprobe.conf。
不知道为什么,我用module-init-tools-3.1时make出错。如果改用3.0的就没事了。
(2)安装modutils-2.4.25-8.9.i386.rpm: # rpm -Uvih modutils-2.4.25-8.9.i386.rpm 对modutils进行升级。 -U, --upgrade=+ upgrade package(s) (3)安装新内核: 将新内核copy到/usr/src下, #tar xzvf linux-2.6.38.4.tar.gz -----解压缩. II. 将名为linux的符号链接删掉,这是旧版本内核的符号链接. #ln -s linux-2.6.38.4 linux ------建立linux-2.6.38.4的符号链接linux.
(4)设置内核. # cd /usr/src/linux # make mrproper -----删除不必要的文件和目录. #make menuconfig 生成一个.config文件
Linux 内核的裁剪与编译看上去是个挺简单的过程。只是对配置菜单的简单选择。但是内核配置菜单本身结构庞大,内容复杂。具体如何选择却难住了不少人。因此熟悉与了解该菜单的各项具体含义就显得比较重要。我们现在就对其作一些必要介绍: Linux 内核的编译菜单有好几个版本,运行: 1)make config:进入命令行,可以一行一行的配置,这不好使用所以我们不具体介绍。 2)make menuconfig:进入我们熟悉的 menuconfig 菜单,相信很多人对此都不陌生。 3)make xconfig:在2.4.X 以及以前版本中 xconfig 菜单是基于 TCL/TK 的图形库的。 所有内核配置菜单都是通过 Config.in 经由不同脚本解释器产生.config。而目前刚刚推出的 2.6.X 内核用 QT 图形库。由 KConfig 经由脚本解释器产生。这两版本差别还挺大。从我 个人角度就是爱用新东西。2.6.X的 xconfig菜单结构清晰,使用也更方便。但基于目前2.4.X 版本比较成熟,稳定,用的最多。所以这里我还是以 2.4.X 版本为基础介绍相关裁剪内容。同时因为 xconfig 界面比较友好,大家容易掌握。但它却没有 menuconfig 菜单稳定。有些人机器跑不起来。所以考虑最大众化角度,我们以较稳定,且不够友好的menuconfig为主进行介绍,它会用了,Xconfig 就没问题。 2.4.X 版本 xconfig 配置菜单,2.4.X 版本menuconfig 配置菜单,2.6.X 版本 xconfig 配置菜单分别如图 4.1.4,4.1.5,4.1.6 所示:
图4.1.4 2.4.menuconfig配置菜单 在选择相应的配置时,有三种选择方式,它们分别代表的含义如下: Y--将该功能编译进内核 N--不将该功能编译进内核 M--将该功能编译成可以在需要时动态插入到内核中的模块 如果你是使用的是 make xconfig,那使用鼠标就可以选择对应的选项。这里使用的是 make menuconfig,所以需要使用空格键进行选取。在每一个选项前都有一个括号, 有的是中括 号有的是尖括号,还有圆括号。用空格键选择时可以发现,中括号里要么是空,要么是"*", 而尖括号里可以是空,"*"和"M"这表示前者对应的项要么不要,要么编译到内核里;后者 则多一样选择,可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。 (注:其中有不少选项是目标板开发人员加的,对于陌生选项,自己不知道该选什么时建议 使用默认值) 下面我们来看看具体配置菜单,进入内核所在目录,键入 make menuconfig 你就会看到配 置菜单具有如下一些项:
内核编译选项
1、General setup 代码成熟度选项,它又有子项: 1.1、prompt for development and/or incomplete code/drivers 该选项是对那些还在测试阶段的代码,驱动模块等的支持。一般应该选这个选项,除非你只是想使用 LINUX 中已经完全稳定的东西。但这样有时对系统性能影响挺大。 1.2、Cross-compiler tool prefix 交叉编译工具前缀,例如:Cross-compiler tool prefix 值为: (arm-linux-) 1.3、Local version - append to kernel release 内核显示的版本信息,填入 64字符以内的字符串,你在这里填上的字符口串可以用uname -a命令看到。 1.4、 Automatically append version information to the version string 自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持 1.5、Kernel compression mode (Gzip) ---> 有四个选项,这个选项是说内核镜像要用的压缩模式,回车一下,可以看到gzip,bzip2,lzma,lxo,一般可以按默认的gzip,如果要用bzip2,lzma,lxo要先装上支持 1.6、Support for paging of anonymous memory (swap) 使用交换分区或交换文件来做为虚拟内存,一定要选上。 1.7、System V IPC 表示系统的进程间通信Inter Process Communication,它用于处理器在程序之间同步和交换信息,如果不选这项,很多程序运行不起来,必选。 1.8、POSIX Message Queues POSIX标准的消息队列,它同样是一种IPC。建议你最好将它选上 1.9、BSD Process Accounting 用户进程访问内核时将进程信息写入文件中。通常主要包括进程的创建时间/创建者/内存占用等信息。建议最好选上。 BSD Process Accounting version 3 file format 使用新的第三版文件格式,可以包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式。 1.11、Export task/process statistics through netlink (EXPERIMENTAL) 通过netlink接口向用户空间导出任务/进程的统计信息,与BSD Process Accounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的 Enable per-task delay accounting (EXPERIMENTAL) 在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间 Enable extended accounting over taskstats (EXPERIMENTAL) 在统计信息中包含扩展进程所花费的时间 1.12、Auditing support 审记支持,用于和内核的某些子模块同时工作,例如Security Enhanced Linux。只有选择此项及它的子项,才能调用有关审记的系统调用。 1.13、Enable system-call auditing support 支持对系统调用的审计 1.14、IRQ subsystem ---> 中断子系统 Support sparse irq numbering <=== 支持稀有的中断编号,关闭 1.15、RCU Subsystem ---> 非对称读写锁系统 是一种高性能的kernel 锁机制,适用于读多写少环境 RCU Implementation (Tree-based hierarchical RCU) ---> RCU 实现机制 Tree(X) Tree-based hierarchical RCU 基本数按等级划分 Enable tracing for RCU 激活跟踪 (32) Tree-based hierarchical RCU fanout value 基本数按等级划分分列值 Disable tree-based hierarchical RCU auto-balancing 1.16、< > Kernel .config support 这个选项允许.config文件(即编译LINUX时的配置文件)保存在内核当中 1.17、(17) Kernel log buffer size (16 => 64KB, 17 => 128KB) 1.18、[ ] Control Group support ---> cgroups 支持, 文档资料 ,cgroups 主要作用是给进程分组,并可以动态调控进程组的CPU 占用率。比如A 进程分到apple 组,给予20%CPU 占用率,E 进程分easy 组,给予50%CPU 占用率,最高100% 。我目前没有此类应用场景,用到时会选择将其编译进去。 1.19、-*- Namespaces support ---> 命名空间支持,允许服务器为不同的用户信息提供不 同的用户名空间服务 [*] UTS namespace 通用终端系统的命名空间。它允许容器,比如Vservers利用UTS命名空间来为不同的服务器提供不同的UTS。如果不清楚,选N。 [*] IPC namespace IPC命名空间,不确定可以不选 [*] User namespace (EXPERIMENTAL) User命名空间,不确定可以不选 [*] PID Namespaces PID命名空间,不确定可以不选 [*] Network namespace 1.20、Automatic process group scheduling 1.21、[ ] enable deprecated sysfs features to support old userspace tools 1.22、-*- Kernel->user space relay support (formerly relayfs)