linux内核网络-sysctl:目录/proc/sys

2024-04-25 19:12

本文主要是介绍linux内核网络-sysctl:目录/proc/sys,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

用户/proc/sys看到一个文件实际上是一个内核变量就没个变量而言内核可以定义

将其放在/proc/sys何处相同内核组建或者功能联系变量通常都位于同一个目录中例如/proc/sys/net/ipv4 可以找到IPv4相关文件

命名多数时候文件只是简单命名相关联内核变量相同名字但是有时候为了更友好一点名字也会改变

访问权限例如一个文件可以任何只能超级用户修改

输出/proc/sys变量内容借助相关联文件进行读写或者直接sysctl系统调用

有些目录文件引导期间静态定义其他运动期间添加导致运动期间创建目录文件事实事例如下

当一个内核模块实现一项新功能或者有一个协议加载卸载

一个网络设备注册除名有些配置参数 /proc/sys 文件 每个设备而言都有一个实体例如 /proc/sys/net/ipv4/conf 目录每个注册网络设备而言都有一个子目录

/proc/sys 文件目录都是ctl_table 结构定义ctl_table 结构注册除名通过kernel/sysctl.c定义register_sysctl_tableunregister_sysctl_table 函数完成

以下ctl_table关键字段

const char *procname

/proc/sys所用文件名

int maxlen

输出内核变量尺寸大小

mode_t mode

分派给/proc/sys相关联文件目录访问权限

ctl_table *child

用于建立目录文件之间父子关系本节稍后看到一些相关实例

proc_handler

当你/proc/sys读取写入一个文件完成读取或者写入操作函数所有文件相关联ctl_instances都必须proc_handle初始化内核会给目录分派一个默认

stategy

函数可以选择初始化--显示或者存储之前--完成数据额外格式化工作函数/proc/sys文件sysctl系统调用访问函数就会调用

extra1

extra2

两个可选参数通常用于定义变量最小值最大值通常这两个参数成为min/max通常

根据文件相关联变量种类而定proc_handlerstrategy 初始化也会不同例如内核变量一个活和多喝整数组成proc_dointvec就是proc_handler所用的函数3-13-2列出了可用于处事话proc_handlerstrategy一些函数所有函数定义充分注释都在kernel/sysctl.c

3-1 初始化proc_handler函数

proc_dostring 读写一个字符串

proc_dointvec 读写一个包含一个或者多个整数数组

proc_dointvec_minmax 类似proc_dointvec 但是确定输入数据min.max范围内不符合范围会被拒绝

proc_dointvec_jiffies 读写一个整数数组内核变量jiffies单位表示但是返回用户之前先转成秒数

proc_dointvec_ms_jiffies 读写一个整数数组内核变量jiffies单位表示但是返回用户转成毫秒

proc_duolongvec_minmax 蕾丝proc_dointvec_minmax 但是其值长整数整数

proc_duolongvec_ms_jiffies_minmax 读写一个整数数组内核变量jiffies单位表示

但是返回用户先转成毫秒内核变量指派必须min max范围内

3-2 初始化strategy函数

sysctl_string 读写一个字符串

sysctl_intvec 读写一个整数数组而且确定其值符合min max范围

sysctl_jiffies 读写一个jiffies表示然后将其转成秒数

sysctl_ms_jiffies 读写一个jiffies表示然后将其转成毫秒

strategy 或者proc_handler函数初始化包含3-1或者3-2 函数之一包裹函数

这篇关于linux内核网络-sysctl:目录/proc/sys的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/935549

相关文章

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报