• kernel信息及其相关命令


    内核

    	linux内核是单内核体系设计、但充分借鉴了微内核设计体系的优点,为内核引入模块化机制
    	内核组成部分:
    		kernel:
    			内核核心,一般为bzImage,通常在/boot 目录下,名称为vmlinuz-VERSION-RELEASE.
    		kernel object:
    			内核对象,一般放置于/lib/modules/VERSION-RELEASE/
    		辅助文件:
    			ramdisk
    			initrd
    			initramfs
    

    内核版本

    	运行中的内核:
    	uname 命令:
    		uname - print system information
    		uname [OPTION]...
    			-n:  	显示节点名称;
    			-r:  	显示VERSION-RELEASE;
    			-a: 	显示所有信息
    			-s, --kernel-name        	显示kernel名称
    			-v, --kernel-version     	显示kernel版本
    			-m, --machine            	显示机器硬件名称
    			-p, --processor          	显示进程类型 or "unknown"
    			-i, --hardware-platform  	显示硬件平台or "unknown"
    			-o, --operating-system   	显示操作系统
    			
    	uname -a
    		Linux centos6 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    			Linux:	操作系统类型
    			centos6:	操作系统的主机名
    			2.6.32-696.el6.x86_64:	内核版本信息
    			#1 SMP Tue Mar 21 19:29:05 UTC 2017:	内核的编译日期
    			x86_64 x86_64 x86_64:	这三组分别表示,
    				操作系统版本,处理器类型,硬件平台
    			GNU/Linux:	操作系统名称
    

    内核模块命令

    	lsmod 
    		lsmod - Show the status of modules in the Linux Kernel
    		显示核心已经装载的内核模块
    		显示的内容来自于/proc/modules 文件
    		
    	modinfo
    		显示模块的详细描述信息
    		modinfo - Show information about a Linux Kernel module
    		modinfo [options] filename [args]
    		Options:
    			-a, --author                	仅显示'author'
    			-d, --description           	仅显示'description'
    			-l, --license               	仅显示'license'
    			-p, --parameters            	仅显示'parm',显示模块参数
    			-n, --filename              	仅显示'filename',只显示模块文件路径
    			-0, --null                  	使用取代
    
    			-F, --field=FIELD           	仅打印给出的FIELD
    			-k, --set-version=VERSION   	使用VERSION代替`uname -r`
    			-b, --basedir=DIR           	使用DIR作为文件系统的root目录,for/lib/modules
    			
    			lsmod |grep xfs;modinfo xfs
    

    内核模块管理

    	modprobe
    		装载或卸载内核模块
    		modprobe [ -C config-file ] [ modulename ] [ module parame-ters... ]
    		modprobe [-v] [-V] [-C config-file] [-d <dirname> ] [-n] [-i] [-q] [-b] [-o <modname>] [ --dump-modversions ] <modname> [parameters...]
    		modprobe -r [-n] [-i] [-v] <modulename> ...
    		modprobe -l -t <dirname> [ -a <modulename> ...]
    		装载模块:modprobe   mod_name(这里会自动解决模块儿间的依赖关系)
    		卸载模块:modprobe  -r  mod_name 
    		配置文件:/etc/modprobe.conf,/etc/modprobe.d/*.conf
    
    	depmod 
    		内核模块依赖关系文件及系统信息映射文件的生成工具
    		depmod -[aA] [-n -e -v -q -V -r -u -w -m][-b basedirectory] [forced_version]
    		depmod [-n -e -v -q -r -u -w] [-F kernelsyms] module1.ko module2.ko ...
    	
    	insmod 
    		装载模块文件,不自动解决依赖模块
    		insmod [ filename ] [ module options... ]
    		insmod `modinfo –n exportfs`
    		lnsmod `modinfo –n xfs`
    	
    	rmmod 
    		卸载模块
    		rmmod [ -f ]  [ -w ]  [ -s ]  [ -v ]  [ modulename ]
    		rmmod xfs
    		rmmod exportfs
    

    /proc

    	/proc 目录
    		内核把自己内部状态信息及统计信息以及可配置参数通过proc 伪文件系统加以输出。
    		该目录是系统与内核交互的一个伪文件系统接口,/proc下的每个文件名都是内核参数,目录名为内核参数节点(子系统或子功能)信息。
    		该目录下的一些只读文件表示的是输出的内核信息,一些可以写的文件表示可修改的内核工作特性,这些可写的文件分布在/proc/sys目录下。
    		伪文件系统的特定就是文件不能直接使用编辑器编辑,但可以使用echo和sysctl -w进行修改。
    	参数:
    		只读的输出信息
    		可写是指可接受用户指定“新值”来实现对内核某功能或特性的配置
    	可写的内核参数放在/proc/sys,此目录下的文件可临时更改,是立即生效的,但内核重启后无效
    		sysctl 命令用于查看或设定此目录中诸多参数
    			sysctl -w path.to.parameter=VALUE
    			sysctl -w kernel.hostname=mail.magedu.com
    		echo命令通过重定向方式也可以修改大多数参数的值
    			echo "VALUE" > /proc/sys/path/to/parameter
    			echo “websrv” > /proc/sys/kernel/hostname
    	内核参数配置文件/etc/sysctl.conf
    		格式为path.to.paramter=NEW_VALUE
    		注意:
    			此种设定不能立即生效,但重启系统后一直生效,为了不重启系统而使其生效的方式:
    			sysctl  -p   [/path/to/conf_file]
    

    /sys

    	/sys 目录:
    		该目录为文件系统提供接口,所谓sysfs(伪文件系统)主要用于输出内核识别出的各硬件设备的相关属性信息,也有内核对硬件特性的设定信息。
    		有些参数是可以修改的,用于调整硬件工作特性。
    		这些设备文件仅仅是用户空间访问设备时的一个接口。
    		在系统启动过程当中,当内核探测到有硬件设备时,会将硬件设备的信息输出到/sys目录,然后系统根据/sys目录中的硬件设备信息来创建对应的设备文件。
    		这些设备文件是udev通过读取/sys目录下保存硬件设备的相关信息来为每个当前内核探测到的硬件设备创建设备文件,创建设备文件的权限、名称等属性是可定制的。
    		udev通过此路径下输出的信息动态为各设备创建所需要设备文件,udev 是运行用户空间程序。
    		udev为设备创建设备文件时,会读取其事先定义好的规则文件,一般是在/etc/udev/rules.d 及/usr/lib/udev/rules.d目录下,这些规则文件是可以修改的。
    		专用工具:udevadm, hotplug
    

    sysctl

    	sysctl - configure kernel parameters at runtime,配置内存参数
    	sysctl [options] [variable[=value] ...]
    	sysctl -p [file or regexp] [...]
    	Options:
    		-a, --all            	显示所有变量
    		-A                   	alias of -a
    		-X                   	alias of -a
    		--deprecated     	列出不用的参数
    		-b, --binary         	print value without new line
    		-e, --ignore         	忽略不知道变量错误
    		-N, --names          	显示不带值的变量名
    		-n, --values        	仅显示变量的值
    		-p, --load[=<file>]  	从文件中读取值
    		-f                   	alias of -p
    		--system         	从所有的系统目录中读取值
    		-r, --pattern <expression>                     	选择匹配到的设置
    		-q, --quiet         	不显示变量设置
    		-w, --write          	是变量可写
    		-o                   	does nothing
    		-x                   	does nothing
    		-d                 	alias of -h
    	默认配置文件:/etc/sysctl.conf
    	设置某参数
    		sysctl -w parameter=VALUE
    	通过读取配置文件设置参数
    		sysctl -p [/path/to/conf_file]
    	查看所有生效参数
    		sysctl -a
    	常用的几个参数:
    		net.ipv4.ip_forward
    		net.ipv4.icmp_echo_ignore_all
    		vm.drop_caches
    	释放缓存:
    		echo 1 > /proc/sys/vm/drop_caches 
    		sysctl  -w net.ipv4.ip_forward=1
    
  • 相关阅读:
    JDBC
    Oracle基本数据类型
    vue生命周期详解
    Vue的Ajax(vue-resource/axios)
    Vue实例属性/方法/生命周期
    Vue自定义指令
    深入了解组件- -- 动态组件 & 异步组件
    深入了解组件- -- 插槽
    深入了解组件- -- 自定义事件
    深入了解组件- -- Prop
  • 原文地址:https://www.cnblogs.com/shenxm/p/8447714.html
Copyright © 2020-2023  润新知