linux内核态读写文件系统,对/proc文件系统进行读写操作

本博客之前的文章中多次涉及到/proc文件系统,下面的几条命令都在曾经的文章中出现过:

cat /proc/interrupts

cat /proc/devices

cat /proc/kallsyms | grep super_blocks

第一条命令用于查看系统内已注册的中断信息,包括中断号、已接受的手段请求和驱动器名称等;第二条命令用于查看系统内已注册的字符设备和块设备信息,包括设备号和设备名称;第三条命令用于在内核符号表中检索super_blocks符号的的地址,kallsyms文件包括内核中所有的标示符及其地址。

1.概述

proc即process的缩写,最初的proc文件系统只是存放进程的相关信息。但现在的/proc文件系统除此之外还包含系统的状态信息和配置信息。

通过ls命令就可以查看/proc文件系统所包含的内容。

edsionte@edsionte-desktop:/proc$ ls

1 1290 1469 1541 1627 19612 29 49 9 dri mdstat sys

10 13 1471 1544 1630 19613 3 5 908 driver meminfo sysrq-trigger

1013 1301 1474 1548 1632 19629 30 50 913 edsionte_procfs misc sysvipc

…………

其中以数字为名的目录即为系统中正在运行的进程信息,数字即为进程的pid。比如我们可以进入init进程的目录,查看它的地址空间:

edsionte@edsionte-desktop:/proc/1$ sudo cat maps

[sudo] password for edsionte:

00110000-00263000 r-xp 00000000 08:07 704702 /lib/tls/i686/cmov/libc-2.11.1.so

00263000-00264000 ---p 00153000 08:07 704702 /lib/tls/i686/cmov/libc-2.11.1.so

00264000-00266000 r--p 00153000 08:07 704702 /lib/tls/i686/cmov/libc-2.11.1.so

00266000-00267000 rw-p 00155000 08:07 704702 /lib/tls/i686/cmov/libc-2.11.1.so

00267000-0026a000 rw-p 00000000 00:00 0

0026a000-00272000 r-xp 00000000 08:07 704713 /lib/tls/i686/cmov/libnss_nis-2.11.1.so

00272000-00273000 r--p 00007000 08:07 704713 /lib/tls/i686/cmov/libnss_nis-2.11.1.so

00273000-00274000 rw-p 00008000 08:07 704713 /lib/tls/i686/cmov/libnss_nis-2.11.1.so

你可能感兴趣的:(linux内核态读写文件系统)