Linux配置文件sysctl.conf参数解释

Linux配置文件sysctl.conf参数解释,第1张

kernel.sysrq = 0   #内核设置验证为0

kernel.core_uses_pid = 1   #控制内核的系统请求调试功能开启,控制核心转储附加PID到核心文件名,适用于多线程

kernel.msgmnb = 65536   #每个消息队列的最大字节限制

kernel.msgmax = 65536   #每个消息的最大size

kernel.shmmax = 68719476736   #定义了共享内存段的最大尺寸(以字节为单位,缺省值为2097152)

kernel.shmall = 4294967296   #表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152)

net.bridge.bridge-nf-call-ip6tables = 0

net.bridge.bridge-nf-call-iptables = 0

net.bridge.bridge-nf-call-arptables = 0

net.ipv4.ip_forward = 0   #控制IP包转发

net.ipv4.conf.default.rp_filter = 1   #控制源路由验证

net.ipv4.conf.default.accept_source_route = 0   #不接受源路由

net.ipv4.tcp_syncookies = 1   #关闭TCP SYNCOOKIES 的使用

一、Linux内核的配置系统由三个部分组成,分别是: 1、Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Linux 内核的编译规则; 2、配置文件(config.in(2.4内核,2.6内核)):给用户提供配置选择的功能; 3、配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于 Ncurses 图形界面以及基于 Xwindows 图形界面的用户配置界面,各自对应于 Make config、Make menuconfig 和 make xconfig)。这些配置工具都是使用脚本语言,如 Tcl/TK、Perl 编写的(也包含一些用 C 编写的代码)。本文并不是对配置系统本身进行分析,而是介绍如何使用配置系统。所以,除非是配置系统的维护者,一般的内核开发者无须了解它们的原理,只需要知道如何编写 Makefile 和配置文件就可以。 二、Make menuconfig过程分析 1、scripts文件夹存放的是跟make menuconfig配置界面的图形绘制相关的文件,我们作为使用者无需关心这个文件夹的内容 2、读取arch/arch/$ARCH/Kconfig以及各子目录下的Kcondig文件,生成配置条目。 $ARCH由linux内核根目录下的makefile文件决定 ARCH?= arm CROSS_COMPILE ?= arm-linux- Kconfig文件中为配置信息的宏定义,与我们在make menuconfig图形界面看到的信息一致。 例如: config CPU_S3C2410_DMA bool depends on S3C2410_DMA &&(CPU_S3C2410 || CPU_S3C2442) default y if CPU_S3C2410 || CPU_S3C2442 helpDMA device selection for S3C2410 and compatible CPUs 因此,Kconfig文件很重要的作用就是:定义配置宏、相关依赖关系、帮助信息 3、读取内核根目录下.config文件,生成配置选项:[*]编译进内核 [M]编译为模块 [ ]不编译 arch/arm/configs/文件夹下存放了一些配置模板 我们可以通过cp /arch/arm/configs/xx_defconfig .config来使用这些配置模板 通过图形界面变更配置选项会自动更新到.config文件中 make disclean 会删除.config 4、编译过程根据.config生成 Linux内核根目录下的 include/config/auto.conf文件 CONFIG_EEPROM_93CX6=m CONFIG_DM9000=y 根目录Makefile以及子目录的Makefile根据auto.conf生成编译条件 obj-$(CONFIG_DM9000) += dm9000.o //obj-m += dm9000.o5、编译过程根据.config生成Linux内核根目录下的 include/linux/autoconf.h文件 .config 或 auto.conf 中定义要编译为 m 模块的项,如: CONFIG_DEBUG_NX_TEST=m 在 autoconf.h 中会被定义为: #define CONFIG_DEBUG_NX_TEST_MODULE 1 .config或auto.conf 中定义为编译为 y 的选项,如: CONFIG_DM9000= y 在 autoconf.h 中会被定义为: #define CONFIG_DM9000 1 autoconf.h中是.config或者auto.conf中配置信息的另一种体现形式,它是站在源码的角度,供源码使用的C语言宏定义。6、总结 我们在使用make menuconfig时,首先会确定架构arch,然后读取arch目录的Kconfig中的配置宏定义,生成编译条目,然后读取Linux内核根目录下的.config选项, 将.config中的配置信息显示在图形界面上[*] [M] or []。我们在图形界面中更改配置选项会自动保存到.config文件中。编译过程根据.config随后生成auto.conf文件,它决定了makefile中各个文件的编译类型,静态编译进内核、编译成模块、不编译同时生成autoconf.h,它以C语言宏定义的形式表达了 各个文件是否被编译,源码中会判断某文件是否被编译进行不同的处理。 三、将自定义文件添加进内核配置系统1、修改文件目录下Kconfig文件 添加: config HELLO tristate "just a test hello" default y ---help--- This is a test //tristate 或 bool 表示可选择种类数量3[*][M][ ]、2 // "just a test hello"将作为标题显示在配置的图形界面2、修改文件目录下makefile文件 obj-$(CONFIG_HELLO) += hello_drv.o3、make menuconfig 我们会在字符设备驱动的界面看到 ust a test hello 并且默认编译进内核 4、make编译内核发现 autoconfig.h 自动添加#define CONFIG_HELLO 1 auto.conf自动添加CONFIG_HELLO=y

一般的配置文件都是放在/etc目录下的(你可以通过输入:ll/etc命令来列出etc目录下的具体内容)

不同的服务对应不同的文件。如:

/etc/httpd.conf对应apache服务

/etc/named.conf对应DNS服务

/etc/dhcpd.coonf对应DHCP服务

/etc/samba/smb.conf对应文件共享

/etc/passwd对应用户名

/etc/shadow对应用户密码

/etc/ypserv.conf对应NIS服务

/etc/vsftpd/vsftpd.conf对应FTP服务

/etc/hosts对应主机名和IP地址关系

/etc/resolv.conf对应DNS服务器的设置

如果你要有所改动的话要根据你的实际需要修改一下相关的配置文件就可以了!不过有的文件的位置是不能修改的!更多配置学习资料,你可以参考《Linux就该这么学》。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8328320.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存