Sys节点

1:sysfs

Linux 内核中设计较新的一种虚拟的基于内存的文件系统,
sysfs 的挂载点
/sys 目录结构。

2:/sys
文件系统下的目录结构

/sys 下的目录结构是经过精心设计的:在
/sys/devices
下是所有设备的真实对象,包括如视频卡和以太网卡等真实的设备,也包括
ACPI 等不那么显而易见的真实设备、还有
tty, bonding 等纯粹虚拟的设备;在其它目录如
class, bus 等中则在分类的目录中含有大量对
devices 中真实对象引用的符号链接文件;
清单 1 中在
/sys 根目录下顶层目录的意义如下:


1. /sys 下的目录结构

/sys 下的子目录

所包含的内容

/sys/devices

这是内核对系统中所有设备的分层次表达模型,也是
/sys 文件系统管理设备的最重要的目录结构,下文会对它的内部结构作进一步分析;

/sys/dev

这个目录下维护一个按字符设备和块设备的主次号码(major:minor)链接到真实的设备(/sys/devices下)的符号链接文件,它是在内核
2.6.26 首次引入;

/sys/bus

这是内核设备按总线类型分层放置的目录结构,
devices
中的所有设备都是连接于某种总线之下,在这里的每一种具体总线之下可以找到每一个具体设备的符号链接,它也是构成
Linux 统一设备模型的一部分;

/sys/class

这是按照设备功能分类的设备模型,如系统所有输入设备都会出现在
/sys/class/input 之下,而不论它们是以何种总线连接到系统。它也是构成
Linux 统一设备模型的一部分;

/sys/block


里是系统中当前所有的块设备所在,按照功能来说放置在
/sys/class 之下会更合适,但只是由于历史遗留因素而一直存在于
/sys/block, 但从
2.6.22 开始就已标记为过时,只有在打开了
CONFIG_SYSFS_DEPRECATED 配置下编译才会有这个目录的存在,并且在
2.6.26 内核中已正式移到
/sys/class/block, 旧的接口
/sys/block 为了向后兼容保留存在,但其中的内容已经变为指向它们在
/sys/devices/ 中真实设备的符号链接文件;

/sys/firmware

这里是系统加载固件机制的对用户空间的接口,关于固件有专用于固件加载的一套API,在附录
LDD3 一书中有关于内核支持固件加载机制的更详细的介绍;

/sys/fs


里按照设计是用于描述系统中所有文件系统,包括文件系统本身和按文件系统分类存放的已挂载点,但目前只有
fuse,gfs2 等少数文件系统支持
sysfs 接口,一些传统的虚拟文件系统(VFS)层次控制参数仍然在
sysctl (/proc/sys/fs) 接口中中;

/sys/kernel

这里是内核所有可调整参数的位置,目前只有
uevent_helper, kexec_loaded, mm, 和新式的
slab 分配器等几项较新的设计在使用它,其它内核可调整参数仍然位于
sysctl (/proc/sys/kernel) 接口中
;

/sys/module

这里有系统中所有模块的信息,不论这些模块是以内联(inlined)方式编译到内核映像文件(vmlinuz)中还是编译为外部模块(ko文件),都可能会出现在
/sys/module 中:

  • 编译为外部模块(ko文件)在加载后会出现对应的
    /sys/module/<module_name>/,
    并且在这个目录下会出现一些属性文件和属性目录来表示此外部模块的一些信息,如版本号、加载状态、所提供的驱动程序等;

  • 编译为内联方式的模块则只在当它有非0属性的模块参数时会出现对应的
    /sys/module/<module_name>, 这些模块的可用参数会出现在
    /sys/modules/<modname>/parameters/<param_name>
    中,


    • /sys/module/printk/parameters/time 这个可读写参数控制着内联模块
      printk 在打印内核消息时是否加上时间前缀;


    • 有内联模块的参数也可以由
      "<module_name>.<param_name>=<value>"
      的形式写在内核启动参数上,如启动内核时加上参数
      "printk.time=1" 与
      向 "/sys/module/printk/parameters/time"
      写入1的效果相同;

  • 没有非0属性参数的内联模块不会出现于此。

/sys/power

这里是系统中电源选项,这个目录下有几个属性文件可以用于控制整个机器的电源状态,如可以向其中写入控制命令让机器关机、重启等。

/sys/slab (对应
2.6.23 内核,在
2.6.24 以后移至
/sys/kernel/slab)

从2.6.23
开始可以选择 SLAB
内存分配器的实现,并且新的
SLUB(Unqueued
Slab Allocator)被设置为缺省值;如果编译了此选项,在
/sys 下就会出现
/sys/slab ,里面有每一个
kmem_cache 结构体的可调整参数。对应于旧的
SLAB 内存分配器下的
/proc/slabinfo 动态调整接口,新式的
/sys/kernel/slab/<slab_name>
接口中的各项信息和可调整项显得更为清晰。

sysfs->sys简单介绍的更多相关文章

  1. MySQL sys Schema 简单介绍-2

    之前在<MySQL sys Schema 简单介绍-1>中简单的介绍了,sys Schema库中的表.那么这些表都可以查询些什么信息呢?接下来本文将做下介绍. 1. 表的情况 1.1 统计 ...

  2. MySQL sys Schema 简单介绍-1

    参考文档: MySQL- 5.7 sys schema笔记 MySQL 5.7新特性:SYS库详解 MySQL Performance Schema&sys Schema介绍 内存分配统计视图 ...

  3. [转]Oracle数据库ASH和AWR的简单介绍

    在Oracle数据库中,有时我们可能会遇到这样的术语:ASH和AWR,那么它们是怎样产生的呢?它们的作用又是什么呢?本文我们就来介绍这一部分内容.       1.10g之前 用户的连接将产生会话,当 ...

  4. Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍

    引用自 :http://www.2cto.com/database/201307/224836.html   Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍 先假设有这么一个表 ...

  5. Linux 内核开发—内核简单介绍

    内核简单介绍 Linux 构成 Linux 为什么被划分为系统空间和内核空间 隔离核心程序和应用程序,实现对核心程序和数据的保护. 什么内核空间,用户空间 内核空间和用户空间是程序执行的两种不同的状态 ...

  6. Core文件简单介绍及生成设置方法

    Core文件简单介绍及生成设置方法 Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试.当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文 ...

  7. rabbitmq的简单介绍一

    该博客的主要讲解了以下几种rabbitmq的用法1.实现简单的生产者发送消息给消费者2.实现序列持久化3.实现消息持久化4.实现消息公平分发5.实现广播6.实现组播7.实现细分组播 先来看下rabbi ...

  8. Linux守护进程简单介绍和实例具体解释

    Linux守护进程简单介绍和实例具体解释 简单介绍 守护进程(Daemon)是执行在后台的一种特殊进程.它独立于控制终端而且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种非常实用的进程. ...

  9. iptables 简单介绍及应用 Linux防火墙

    iptables 即 Linux防火墙 的简单介绍及使用 iptables生效位置如下图: 其中, 网络防火墙也可以使用一台启用了iptables的Linux主机代替; 路由器或集线器等设施在拓扑中省 ...

  10. [原创]关于mybatis中一级缓存和二级缓存的简单介绍

    关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...

随机推荐

  1. Differential Geometry之第三章曲面的局部理论

    第三章.曲面的局部理论 1.曲面的概念 1.1.曲面的概念 1.2.切平面与法向 2.曲面的第一基本形式 3.曲面的第二基本形式 正定矩阵:一个n阶的实对称矩阵M是正定的的条件是当且仅当对于所有的非零 ...

  2. Ionic Android开发环境搭建 下

    上篇 Ionic 安装完成了,由于要开发Android,所以必不可少需要继续搭建Android开发环境. 首先,下载并安装JDK.然后配置一下环境变量. 接着,下载并安装Android SDK.下载过 ...

  3. dedecms5.7文章实现阅读全文功能二次开发

    阅读全文功能其实在很多的流行站点都有的,比如网易,新浪等,随着文章内容的增加,当一个页面有多个分页的时候,就会显示出这个“在本页阅读全文”的链接,点击这个链接之后,出现的,将是这篇文章以没有分页出现的 ...

  4. Github 访问时出现Permission denied (public key)

    一. 发现问题: 使用 git clone 命令时出现Permission denied (public key) . 二. 解决问题: 1.首先尝试重新添加以前生成的key,添加多次,仍然不起作用. ...

  5. iOS - UIView操作(SWift)

    1. UIView 视图的渐变填充 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after ...

  6. javascript之面向对象程序设计(对象和继承)

    总结的文章略长,慎点. 知识点预热 引用类型:引用类型的值(对象)是引用类型的一个实例.在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起.在其他面向对象语言中被称为类,虽然 ...

  7. 再谈移动端Web屏幕适配

    一个多月前水了一篇移动web屏幕适配方案,当时噼里啪啦的写了一通,自我感觉甚是良好.不过最近又有一些新的想法,和之前的有一些不同. 先说一下淘宝的方案,感觉现在好多的适配方案都是受了它的影响,上周六看 ...

  8. 在hibernate中使用c3p0数据源

    1.  jar包  hibernate-release-4.1.8.Final\lib\optional\c3p0 2.  加入配置:   <!-- 数据库连接池最大连接数 -->  &l ...

  9. ArcGIS 坐标系统文件

    坐标是GIS数据的骨骼框架,能够将我们的数据定位到相应的位置,为地图中的每一点提供准确的坐标. ArcGIS自带了多种坐标系统,在${ArcGISHome}Coordinate Systems目录下可 ...

  10. HDU 1954 Subway tree systems (树的最小表示法)

    题意:用一个字符串表示树,0代表向下走,1代表往回走,求两棵树是否同构. 分析:同构的树经过最小表示会转化成两个相等的串. 方法:递归寻找每一棵子树,将根节点相同的子树的字符串按字典序排列,递归回去即 ...