proc 文件系统学习

proc.txt翻译

------------------------------------------------------------------------------
Version 1.3 Kernel version 2.2.12
Kernel version 2.4.0-test11-pre4
------------------------------------------------------------------------------

Table of Contents
-----------------

0 Preface
0.1 Introduction/Credits
0.2 Legal Stuff

1 Collecting System Information
1.1 Process-Specific Subdirectories
1.2 Kernel data
1.3 IDE devices in /proc/ide
1.4 Networking info in /proc/net
1.5 SCSI info
1.6 Parallel port info in /proc/parport
1.7 TTY info in /proc/tty
1.8 Miscellaneous kernel statistics in /proc/stat
1.9 Ext4 file system parameters

2 Modifying System Parameters

3 Per-Process Parameters
3.1 /proc/<pid>/oom_adj & /proc/<pid>/oom_score_adj - Adjust the oom-killer score
3.2 /proc/<pid>/oom_score - Display current oom-killer score
3.3 /proc/<pid>/io - Display the IO accounting fields
3.4 /proc/<pid>/coredump_filter - Core dump filtering settings
3.5 /proc/<pid>/mountinfo - Information about mounts
3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm
3.7 /proc/<pid>/task/<tid>/children - Information about task children
3.8 /proc/<pid>/fdinfo/<fd> - Information about opened file
3.9 /proc/<pid>/map_files - Information about memory mapped files
3.10 /proc/<pid>/timerslack_ns - Task timerslack value
3.11 /proc/<pid>/patch_state - Livepatch patch operation state

4 Configuring procfs
4.1 Mount options


目录
-----------------

0 前言
0.1介绍/署名
0.2法律资料

1 收集系统信息
1.1特定于进程的子目录
1.2内核数据
1.3 /proc/ide 中的IDE设备
1.4 /proc/net 中的网络信息
1.5 SCSI信息
1.6 /proc/parport 中的并行端口信息
1.7 /proc/tty 中的TTY信息
1.8 /proc/stat 中的各种内核统计信息
1.9 Ext4文件系统参数

2 修改系统参数

3 个每个进程的参数
3.1 /proc/<pid>/oom_adj & /proc/<pid>/oom_score_adj - 调整oom-killer分数
3.2 /proc/<pid>/oom_score - 显示当前的oom-killer分数
3.3 /proc/<pid>/io - 显示IO计数字段
3.4 /proc/<pid>/coredump_filter - 核心dump过滤设置
3.5 /proc/<pid>/mountinfo - 有关mounts的信息
3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm
3.7 /proc/<pid>/task/<tid>/children - 有关任务子项的信息
3.8 /proc/<pid>/fdinfo/<fd> - 有关打开文件的信息
3.9 /proc/<pid>/map_files - 有关内存映射文件的信息
3.10 /proc/<pid>/timerslack_ns - 任务timerslack值
3.11 /proc/<pid>/patch_state - Livepatch补丁操作状态

4 配置procfs
4.1安装选项

------------------------------------------------------------------------------
前言
------------------------------------------------------------------------------

0.1 介绍、署名
这篇文档是很快(或者我们希望)在SuSE Linux发行版上发布的书的一部分。 由于没有/ proc文件系统的完整文档,我们已经使用了许多免
费提供的资源来编写这些章节,因此将工作交给Linux社区似乎是公平的。 这项工作是基于2.2.*内核版本和即将推出的2.4.*版本的内核。
我担心它还远未完成,但我们希望它会有用。 据我们所知,这是关于/ proc文件系统的第一个“一体化”文档。 它专注于Intel x86硬件,
因此如果您正在寻找PPC,ARM,SPARC,AXP等功能,您可能无法找到所需的内容。 它也只涵盖IPv4网络,而不是IPv6或其他协议 - 抱歉。
但是欢迎添加和补丁,如果您将它们邮寄给Bodo,它们将被添加到本文档中。

我们要感谢Alan Cox,Rik van Riel和Alexey Kuznetsov以及其他许多人帮助编写此文档。 我们还要特别感谢Andi Kleen提供的文档,我们
非常依赖这些文档来创建此文档,以及他提供的其他信息。 感谢所有为Linux内核提供源代码或文档的人,并帮助创建了一个很棒的软件....
.. :)

如果您有任何意见,更正或补充,请随时通过bb@ricochet.net与Bodo Bauer联系。 我们很乐意将它们添加到此文件。
该文档的最新版本可在http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html在线获取。
如果上述方向不适合您,您可以尝试linux-kernel@vger.kernel.org上的内核邮件列表和/或尝试通过comandante@zaralinux.com与我联系。

注意,下面放弃了对2.4内核中的这个文档进行翻译,转而翻译链接中的最新的文档:http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html

1.14 / proc
/proc 非常特殊,因为它也是一个虚拟文件系统。 它有时被称为处理信息伪文件系统。 它不包含“真实”文件,而是包含运行时系统信息(例
如系统内存,安装的设备,硬件配置等)。 因此,它可以被视为内核的控制和信息中心。 实际上,相当多的系统实用程序只是调用此目录中
的文件。 例如,'lsmod'与'cat /proc/modules'相同,而'lspci'是'cat /proc/pci'(目前内核中已经没有这个文件了)的同义词。 通过更改
位于此目录中的文件,您甚至可以在系统运行时读取/更改内核参数(sysctl)。

关于这个目录中文件最独特的事实是它们都有一个文件大小为0的事实,除了kcore,mtrr和self。

每个编号的目录对应于实际的进程ID。 查看进程表,您可以将进程与关联的进程ID进行匹配。 例如,进程表可能为安全shell服务器指示以
下内容:
# ps ax | grep sshd
439 ? S 0:00 /usr/sbin/sshd

可以通过查看此进程的目录 /proc/460中的相关文件来获取此过程的详细信息。 您可能在想如何通过大小为0的文件查看进程的详细信息。
如果您将其视为内核窗口,则更有意义。 该文件实际上不包含任何数据; 它只是作为指向实际进程信息所在位置的指针。 例如,/proc/460
目录中的文件列表类似于以下内容:
total 0
-r--r--r-- 1 root root 0 Jan 19 15:02 cmdline
lrwxrwxrwx 1 root root 0 Jan 19 15:02 cwd -> /
-r-------- 1 root root 0 Jan 19 15:02 environ
lrwxrwxrwx 1 root root 0 Jan 19 15:02 exe -> /usr/sbin/sshd
dr-x------ 2 root root 0 Jan 19 15:02 fd
-r--r--r-- 1 root root 0 Jan 19 15:02 maps
-rw------- 1 root root 0 Jan 19 15:02 mem
lrwxrwxrwx 1 root root 0 Jan 19 15:02 root -> /
-r--r--r-- 1 root root 0 Jan 19 15:02 stat
-r--r--r-- 1 root root 0 Jan 19 15:02 statm
-r--r--r-- 1 root root 0 Jan 19 15:02 status

每个文件的目的和内容解释如下:

/proc/PID/CMDLINE 命令行参数。
/proc/PID/CPU 执行它的当前和最后一个cpu。
/proc/PID/CWD 链接到当前工作目录。
/proc/PID/ENVIRON 环境变量的值。# strings environ查看
/proc/PID/EXE 链接到此进程的可执行文件。
/proc/PID/FD 目录,包含所有文件描述符。
/proc/PID/maps 内存映射到可执行文件和库文件。
/proc/PID/MEM 这个进程所持有的内存。
/proc/PID/root 链接到此进程的根目录。
/proc/PID/STAT 进程的状态。
/proc/PID/statm 进程内存状态信息。
/proc/PID/status 可读的进程状态。

这些文件是可以拷贝到其它地方,拷贝后属性不变,但是写失效。

如果您想了解更多信息,proc的手册页将更详细地描述与正在运行的进程ID关联的每个文件。Ubuntu中man proc即可

即使文件大小为0,检查其内容也会显示:

/proc 目录中的文件与进程ID子目录文件非常相似。例如,检查 /proc/interrupts文件的内容会显示如下内容:
# cat interrupts

CPU0
0: 32657 XT-PIC timer
1: 1063 XT-PIC keyboard
2: 0 XT-PIC cascade
8: 3 XT-PIC rtc
9: 0 XT-PIC cmpci
11: 332 XT-PIC nvidia
14: 5289 XT-PIC ide0
15: 13 XT-PIC ide1
NMI: 0
ERR: 0


左侧列中的每个数字代表正在使用的中断。 检查文件的内容会动态收集关联的数据并将其显示在屏幕上。 大多数 /proc文件系统是只读的;
但是,有些文件允许更改内核变量。 这提供了一种实际调整内核而无需重新编译和重新引导的机制。

procinfo实用程序将/proc文件系统信息汇总到类似于以下内容的显示中: 自己需要安装这个程序
# /usr/bin/procinfo

/proc/APM 高级电源管理信息。
/proc/bus 包含总线特定信息的目录。
# cat /proc/bus/input/devices 查看对应的每一个event设备的详细信息
# cat /proc/bus/input/handlers
/proc/CMDLINE 内核命令行。
/proc/cpuinfo 有关处理器的信息,例如其类型,品牌,型号和性能。
/proc/devices 配置到当前运行的内核(块和字符)的设备驱动程序列表。设备类型名和主设备号
/proc/DMA 显示当前正在使用的DMA通道。
/proc/driver 各种驱动程序分组在这里,目前只有rtc
/proc/execdomains Execdomains,与安全性相关。
/proc/FB 帧缓冲设备。
# strings /proc/fb
0 svgadrmfb
/proc/filesystems 当前内核配置/支持的文件系统
/proc/FS 文件系统参数
# ls /proc/fs/ext4/sda1/
es_shrinker_info mb_groups options
# ls /proc/fs/jbd2/sda1-8/
info
# ls /proc/fs/nfsd/ 里面什么也没有
插上U盘后这里面的信息没有变化!

/proc/IDE:该子目录包含有关内核可识别的所有IDE设备的信息。 每个IDE控制器都有一个子目录,文件驱动程序和每个IDE设备的链接,
指向控制器特定子树中的设备目录。 文件驱动程序包含有关用于IDE设备的驱动程序的一般信息。 可以在特定于控制器的子目录中找到
更详细的信息。 这些名称为ide0,ide1等。 每个目录都包含此处显示的文件:
/proc/ide/ide?/channel IDE通道(0或1)
/proc/ide/ide?/config 配置(仅适用于PCI / IDE桥接器)
/proc/ide/ide?/mate 配对名称(onchip partnered controller)
/proc/ide/ide?/model IDE控制器的类型/芯片组
连接到控制器的每个设备在controllers目录中都有一个单独的子目录。 列出的以下文件包含在这些目录中:
/proc/ide/ide?/model/cache 缓存。
/proc/ide/ide?/model/capacity 介质容量(512Byte块)
/proc/ide/ide?/model/driver 驱动程序和版本
/proc/ide/ide?/model/geometry 物理和逻辑几何
/proc/ide/ide?/model/identify 设备识别块
/proc/ide/ide?/model/media 媒体类型
/proc/ide/ide?/model/model 设备标识符
/proc/ide/ide?/model/settings 设备设置
/proc/ide/ide?/model/smart_thresholds IDE磁盘管理阈值
/proc/ide/ide?/model/smart_values IDE磁盘管理值

/proc/interrupts 显示正在使用的中断,以及每个中断的中断次数。例如,您可以通过查看文件/proc/interrupts来检查当前正在使用
哪些中断以及它们的用途
在基于2.4的内核中,有几行被添加到此文件LOC&ERR(这是SMP机器的输出):
在这种情况下,NMI会增加,因为每个定时器中断都会生成一个NMI(不可屏蔽中断),NMI看门狗会使用它来检测查找。
LOC是每个CPU的内部APIC的本地中断计数器。如果IO-APIC总线(连接SMP系统中的CPU的总线)发生错误,则ERR会递增。这意味着
检测到错误,IO-APIC会自动重试传输,因此它不应该是很大的问题,但你应该阅读SMP-FAQ。
在这种情况下,注意2.4中的新irq目录会很有趣。 它可用于将IRQ设置为CPU亲和性,这意味着您可以将IRQ仅“挂钩”到一个CPU,或者排
除CPU处理IRQ。 irq subdir的内容是每个IRQ的一个子目录和一个文件;例如,

/proc/irq/ 每个中断号都有一个文件夹,可以设置一个irq与CPU的亲和性! 
默认情况下,每个IRQ的prof_cpu_mask(这个文件已经不存在了)文件和每个smp_affinity文件的内容都是相同的:
# cat /proc/irq/34/smp_affinity
0f
它是一个位掩码,您可以在其中指定哪些CPU可以处理IRQ,您可以通过执行以下操作来设置它:
#echo 1> /proc/irq/default_smp_affinity(还是改每个中断号里面的比较好一些)
这意味着只有第一个CPU将处理IRQ,但您也可以echo 5(9吧!),这意味着只有第一个和第四个CPU可以处理IRQ。 IRQ路由的方式由
IO-APIC处理,并在允许处理它的所有CPU之间进行循环。 像往常一样,内核拥有的信息比你多,并且比你做得更好,因此默认设置是几
乎是所有人的最佳选择。

irq_set_affinity()可以将中断静态绑定到某一个核上! https://blog.csdn.net/glmwu/article/details/20773415

/proc/iomem 内存映射(应该是IO内存映射吗)。
/proc/ioports 目前正在使用哪些I / O端口。
/proc/irq irq对cpu的亲和力掩盖。
/proc/isapnp ISA PnP(即插即用)信息
/proc/kcore 系统物理内存的映像(可以是ELF或A.OUT(在2.4中弃用))。这与物理内存的大小完全相同,但并没有真正占用那么多内存;
它是在程序访问它时动态生成的。(记住:除非你将它复制到其他地方,否则/proc下的任何内容都不会占用任何磁盘空间。)
/proc/kmsg 内核输出的消息。这些也被路由到syslog。
/proc/ksyms 内核符号表。
/proc/loadavg 系统的“负载平均值”;系统在过去的1分钟,5分钟和15分钟内完成了多少工作的三个指标。
/proc/locks 内核锁。
/proc/meminfo 有关内存使用情况的信息,包括物理和交换。连接此文件会产生与使用“free”或“top”的前几行类似的结果。
/proc/misc 杂项信息。这是为了在proc文件系统的其余部分中没有真正位置的信息。
/proc/modules 当前加载的内核模块。通常,其输出与'lsmod'命令给出的输出相同。

/proc/mounts 已安装的文件系统
# ls /proc/mounts -l
lrwxrwxrwx 1 root root 11 Sep 24 05:36 /proc/mounts -> self/mounts
/proc/mtrr
有关mtrrs的信息。 (在Intel P6系列处理器(Pentium Pro,Pentium II和更高版本)上,内存类型范围寄存器(MTRR)可用于控制处
理器对内存范围的访问。当PCI上有视频(VGA)卡时,这非常有用或者AGP总线。启用写入组合允许在突发PCI / AGP总线之前将总线写入
传输组合成更大的传输。这可以将图像写入操作的性能提高2.5倍或更多.Cyrix 6x86,6x86MX和M II处理器有地址范围寄存器(ARR),它
提供与MTRR类似的功能。为此,ARR用于模拟MTRR.AMD K6-2(步进8及以上)和K6-3处理器有两个MTRR。这些都是支持的AMD Athlon系列
提供8种Intel风格MTRR.Centaur C6(WinChip)有8个MCR,允许写入组合。这些也是支持。威盛Cyrix III和VIA C3 CPU提供8种Intel风
格的MTRR。)有关更多细节mtrr技术见/usr/src/linux/Documentation/mtrr.txt。

/proc/net 有关网络协议的状态信息文件夹。

IPv6信息
=======================
/proc/net/udp6 UDP套接字(IPv6)
/proc/net/tcp6 TCP套接字(IPv6)
/proc/net/raw6 原始设备统计信息(IPv6)。
/proc/net/igmp6 此主机加入的IP多播地址(IPv6)
/proc/net/if_inet6 IPv6接口地址列表
/proc/net/ipv6_route IPv6的内核路由表。
/proc/net/rt6_stats 全局IPv6路由表统计信息。
/proc/net/sockstat6 套接字统计(IPv6)。
/proc/net/snmp6 Snmp数据(IPv6)

一般网络信息
=======================
/proc/net/arp 内核ARP表。
/proc/net/dev 带统计信息的网络设备
/proc/net/dev_mcast 备正在侦听的Layer2组播组(接口索引,标签,引用数,绑定地址数)。
/proc/net/dev_stat 网络设备状态。
/proc/net/ip_fwchains 防火墙链连接。
/proc/net/ip_fwnames 防火墙链名称。
/proc/net/ip_masq 包含伪装表的目录。
/proc/net/ip_masquerade 主要伪装表。
/proc/net/netstat 网络统计。
/proc/net/raw 原始设备统计。
/proc/net/route 内核路由表。
/proc/net/rpc 包含rpc信息的目录。
/proc/net/rt_cache 路由缓存。
/proc/net/snmp SNMP数据。
/proc/net/sockstat 套接字统计。
/proc/net/tcp TCP套接字。
/proc/net/tr_rif 令牌环RIF路由表。
/proc/net/udp UDP套接字。
/proc/net/unix UNIX域套接字。
/proc/net/wireless 无线接口数据(Wavelan等)。
/proc/net/igmp 此主机加入的IP多播地址。
/proc/net/psched 全局数据包调度程序参数。
/proc/net/netlink PF_NETLINK套接字列表。
/proc/net/ip_mr_vifs 组播虚拟接口列表。
/proc/net/ip_mr_cache 组播路由缓存列表。
您可以使用此信息查看系统中可用的网络设备以及通过这些设备路由的流量。此外,每个Channel Bond接口都有自己的目录。例如,bond0设
备将有一个名为/proc/net/bond0/的目录。它将包含特定于该绑定的信息,例如绑定的当前从属,从属的链接状态以及从属链接失败的次数。


/proc/parport
==============================
/proc/parport目录包含有关系统并行端口的信息。它有一个每个端口的子目录,以端口号(0,1,2,...)命名。
/proc/parport/autoprobe 已获取的任何IEEE-1284设备ID信息。
/proc/parport/devices 使用该端口的设备驱动程序列表。 A +将显示当前使用该端口的设备的名称(它可能不会出现在任何端口上)。
/proc/parport/hardware 并行端口的基地址,IRQ线和DMA通道。
/proc/parport/irq parport用于该端口的IRQ。这是一个单独的文件,允许您通过在(IRQ编号或无)中写入新值来更改它。
/proc/partitions 系统已知的分区表

/proc/pci, /proc/bus/pci PCI总线的弃用的信息。

/proc/rtc 实时时钟
/proc/scsi 如果系统中有SCSI主机适配器,则会在/proc/scsi中找到以此适配器的驱动程序命名的子目录。您还将在/proc/scsi中看到所
有已识别SCSI设备的列表。以驱动程序命名的目录为系统中找到的每个适配器提供一个文件。这些文件包含有关控制器的信息,包括使
用的IRQ和IO地址范围。显示的信息量取决于您使用的适配器。
/proc/self 指向/proc的程序进程目录的符号链接。当两个进程查看/proc时,它们会得到不同的链接。这主要是为了使程序更容易进入其进程目录。
/proc/slabinfo slabinfo文件提供有关slab级别的内存使用情况的信息。 Linux在版本2.2中使用slab池进行页面级别以上的内存管理。常
用对象有自己的slab池(如网络缓冲区,目录缓存等)。
/proc/stat 有关系统的总体/各种统计信息,例如自系统启动以来的页面错误数。

/proc/swaps 交换分区信息
root@ubuntu:/proc/3801# cat /proc/swaps
Filename Type Size Used Priority
/dev/sda5 partition 2094076 0 -1

/proc/sys目录
这不仅是信息的来源,它还允许您更改内核中的参数,而无需重新编译甚至重新启动系统。尝试此操作时要小心,因为它可以优化您的系统并
使其崩溃。建议在实际进行调整之前阅读文档和来源。 /proc中的条目可能在内核版本之间略有变化,因此如果有任何疑问,请查看目录
/usr/src/linux/Documentation中的内核文档。在某些情况下,您可能别无选择,只能在发生错误时重新启动计算机。要更改值,只需将新值
回显到文件中即可。下面在文件系统数据部分给出了一个示例。当然,你需要做“root”才能做到这一点。您可以创建自己的启动脚本,以便在
每次系统启动时执行此操作。

/proc/sys/fs
包含文件系统数据。该子目录包含特定的文件系统,文件句柄,inode,dentry和配额信息。下面是此目录下的一些文件的信息:

dentry-state
目录高速缓存的状态。由于目录条目是动态分配和解除分配的,因此该文件指示当前状态。它包含六个值,其中最后两个未使用且始终为零。其他列出如下:
File 文件内容
nr_dentry 几乎总是零
nr_unused 未使用的缓存条目数
age_limit 输入后的age_limit以秒为单位回收,当内存短缺want_pages内部
dquot-max 文件dquot-max显示最大缓存磁盘配额条目数。
dquot-nr 显示已分配的磁盘配额条目数和可用磁盘配额条目数。如果可用的高速缓存磁盘配额数量非常少,并且您有大量同时发生的系
统用户,则可能需要提高限制。
file-nr和file-max 内核动态分配文件句柄,但此时不再释放它们。 file-max中的值表示Linux内核将分配的最大文件句柄数。当您收到大
量关于用完文件句柄的错误消息时,您可能希望提高此限制。默认值为4096.要更改它,只需将新数字写入文件:
# cat /proc/sys/fs/file-max
4096
# echo 8192 > /proc/sys/fs/file-max
# cat /proc/sys/fs/file-max
8192
这种修订方法对内核的所有可自定义参数都很有用 - 只需将新值echo到相应的文件即可。

file-nr中的三个值表示已分配文件句柄的数量,已使用文件句柄的数量以及最大文件句柄数。当分配的文件句柄接近最大值,但实际使用的
句柄数远远落后时,您在使用文件句柄时遇到了峰值,并且您不需要增加最大值。
# cat /proc/sys/fs/file-nr
7008 0 410986

inode-state,inode-nr和inode-max 与文件句柄一样,内核动态分配inode结构,但还不能释放它们。

inode-max中的值表示inode处理程序的最大数量。此值应该是file-max中的值的3到4倍,因为stdin,stdout和网络套接字还需要一个inode
结构来处理它们。如果您经常用完inode,则应该增加此值。
inode-nr包含来自inode-state的前两项,因此我们将跳转到该文件...
inode-state包含三个实际数字和四个虚拟值。数字是nr_inodes,nr_free_inodes和preshrink(按照出现的顺序)。

nr_inodes 表示系统已分配的inode数。这可能比inode-max略高,因为Linux一次只分配一页。

nr_free_inodes 表示当nr_inodes大于inode-max且系统需要修剪inode列表而不是分配更多时,可用inode和preshrink的数量非零。

super-nr和super-max 同样,超级块结构由内核分配,但未释放。文件super-max包含最大数量的超级块处理程序,其中super-nr显示当前分
配的数量。每个安装的文件系统都需要一个超级块,因此如果您计划安装大量文件系统,则可能需要增加这些数字。

binfmt_misc 这处理内核对其他二进制格式的支持。 binfmt_misc提供了向内核注册其他二进制格式而无需编译其他模块/内核的功能。因此,
binfmt_misc需要知道二进制文件的开头或文件扩展名的幻数。它的工作原理是维护一个包含二进制格式描述的结构的链接列表,包括带
有大小(或文件扩展名),偏移和掩码以及解释器名称的魔术。根据请求,它调用给定的解释器,将原始程序作为参数,如binfmt_java
和binfmt_em86以及binfmt_mz。由于binfmt_misc没有定义任何默认的二进制格式,因此您必须注册其他二进制格式。 binfmt_misc中有
两个常规文件,每个注册格式有一个文件。两个通用文件是注册和状态。要注册新的二进制格式,您必须发出命令echo:name:type:
offset:magic:mask:interpreter:> / proc / sys / fs / binfmt_misc / register以及相应的名称(/ proc-dir条目的名称) )
,offset(默认为0,如果省略),magic,mask(可以省略,默认为所有0xff),最后但并非最不重要的是,要调用的解释器(例如,
test / bin / echo)。对于通常的魔术匹配,类型可以是M,对于文件扩展名匹配,可以是E(给予扩展代替魔法)。如果你在文件
/proc / sys / fs / binfmt_misc / status上做了一个cat,你将获得binfmt_misc的当前状态(启用/禁用)。通过回显0(禁用)或1
(启用)或-1(注意:这将清除所有以前注册的二进制格式)更改状态为状态。例如echo 0> status以禁用binfmt_misc(临时)。
每个注册的处理程序在/ proc / sys / fs / binfmt_misc中都有一个条目。这些文件执行与status相同的功能,但其范围仅限于实际
的二进制格式。通过'cating'此文件,您还可以获得有关binfmt的解释器/魔法的所有相关信息。 binfmt_misc(模拟binfmt_java)的
使用示例如下:
cd /proc/sys/fs/binfmt_misc
echo ':Java:M::xcaxfexbaxbe::/usr/local/java/bin/javawrapper:'
> register
echo ':HTML:E::html::/usr/local/java/bin/appletviewer:'
> register
echo ':Applet:M::<!--applet::/usr/local/java/bin/appletviewer:' >
register
echo ':DEXE:M::x0eDEX::/usr/bin/dosexec:' < register

这四行增加了对Java可执行文件和Java applet的支持(比如binfmt_java,另外识别.html扩展名,不需要将<! - applet>放到每个
applet文件中)。 您还必须安装JDK和shell脚本/usr/local/java/bin/javawrapper。 它解决了Java文件名处理的破坏问题。
要添加Java二进制文件,只需在路径中的某个位置创建指向类文件的链接。


/proc/sys/kernel
此目录反映了一般内核行为,内容将取决于您的配置。在这里,您将找到最重要的文件,以及它们的含义以及如何使用它们的说明。

/proc/sys/kernel/acct
该文件包含三个值;高水位,低水位和频率。仅在启用BSD样式的进程计数时才存在。这些值控制其行为。如果日志所在的文件系统上的可用
空间低于低水位百分比,则会计暂停。如果超过高水位百分比,则会计恢复。频率决定了检查可用空间量的频率(值以秒为单位)。默认设
置为:4,2和30.即,如果空闲时间少于2%,则暂停计费;如果我们的值为3%或更高,则恢复它;考虑有效30秒有效空间的信息

/proc/sys/kernel/ctrl-alt-del
当此文件中的值为0时,将捕获ctrl-alt-del并将其发送到init程序以处理正常重新启动。但是,当该值大于零时,Linux对此组合键的反应
将立即重新启动,而不会sync其脏缓冲区。应该注意的是,当一个程序(如dosemu)的键盘处于原始模式时,ctrl-alt-del会在程序到达内
核tty层之前被程序截获,由程序决定要做什么做它。

/proc/sys/kernel/domainname, /proc/sys/kernel/hostname
可以控制这些文件以设置框的NIS域名和主机名。对于经典的darkstar.frop.org,一个简单的:
#echo“darkstar”> /proc/sys/kernel/hostname
#echo“frop.org”> /proc/sys/kernel/domainname
就足以设置你的主机名和NIS域名。 /proc/sys/kernel/osrelease,/proc/sys/kernel/ostype,/proc/sys/kernel/version名称使得这些字
段包含的内容非常明显:
#cat /proc/sys/kernel/osrelease 查看内核release版本
2.2.12
#cat /proc/sys/kernel/ostype 查看内核类型
Linux
#cat /proc/sys/kernel/version 查看系统的版本
#4 Fri Oct 1 12:41:14 PDT 1999

文件osrelease和ostype应该足够清楚。版本需要更多澄清。 #4表示这是从此源代码库构建的第4个内核,它表示内核构建的时间之后的日期。
调整这些值的唯一方法是重建内核。

/proc/sys/kernel/panic
表示系统panic后系统自动重新启动等待的时间秒数。使用软件看门狗时,建议的设置为60.如果设置为0,则禁用内核严重错误后的自动
重新启动,这是默认设置。

/proc/sys/kernel/printk
printk中的四个值分别表示:
* console_loglevel,* default_message_loglevel,* minimum_console_level和* default_console_loglevel。
这些值会在打印或记录来自内核内部的错误消息时影响printk()行为。有关不同日志级别的更多信息,请参阅syslog(2)。

/proc/sys/kernel/console_loglevel 优先级高于此的消息将打印到控制台。
/proc/sys/kernel/default_message_level 没有明确优先级的消息将以此优先级打印。
/proc/sys/kernel/minimum_console_loglevel 可以设置console_loglevel的最小(最高)值。
/proc/sys/kernel/default_console_loglevel console_loglevel的默认值。

/proc/sys/kernel/sg-big-buff
此文件显示通用SCSI(sg)缓冲区的大小。此时,您无法对其进行调整,但您可以通过编辑include/scsi/sg.h并更改SG_BIG_BUFF的值来在
编译时更改它。如果您使用带SANE的扫描仪(Scanner Access Now Easy),您可能希望将其设置为更高的值。有关此问题,请参阅SANE文档。

/proc/sys/kernel/modprobe
modprobe程序二进制文件所在的位置。内核使用该程序按需加载模块。

/proc/sys/vm目录
===================
此目录中的文件可用于调整Linux内核的虚拟内存(VM)子系统的操作。此外,其中一个文件(bdflush)对磁盘使用有一些影响。

nfract
此参数控制缓冲区高速缓存中的最大脏缓冲区数。 Dirty意味着仍然必须将缓冲区的内容写入磁盘(而不是干净的缓冲区,这可能只是被遗
忘)。将其设置为更高的值意味着Linux可以长时间延迟磁盘写入,但这也意味着当内存变短时,它必须立即执行大量I/O.较低的值将
更均匀地分散磁盘I/O.

ndirty
Ndirty给出了bdflush一次可以写入磁盘的最大脏缓冲区数。较高的值意味着延迟的突发I/O,而当bdflush没有经常被唤醒时,较小的值可能
导致内存不足。

nrefill
这是调用refill_freelist()时bdflush将添加到空闲缓冲区列表中的缓冲区数。有必要事先分配空闲缓冲区,因为缓冲区的大小通常与内存页面不同,并且需要事先进行一些簿记。数字越大,浪费的内存越多,refill_freelist()运行的频率就越低。

nref_dirt
当refill_freelist()遇到超过nref_dirt脏缓冲区时,它将唤醒bdflush。

age_buffer,age_super
最后,age_buffer和age_super参数控制Linux在将脏缓冲区写入磁盘之前等待的最长时间。该值以jiffies(clockticks)表示,每秒的jiffies数为100. Age_buffer是数据块的最大年龄,而age_super是文件系统元数据。

buffermem
此文件中的三个值控制缓冲区内存应使用多少内存。百分比计算为系统总内存的百分比。

这个值是:

min_percent
这是应该在缓冲存储器上花费的最小内存百分比。

borrow_percent
当Linux内存不足,并且缓冲区缓存使用的内存超过分配时,内存管理(MM)子系统将比其他内存更多地修剪缓冲区缓存以进行补偿。

max_percent
这是可用于缓冲存储器的最大内存量。

freepages
该文件包含三个值:min,low和high:

min
当系统中的空闲页数达到此数时,只有内核可以分配更多内存。

low
如果空闲页数低于此点,则内核会开始积极地进行交换。

high
内核试图保持这么多的内存空闲;如果内存低于这一点,内核开始轻轻交换,希望它永远不必进行真正积极的交换。

kswapd
Kswapd是内核交换守护进程。也就是说,kswapd是内核的一部分,它在碎片或完整时释放内存。由于每个系统都不同,您可能需要对系统的
这一部分进行一些控制。该文件包含三个数字:
tries_base
kswapd尝试在一轮中释放的最大页数是根据此数字计算的。通常这个数字将除以4或8(参见mm/vmscan.c),因此它没有看起来那么大。当您
需要增加交换带宽时,您需要增加此数量。
tries_min
这是kswapd每次调用时尝试释放页面的最小次数。基本上它只是确保kswapd释放某些页面,即使它被调用时具有最低优先级。
swap_cluster
这可能是对系统性能的最大影响。 swap_cluster是kswapd在一个回合中写入的页数。你会希望这个值很大,以便kswapd在大块中执行其I / O并且磁盘不必经常搜索,但是你不希望它太大,因为它会泛滥请求队列。

overcommit_memory
该文件包含一个值。以下算法用于判断是否有足够的内存:如果overcommit_memory的值为正,则总是有足够的内存。这是一个有用的功能,
因为程序通常malloc()大量的内存'以防万一',而它们只使用它的一小部分。将此值保留为0将导致这样一个巨大的malloc()失败,而实
际上系统有足够的内存供程序运行。另一方面,启用此功能可能会导致内存不足并使系统崩溃,因此大型和/或重要服务器需要将此值设置为
0。
pagecache
此文件与buffermem执行的工作完全相同,只有此文件控制内存映射和文件的通用缓存所允许的内存量。您不希望最低级别太低,否则当内存
紧张或碎片很高时,您的系统可能会崩溃。

pagetable_cache
内核在每个处理器缓存中保留了许多页表(这对SMP系统有很大帮助)。 ca.

swapctl
该文件包含不少于8个变量。所有这些值都由kswapd使用。前四个变量sc_max_page_age,sc_page_advance,sc_page_decline和sc_page_initial_age
用于跟踪Linux的页面老化。页面老化是一种簿记方法,用于跟踪经常使用的内存页面,以及可以换出哪些页面而不会产生任何后果。
当交换页面时,它从sc_page_initial_age(默认为3)开始,当页面被kswapd扫描时,其年龄根据以下方案进行调整。
如果自上次扫描时使用了该页面,则其年龄会增加sc_page_advance(默认值为3)。其中最大值由sc_max_page_age给出(默认为20)。否则(意味着它没有被使用)它的年龄减少了sc_page_decline(默认值1)。
当页面达到0岁时,就可以将其换出。
变量sc_age_cluster_fract,sc_age_cluster_min,sc_pageout_weight和sc_bufferout_weight可用于控制kswapd在交换页面时的主动性。

Sc_age_cluster_fract用于计算kswapd扫描进程的页数。使用的公式是:(sc_age_cluster_fract除以1024)乘以常驻集大小

因此,如果您希望kswapd扫描整个进程,sc_age_cluster_fract需要具有1024. kswapd将扫描的最小页数由sc_age_cluster_min表示,这样
做kswapd也将扫描小进程。 sc_pageout_weight和sc_bufferout_weight的值用于控制kswapd为交换一个页面/缓冲区而尝试的次数。这些值
可用于微调用户页面和缓冲区/高速缓存存储器之间的比率。当您发现Linux系统正在交换太多进程页以满足缓冲区内存需求时,您可能希望
增加sc_bufferout_weight,或者减少sc_pageout_weight的值。

/proc/sys/dev
设备特定参数。目前只支持CDROM驱动器,对于那些,只有一个只读文件包含有关连接到系统的CD-ROM驱动器的信息:
> cat /proc/sys/dev/cdrom/info CD-ROM信息,
Id:cdrom.c 2.55 1999/04/25驱动器名称:sr0 hdb驱动器速度:32 40驱动器插槽数:1 0可以关闭托盘:1 1可以打开托盘:
1 1可以锁定托盘:1 1可以更改速度:1 1可以选择磁盘:0 1可以读取多会话:1 1可以读取MCN:1 1报告媒体已更改:
1 1可以播放音频:1 1您可以看到两个驱动器,sr0和hdb,以及它们的功能列表。

SUNRPC
/proc/sys/sunrpc
该目录包含四个文件,用于启用或禁用RPC函数NFS,NFS-daemon,RPC和NLM的调试。默认值为0.可以将它们设置为1以打开调试。
(每个默认值为0)

/proc/sys/net
内核网络部分的接口位于/proc/sys/net中。下表显示了所有可能的子目录。根据内核的配置,您可能只看到其中的一部分。我们的主要关注
点是IP网络,因为AX15,X.25和DEC Net只是Linux世界中的次要参与者。您是否希望查看在线文档和内核源代码,以获取此处未涉及的协议
的参数的详细视图。在本节中,我们将讨论上面列出的子目录。由于默认值适合大多数需求,因此无需更改这些值。

一般参数
/proc/sys/net/core
网络核心选项
rmem_default 套接字接收缓冲区的默认设置(以字节为单位)。
rmem_max 最大接收套接字缓冲区大小(字节)。
wmem_default 套接字发送缓冲区的默认设置(以字节为单位)。
wmem_max 最大发送套接字缓冲区大小(字节)。
message_burst和message_cost 这些参数用于限制从网络代码写入内核日志的警告消息。他们强制执行速率限制,无法进行拒绝服务攻击。
较高的message_cost因子导致将写入的消息更少。 Message_burst控制何时删除邮件。默认设置将警告消息限制为每五秒钟一次。
netdev_max_backlog 在INPUT端排队的最大数据包数,当接口接收数据包的速度比内核快时,可以处理它们。
optmem_max 每个插槽允许的最大辅助缓冲区大小。辅助数据是具有附加数据的struct cmsghdr结构序列。

UNIX DOMAIN SOCKETS
/proc/sys/net/unix Unix域套接字的参数
此子目录中只有两个文件。它们控制删除和销毁套接字描述符的延迟。


PV4
/proc/sys/net/ipv4
IPV4设置。 IP版本4仍然是Unix网络中最常用的协议。它将在未来几年内被IP版本6取代,但目前它已成为互联网的事实标准,并在全球大多
数网络环境中使用。由于此协议的重要性,我们将深入研究控制Linux内核的Ipv4子系统行为的子树。

让我们从/proc/sys/net/ipv4中的条目开始。它里面有大量的sysfs文件

ICMP设置
icmp_echo_ignore_all和icmp_echo_ignore_broadcasts
如果内核应忽略所有ICMP ECHO请求,或仅忽略广播和多播地址的请求,则打开(1)或关闭(0)。

请注意,如果您接受带有广播/多播目的地址的ICMP回应请求,则您的网络可能会被用作对其他主机的拒绝服务数据包泛滥攻击的爆炸。

icmp_destunreach_rate,icmp_echoreply_rate,icmp_paramprob_rate和icmp_timeexeed_rate
设置将ICMP数据包发送到特定目标的限制。值为零会禁用所有限制。任何正值都会以百分之一秒为单位设置最大打包速率(在Intel系统上)。

IP设置
ip_autoconfig
如果主机通过RARP,BOOTP,DHCP或类似机制接收其IP配置,则此文件包含第一个文件。否则它为零。

ip_default_ttl
IPv4接口的TTL(生存时间)。这只是数据包可以传输的最大跳数。

ip_dynaddr
在接口地址更改时启用动态套接字地址重写。这对于具有更改IP地址的拨号界面非常有用。

ip_forward
启用或禁用接口之间的IP包转发。更改此值会将所有其他参数重置为其默认值。如果内核配置为主机或路由器,它们会有所不同。

ip_local_port_range
TCP和UDP用于选择本地端口的端口范围。包含两个数字,第一个数字是最低端口,第二个数字是最高本地端口。默认值为1024-4999。对于高
使用率系统,应更改为32768-61000。

ip_no_pmtu_disc
全局切换到关闭路径MTU发现。它也可以由应用程序或每个路由基于每个插槽设置。

ip_masq_debug
启用/禁用IP伪装的调试。


IP碎片设置
ipfrag_high_trash和ipfrag_low_trash
用于重组IP段的最大内存。当为此目的分配ipfrag_high_thrash字节的内存时,片段处理程序将丢弃数据包,直到达到ipfrag_low_thrash。

ipfrag_time
将IP片段保留在内存中的时间(以秒为单位)。

TCP设置
tcp_ecn
此文件控制IPv4标头中ECN位的使用,这是一个关于显式拥塞通知的新功能,但是某些路由器和防火墙会阻止具有此位设置的流量,因此可能
需要将0 echo到/proc/sys/net/ipv4/tcp_ecn,如果你想与这个网站交谈。有关详细信息,请阅读RFC2481。

tcp_retrans_collapse
与某些损坏的打印机的错误与错误的兼容性。在重新传输时,尝试发送更大的数据包以解决某些TCP堆栈中的错误。可以通过将其设置为零来
关闭。

tcp_keepalive_probes
TCP发送的保持活动探测数,直到它确定连接断开。

tcp_keepalive_time

?当启用保持活动时,TCP发送保持活动消息的频率。默认值为2小时。

tcp_syn_retries
将重新传输TCP连接尝试的初始SYN的次数。不应高于255.这只是传出连接的超时,对于传入连接,重传次数由tcp_retries1定义。

tcp_sack
在RFC2018之后启用选择确认。

tcp_timestamps
启用RFC1323中定义的时间戳。

tcp_stdurg
启用TCP紧急指针字段的严格RFC793解释。默认情况下,使用指向紧急数据后第一个字节的紧急指针的BSD兼容解释。 RFC793解释是指向紧急
数据的最后一个字节。启用此选项可能会导致互操作性问题。默认情况下禁用。

tcp_syncookies
仅在使用CONFIG_SYNCOOKIES编译内核时才有效。当套接字的syn backlog队列溢出时发出syncookies。这是为了抵御常见的“同步洪水袭击”。默认情况下禁用。请注意,套接字待办事项的概念已被放弃。这意味着对等体可能无法从启用了syncookies的过载服务器接收可靠的错误消息。

tcp_window_scaling
启用RFC1323中定义的窗口缩放。

tcp_fin_timeout
在套接字始终关闭之前接收最终FIN所花费的时间长度(以秒为单位)。这严格违反了TCP规范,但需要防止拒绝服务攻击。

tcp_max_ka_probes
表示每个慢速计时器运行时发送的活动探测数量。不应设置得太高以防止爆发。

tcp_max_syn_backlog
每个套接字积压队列的长度。从Linux 2.2开始,listen(2)中指定的积压仅指定已建立套接字的积压队列的长度。当更多连接请求到达时,
Linux开始丢弃数据包。启用syncookies时,仍会回答数据包,并且有效地忽略最大队列。

tcp_retries1
定义在放弃之前重新传输TCP连接请求的答案的频率。

tcp_retries2
定义在放弃之前重新传输TCP数据包的频率。


/proc/sys/net/ipv4/conf
在这里,您将找到系统知道的每个接口的一个子目录和一个名为all的目录。 all子目录中的更改会影响所有接口,而其他子目录中的更改只
会影响一个接口。所有目录都具有相同的条目:
# ls /proc/sys/net/ipv4/conf/
all default lo my-eth0

accept_redirects
此开关决定内核是否接受ICMP重定向消息。如果为常规主机配置内核,则为默认值为“yes”,对于路由器配置,则为“no”。

accept_source_route
是否应接受或拒绝源路由包。默认值取决于内核配置。路由器的“是”和主机的“否”。

bootp_relay
接受源地址为0.b.c.d且目的地不是本地主机的数据包。假设BOOTP中继守护程序将捕获并转发此类数据包。默认值为0。

forwarding
在此接口上启用或禁用IP转发。

log_martians
使用没有已知路由到内核日志的源地址记录数据包。

mc_forwarding
进行组播路由。内核需要使用CONFIG_MROUTE进行编译,并且需要多播路由守护进程。

proxy_arp
(1)或不(0)执行代理ARP。

rp_filter
整数值确定是否应进行源验证。 1表示是,0表示否。默认情况下禁用,但本地/广播地址欺骗始终打开。如果在路由器上将此值设置为1,
该路由器是网络到网络的唯一连接,则可以防止对内部网络的欺骗攻击(外部地址仍然可以被欺骗),而无需其他防火墙规则。

secure_redirects
仅接受默认网关列表中列出的网关的ICMP重定向消息。默认情况下启用。

shared_media
如果未设置,则内核不会假定此设备上的不同子网可以直接通信。默认设置为“是”。

send_redirects
确定是否将ICMP重定向发送到其他主机。

路由设置
目录/proc/sys/net/ipv4/route包含几个控制路由问题的文件。

error_burst和error_cost
这些参数用于限制从路由代码写入内核日志的警告消息。 error_cost因子越高,写入的消息就越少。 Error_burst控制何时删除邮件。默认
设置将警告消息限制为每五秒钟一次。

flush
写入此文件会导致路由缓存刷新。

gc_elastic,gc_interval,gc_min_interval,gc_tresh,gc_timeout
用于控制路由缓存的垃圾收集算法的频率和行为的值。

max_size
路由缓存的最大大小。一旦缓存达到此大小,旧条目将被清除。

max_delay,min_delay
用于刷新路由缓存的延迟。

redirect_load,redirect_number
确定是否应将更多ICPM重定向发送到特定主机的因素。一旦达到负载限制或最大重定向次数,就不会发送重定向。

redirect_silence
重定向超时。在此期间之后,即使已停止重定向,也会再次发送重定向,因为已达到负载或数量限制。

/proc/sys/net/ipv4/neigh
网络邻居处理。它包含有关如何处理与直接邻居(连接到同一链接的节点)的连接的设置。正如我们在conf目录中看到的那样,有一个默认
子目录,它保存默认值,每个接口都有一个目录。目录的内容是相同的,但有一个例外,即默认设置包含设置垃圾收集参数的其他选项。

在界面目录中,您将找到以下条目:

base_reachable_time
用于计算RFC2461中指定的随机可达时间值的基值。

retrans_time
重新发送的Neighbor Solicitation消息之间的时间,以jiffies(1/100秒)表示。用于解析地址并确定邻居是否无法访问。

unres_qlen
挂起的arp请求的最大队列长度 - 在仍解析ARP地址时从其他层接受的数据包数。

anycast_delay
jiffies(1/100秒)中邻居请求消息的随机延迟响应的最大值。尚未实现(Linux尚未支持任播)。

ucast_solicit
单播请求的最大重试次数。

mcast_solicit
多播请求的最大重试次数。

delay_first_probe_time
如果邻居可达,则第一次探测延迟。 (见gc_stale_time)

locktime
如果旧的至少是锁定时间旧的,则ARP /邻居条目仅替换为新的。这可以防止ARP缓存抖动。

proxy_delay
在回答我们有代理ARP条目的ARP请求之前的最长时间(实时是随机[0..proxytime])。在某些情况下,这用于防止网络泛滥。

proxy_qlen
延迟代理arp计时器的最大队列长度。 (见proxy_delay)。

app_solcit
确定要发送到用户级ARP守护程序的请求数。使用0关闭。

gc_stale_time
确定检查过时ARP条目的频率。在ARP条目过期后,它将再次被解析(当IP地址迁移到另一台机器时这很有用)。当ucast_solicit大于0时,
它首先尝试将ARP数据包直接发送到已知主机。当失败且mcast_solicit大于0时,将广播ARP请求。

APPLETALK
/proc/sys/net/appletalk
加载Appletalk时保存Appletalk配置数据。可配置的参数是:
AARP-到期时间 我们在ARP条目到期之前保留的时间量。用于老化主机老化。
AARP - 解决时间 我们将花费多少时间来尝试解析Appletalk地址。
AARP的重新传输限制 放弃之前我们将重新发送查询的次数。
AARP-TICK时间 控制检查到期的速率。

/proc/net/appletalk
保存计算机上的活动Appletalk套接字列表。这些字段表示DDP类型,本地地址(网络:节点格式),远程地址,发送待处理队列的大小,接
收队列的大小(等待应用程序读取的字节)状态和拥有插座。

/proc/net/atalk_iface
列出为appletalk配置的所有接口。它显示接口的名称,其Appletalk地址,该地址上的网络范围(或第1阶段网络的网络号)以及接口的状态。

/proc/net/atalk_route
列出每个已知的网络路由。它列出了路由通向的目标(网络),路由器(可能直接连接),路由标志以及路由使用的设备。

IPX
IPX协议在proc/sys/net中没有可调参数值,但它确实提供了proc/net/ipx。这将列出每个IPX套接字,以Novell格式提供本地和远程地址(即
network:node:port)。根据Novell的奇怪传统,除了端口之外的所有东西都是十六进制的。对于未绑定到特定远程地址的套接字,将显示
Not_Connected。 Tx和Rx队列大小表示待发送和接收的字节数。状态指示套接字所处的状态,并且uid是套接字的拥有uid。

ipx_interface
列出所有IPX接口。对于每个接口,它给出网络号,节点号,并指示网络是否是主网络。它还指示它绑定到哪个设备(或内部网络的内部)和
帧类型(如果适用)。 Linux支持IPX的802.3,802.2,802.2 SNAP和DIX(蓝皮书)以太网帧。

ipx_route
表中包含IPX路由列表。对于每个路由,它为内部网络提供目标网络,路由器节点(或直接)和路由器(或已连接)的网络地址。

/proc/sysvipc
SysVIPC资源的信息(msg,sem,shm)(2.4)

/proc/tty
有关可用和实际使用的tty的信息可以在目录/proc/tty中找到。您将在此目录中找到驱动程序和行规则的条目。

/proc/tty/drivers
驱动程序列表及其用法。

/proc/tty/ldiscs
注册线路规程。

/proc/tty/driver/serial
使用统计和单个tty线的状态。

要查看当前正在使用的tty,您只需查看文件/proc/tty/drivers:

请注意,虽然上述文件往往是易于阅读的文本文件,但它们有时可能以不易消化的方式进行格式化。 有许多命令只是读取上述文件并格式化
它们以便于理解。 例如,free程序读取/ proc / meminfo并将以字节为单位的数量转换为千字节(并添加更多信息)。

/proc/uptime
系统启动的时间。

/proc/version
内核版本。

/proc/video
BTTV视频资源信息。

# cat /sys/kernel/debug/usb/devices 列出所有的usb设备
# cat /proc/bus/input/devices 列出所有input设备

root@g6s:/mytest# cat /proc/partitions
major minor #blocks name
1 0 98304 ram0
179 0 15392768 mmcblk0
179 1 50176 mmcblk0p1
179 2 1024 mmcblk0p2
179 64 8192 mmcblk0boot1
179 32 8192 mmcblk0boot0
8 0 7782400 sda
8 1 7780352 sda1


/proc/sys/fs/file-max
该文件指定了可以分配的文件句柄的最大数目

# cat /proc/version
Linux version 4.14.35 (oe-user@oe-host) (gcc version 7.3.0 (GCC)) #1 SMP PREEMPT Fri Oct 19 07:25:25 UTC 2018
可以用来查看内核版本,编译器版本,内核编译时间

/proc/devices 已经加载的设备和分类

/proc/uptime 系统已经运行了多久

原文地址:https://www.cnblogs.com/hellokitty2/p/9697439.html