sys文件系统

以下内容源于网络资源的学习与整理,如有侵权请告知删除。

前言

Linux2.6版本的内核引入了sys文件系统。

在 proc文件系统介绍和使用 中,介绍了sys文件系统与proc文件系统的差异。它们都是虚拟文件系统,都是内核中的数据结构的可视化接口。它们分别挂载在/sys目录、/proc目录下。

与proc文件系统类似,通过sys文件系统可以查看系统相关的信息。

sys文件系统中与设备驱动相关的文件节点,可视为 /dev 文件系统的替代者。

sys文件系统的主要作用,是对系统上的设备与总线进行组织与管理,以形成分级的文件。用户空间可以访问或配置这些文件,进而得知系统状态或者控制系统。

目录含义

下面简述/sys目录中的目录所代表的含义。

root@ubuntu:/sys# tree -L 1
.
├── block
├── bus
├── class 
├── dev
├── devices
├── firmware
├── fs
├── hypervisor
├── kernel
├── module
└── power11 directories, 0 files
root@ubuntu:/sys# ls

1、class目录

将设备按照功能分类。

如/sys/class/net包括了所有网络接口。

其中 power_supply 可以查看充电相关的信息。

root@ubuntu:/sys/class# ls
ata_device  dma       i2c-adapter  powercap      scsi_device    tty
ata_link    dmi       input        power_supply  scsi_disk      vc
ata_port    drm       leds         ppdev         scsi_generic   virtio-ports
backlight   extcon    mdio_bus     ppp           scsi_host      vtconsole
bdi         firmware  mem          printer       sound          watchdog
block       gpio      misc         pwm           spi_host
bluetooth   graphics  mmc_host     regulator     spi_master
bsg         hidraw    net          rfkill        spi_transport
devfreq     hwmon     pci_bus      rtc           thermal
root@ubuntu:/sys/class# cd net
root@ubuntu:/sys/class/net# ls
eth0  lo
root@ubuntu:/sys/class/net# ls -l
总用量 0
lrwxrwxrwx 1 root root 0 Jul  4 20:50 eth0 -> ../../devices/pci0000:00/0000:00:11.0/0000:02:01.0/net/eth0
lrwxrwxrwx 1 root root 0 Aug  2 00:03 lo -> ../../devices/virtual/net/lo
root@ubuntu:/sys/class/net# cd eth0
root@ubuntu:/sys/class/net/eth0# ls
addr_assign_type  device   ifalias    netdev_group  speed         uevent
address           dev_id   ifindex    operstate     statistics
addr_len          dormant  iflink     phys_port_id  subsystem
broadcast         duplex   link_mode  power         tx_queue_len
carrier           flags    mtu        queues        type
root@ubuntu:/sys/class/net/eth0# 

2、block目录

每个块设备在该目录下对应一个子目录。

每个子目录中又包含一些属性文件,它们描述了这个块设备的各方面的属性,比如设备大小。另外,loop块设备是使用文件来模拟的。

通过查看该目录下的详细信息,得知它们都是链接文件,指向/sys/devices/下的设备。

root@ubuntu:/sys/block# ls
loop0  loop3  loop6  ram1   ram12  ram15  ram4  ram7  sda
loop1  loop4  loop7  ram10  ram13  ram2   ram5  ram8  sr0
loop2  loop5  ram0   ram11  ram14  ram3   ram6  ram9  sr1
root@ubuntu:/sys/block# cd sr0
root@ubuntu:/sys/block/sr0# ls
alignment_offset  discard_alignment  holders   removable  subsystem
bdi               events             inflight  ro         trace
capability        events_async       power     size       uevent
dev               events_poll_msecs  queue     slaves
device            ext_range          range     stat
root@ubuntu:/sys/block/sr0# cat size 
2097151
root@ubuntu:/sys/block/sr0# cd ..
root@ubuntu:/sys/block# ls -l sda
lrwxrwxrwx 1 root root 0 Jul  4 20:50 sda -> ../devices/pci0000:00/0000:00:10.0/host32/target32:0:0/32:0:0:0/block/sda
root@ubuntu:/sys/block# ls -l sr0
lrwxrwxrwx 1 root root 0 Aug  2 00:03 sr0 -> ../devices/pci0000:00/0000:00:11.0/0000:02:05.0/ata3/host2/target2:0:0/2:0:0:0/block/sr0
root@ubuntu:/sys/block# ls -l sr1
lrwxrwxrwx 1 root root 0 Aug  2 00:03 sr1 -> ../devices/pci0000:00/0000:00:11.0/0000:02:05.0/ata4/host3/target3:0:0/3:0:0:0/block/sr1
root@ubuntu:/sys/block# ls -l ram1
lrwxrwxrwx 1 root root 0 Aug  2 00:03 ram1 -> ../devices/virtual/block/ram1
root@ubuntu:/sys/block# ls -l loop1
lrwxrwxrwx 1 root root 0 Aug  2 00:03 loop1 -> ../devices/virtual/block/loop1
root@ubuntu:/sys/block#

3、bus目录

在内核注册的每条总线,在该目录下对应一个子目录,比如i2c、spi、pci、scsi、usb等等。

其中每个总线目录又包含两个子目录devices和drivers。devices目录包含了在整个系统中发现的、属于该总线类型的设备。drivers目录包含了注册到该总线的所有驱动。

root@ubuntu:/sys/bus# ls
ac97         cpu           hid           mdio_bus     platform  sdio   virtio
acpi         eisa          i2c           mmc          pnp       serio  workqueue
clockevents  event_source  isa           pci          rapidio   spi    xen
clocksource  gameport      machinecheck  pci_express  scsi      usb    xen-backend
root@ubuntu:/sys/bus# cd cpu
root@ubuntu:/sys/bus/cpu# ls
devices  drivers  drivers_autoprobe  drivers_probe  uevent
root@ubuntu:/sys/bus/cpu# cd devices/
root@ubuntu:/sys/bus/cpu/devices# ls
cpu0  cpu1
root@ubuntu:/sys/bus/cpu/devices# cd cpu0
root@ubuntu:/sys/bus/cpu/devices/cpu0# ls
cache        crash_notes_size  firmware_node  power      topology
crash_notes  driver            microcode      subsystem  uevent
root@ubuntu:/sys/bus/cpu/devices/cpu0# cd ../../drivers
root@ubuntu:/sys/bus/cpu/drivers# ls
processor
root@ubuntu:/sys/bus/cpu/drivers# cd processor/
root@ubuntu:/sys/bus/cpu/drivers/processor# ls
bind  cpu0  cpu1  uevent  unbind
root@ubuntu:/sys/bus/cpu/drivers/processor# 

4、devices目录

包含系统的所有设备。(它和/sys/dev目录有啥区别呢?)

root@ubuntu:/sys# ls
block  bus  class  dev  devices  firmware  fs  hypervisor  kernel  module  power
root@ubuntu:/sys# cd dev
root@ubuntu:/sys/dev# l
block/  char/
root@ubuntu:/sys/dev# cd char/
root@ubuntu:/sys/dev/char# ls //下面的都是一些链接,指向/sys/devices相关设备
10:1    10:60   13:32    189:140  4:10  4:24  4:38  4:51  4:65  4:79  4:92
10:175  10:61   13:33    1:9      4:11  4:25  4:39  4:52  4:66  4:8   4:93  
//省略部分
root@ubuntu:/sys/dev/char# cd ../../devices/
root@ubuntu:/sys/devices# ls
breakpoint  isa          pci0000:00  pnp0  rapidio   system      virtual
cpu         LNXSYSTM:00  platform    pnp1  software  tracepoint
root@ubuntu:/sys/devices# cd pci0000\:00/
root@ubuntu:/sys/devices/pci0000:00# ls
0000:00:00.0  0000:00:15.0  0000:00:16.1  0000:00:17.2  0000:00:18.3
0000:00:01.0  0000:00:15.1  0000:00:16.2  0000:00:17.3  0000:00:18.4
0000:00:07.0  0000:00:15.2  0000:00:16.3  0000:00:17.4  0000:00:18.5
0000:00:07.1  0000:00:15.3  0000:00:16.4  0000:00:17.5  0000:00:18.6
0000:00:07.3  0000:00:15.4  0000:00:16.5  0000:00:17.6  0000:00:18.7
0000:00:07.7  0000:00:15.5  0000:00:16.6  0000:00:17.7  firmware_node
0000:00:0f.0  0000:00:15.6  0000:00:16.7  0000:00:18.0  pci_bus
0000:00:10.0  0000:00:15.7  0000:00:17.0  0000:00:18.1  power
0000:00:11.0  0000:00:16.0  0000:00:17.1  0000:00:18.2  uevent
root@ubuntu:/sys/devices/pci0000:00# cd ../cpu
root@ubuntu:/sys/devices/cpu# ls
events format perf_event_mux_interval_ms  power  rdpmc subsystem type  uevent
root@ubuntu:/sys/devices/cpu# 

5、fs目录

描述系统中的文件系统。

6、filewire目录

描述系统中的固件。

7、power目录

描述系统中的电源选项。

8、module目录

描述系统中的模块信息。

9、kernel目录

内核中的配置参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring mvc 配置解析之xml

2019独角兽企业重金招聘Python工程师标准>>> ##mvc.xml中可配置的元素## 既然是xml,当然是要遵循schema的规定. 那么schema文件在哪呢? 定位方法就是解开这个jar文件,找到META-INF/spring.schema文件,这是个文本文件,里面包含了namespace以及其对应的xsd文件的位置…

IOS-UITextField类

文字属性 text placeholder   //默认使用70%灰色 font textColor textAlignment 文字大小 adjustsFontSizeToFitWidth minimumFontSize 编辑行为 editing     //是否正在编辑(read-only) clearsOnBeginEditing 展现形态 borderStyle     //默认UITextBord…

tree命令:以树的形式列出目录中的文件

在linux命令行中,输入“man 1 tree”可以得知tree命令的用法。 这里讲解几个常用的选项。 tree -L level_num :Max display depth of the directory tree. 比如“tree -L 1”,表示深度为1层。 rootubuntu:/sys# ls block bus class de…

JDBC学习笔记——事务、存储过程以及批量处理

2019独角兽企业重金招聘Python工程师标准>>> 1、事务 1.1、事务的基本概念和使用示例 数据库事务,是指作为单个逻辑工作单元执行的一系列操作,要么完整…

验证码识别笔记(二)

这是验证码识别的第二篇,先看一下样图吧,就是下面那张。 看到这张图片,直观上就知道比第一篇中的要简单,这个“简单”用语言来描述,可以得到下面的几条结论: 1. 图片中的字符边界比较清晰,并且单…

dd命令:用于读取、转换并输出数据

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 命令作用 从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。 参数说明 if文件名:输入文件名,默认为标准输入。即指定源文…

centos6.5下搭建oracle 11g

为什么80%的码农都做不了架构师?>>> 安装依赖 yum install binutils compat-libstdc-33 compat-libstdc-33.i686 \ elfutils-libelf elfutils-libelf-devel gcc gcc-c glibc glibc.i686 \ glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh…

Unix基本系统数据类型和stat结构体

Unix基本系统数据类型 历史上,某些UNIX变量已与某些C数据类型联系在一起,例如,历史上主、次设备号存放在一个1 6位的短整型中, 8位表示主设备号,另外8位表示次设备号。但是,很多较大的系统需要用多于256个值…

回环设备(/dev/loop*)与losetup命令

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 一、前言 之前曾利用losetup命令进行根文件系统镜像文件的制作,但不明白其命令含义。 二、回环设备 命名方式 回环设备一般以 /dev/loop* 方式命名。 回环设备的含义 回环设备是一种伪设备&#…

oracle中游标的使用

1)--- 使用带参数的游标;declareCURSOR stock_cur(symbol_in VARCHAR2) IS SELECT * FROM rate_combine_nr nr WHERE nr.combine_nosymbol_in;stock_info stock_cur%ROWTYPE; beginOPEN stock_cur(G600000001); --打开游标;loop FETCH stock_cur INTO stock_inf…

JS 学习笔记--11---内置对象(Global/Math)

练习中使用的浏览器是IE10,如果各位朋友有不同意见或者遇到浏览器不兼容问题,希望指正 1、内置对象的定义:有ECMAScript实现提供的、不依赖与宿主环境的对象,在ECMAScript运行之前就已经创建好的对象就叫做内置对象。就是说&…

SQL Server 视图设计器

SQL Server 中经常需要写一些查询,关联好多张表,显示无数个列。如果使用视图设计器,可以大大提高效率,同是减少差错。1. 启动视图设计器为数据库“新建视图”,将启用视图设计器。2. 添加表在起始界面,将出现…

Linux系统的目录树

更多详细内容,见Linux目录树详解(转)_peniel_shen的博客-CSDN博客 Linux系统的目录树: rootubuntu:/# tree -L 1 . ├── bin //保存系统自身启动和运行时可能会用到的核心二进制程序。 ├── boot //保存系统引导启动时要…

Android 4 学习(19):Services

参考《Professional Android 4 Development》 Services Service是invisible的,因此其优先级不高于visible的Activity,之所以说不高于,是因为我们可以设置Service为在前台运行。 创建Service Android提供了Service抽象类,继承它便可…

ACL权限设定

1.ACL(Access Control List)可以针对单一使用者、单一档案或目录来进行r、w、x的权限规范。ACL主要针对以下方面来控制权限:1)使用者:可以针对使用者。来设定权限2)群组:针对群组为对象来设定其…

misc类设备驱动1——板载蜂鸣器驱动测试

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、驱动部分 1、前言 九鼎移植的内核已经提供了蜂鸣器驱动源码(在SI中搜索关键字buzzer,发现出现有x210-buzzer.c文件;或者在make menuconfig界面搜索buzzer&am…

【微信开发】上传下载多媒体文件

最近一段时间,开始入手了微信开发。感觉挺有意思的,虽然目前还是遇到了许多解决不了的问题。上传下载多媒体文件,这个作为高级接口的一部分功能,可能使用的人并不多,所以现在网上关于这个接口的使用教程很少。于是我就…

github和git@osc提交问题

为什么80%的码农都做不了架构师?>>> 今天想用gitosc push下测试下自己能否正常使用gitosc的git仓库的,公钥SSH 已经加好。 ssh -T gitgit.oschina.net 测试正常。 结果报错could not read Username for https://git.oschina.net: No such fi…

misc类设备驱动2——misc类设备的简介

以下内容源于朱有鹏嵌入式课程的学习与整理,如有其侵权请告知删除。 一、misc类设备的含义 1、名字含义 misc是英文Miscellaneous的缩写,中文意思是“杂项、混杂”,因此“misc类设备”也叫“杂项设备”或者“混杂设备”。因为这些字符设备不…

怎样跟踪来访用户?

某些监视方法是比较容易想到的,比如,当你登录网站的时候,它就可以知道你是谁了。但是这些网络监视系统是如何通过你的上网行为记录你的个人信息呢? 广告系统经常通过追踪用户行为的方法来建立用户信息库,以定位谁是目标…