Linux文件系统下proc目录详解

合集下载

linux proc文件夹介绍

linux proc文件夹介绍

/proc/stat 所有的CPU活动信息
/proc/sysrq-trigger 使用echo命令来写这个文件的时候,远程root用户可以执行大多数的系统请求关键命令,就好像在本地终端执行一样。要写入这个文件,需要把/proc/sys/kernel/sysrq不能设置为0。这个文件对root也是不可读的
/proc/irq 中断请求设备信息
/proc/net 网卡设备信息
/proc/scsi scsi设备信息
/proc/tty tty设备信息
/proc/net/dev 显示网络适配器及统计信息
/proc/vmstat 虚拟内存统计信息
/proc/vmcore 内核panic时的内存映像
除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的 PID号为目录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个link。
2. 子文件或子文件夹
/proc/buddyinfo 每个内存区中的每个order有多少块可用,和内存碎片问题有关
/proc/kcore 代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb
/proc/kmsg 记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理
/proc/loadavg 根据过去一段时间内CPU和IO的状态得出的负载状态,与uptime命令有关
Linux下/proc目录简介
1. /proc目录
Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

linux操作系统目录结构详解

linux操作系统目录结构详解

linux操作系统目录结构详解linux操作系统目录结构详解为了帮助广大考试新手们更加顺利地复习备考,店铺整理了关于Linux目录结构的备考资料,希望能够对大家有所帮助。

linux 目录结构/: 根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中/bin:/usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。

/boot: 放置linux系统启动时用到的一些文件。

/boot/vmlinuz为linux的内核文件,以及/boot/gurb.建议单独分区,分区大小100M 即可/dev: 存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt./etc: 系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。

注:/etc/X11存放与x windows有关的设置。

/home: 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。

建议单独分区,并设置较大的磁盘空间,方便用户存放数据/lib:/usr/lib:/usr/local/lib: 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules./lost+fount: 系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。

如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found/mnt:/media: 光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。

Linux中proc目录下文件详解

Linux中proc目录下文件详解
示例:
[root@localhost ~]# cat /proc/loadavg 0.11 0.16 0.14 3/126 3912
-------------------------------------------------------------------------------/proc/locks 文件 这个文件包含在打开的文件上的加锁信息。文件中的每一行描述了特定文件和文档上的加锁信息以及对文 件施加的锁的类型。内核也可以需要时对文件施加强制性锁。 示例: [root@localhost redhat]# cat /proc/locks 1: POSIX ADVISORY READ 3822 03:0a:1067117 0 EOF 2: POSIX ADVISORY READ 3822 03:0a:1067138 0 EOF 3: POSIX ADVISORY WRITE 3326 03:0a:2326540 0 EOF 4: POSIX ADVISORY WRITE 2639 03:0a:2966595 0 EOF 5: FLOCK ADVISORY WRITE 2591 03:0a:2966586 0 EOF 6: POSIX ADVISORY WRITE 2540 03:0a:2966578 0 EOF 7: POSIX ADVISORY WRITE 2530 03:0a:2966579 0 EOF 8: POSIX ADVISORY WRITE 2402 03:0a:2966563 0 EOF 9: POSIX ADVISORY WRITE 2371 03:0a:2966561 0 EOF --------------------------------------------------------------------------------

proc 文件系统

proc 文件系统

该函数将创建一个目录,父目录为parent。
proc文件系统的编程接口
删除节点(文件或者目录)remove_proc_entry()
void remove_proc_entry ( const char *name, struct proc_dir_entry *parent)
该函数将删除一个proc节点(按文件名删除)。
proc文件系统的编程接口
以上五个创建节点的函数在内核中的实现流程:
通过proc_create为结构申请空间,并进行一些初始化工 作。 proc_register则进一步填写结构中的域。并完成注册工作
删除节点的函数在内核中的实现流程:
则是先调用clear_bit和proc_kill_inodes,注销inode结构 ,如果引用数为0,则调用free_proc_entry释放结构对应 的空间;否则置一个删除标志,不释放空间
proc文件系统的编程接口
创建设备文件proc_mknod()
struct proc_dir_entry *proc_mknod( const char *name, mode_t mode, struct proc_dir_entry *paren建一个名字为name的设 备文件,文件类型和权限为mode,设备号为rdev 。
操作系统 课程设计
proc 文件系统
proc
proc 文件系统是 Linux 中的特殊文件系统,提供 中的特殊文件系统, 给用户一个可以了解内核内部工作过程的可读窗 口,在运行时访问内核内部数据结构、改变内核 在运行时访问内核内部数据结构、 设置的机制。 设置的机制。
保存系统当前工作的特殊数据,但并不存在于任何物 理设备中; 对其进行读写时,才根据系统中的相关信息即时生成 ;或映射到系统中的变量或数据结构; proc 被称为‘伪文件系统’; 其挂接目录点固定为/proc; ‘man proc’ 进行了详细说明。

linux常见文件路径

linux常见文件路径

linux常见文件路径
Linux中的常见文件路径包括以下几种:
1. / :根目录,Linux文件系统的起点。

2. /bin :存放用户二进制文件(可执行文件)的目录。

3. /boot :存放Linux系统引导所需的文件,包括内核文件和引导加载程序。

4. /dev :存放设备文件,包括磁盘、键盘、鼠标等外部设备所对应的文件。

5. /etc :存放系统配置文件,包括系统服务的配置文件和用户账户的配置文件等。

6. /home :存放用户的主目录,每个用户都有一个独立的主目录。

7. /lib :存放系统库文件,包括Linux系统所需的共享库文件。

8. /media :存放可移动媒体设备(如U盘、光盘等)的挂载点。

9. /mnt :存放临时文件系统的挂载点。

10. /opt :存放可选的应用程序软件包的目录。

11. /proc :存放Linux内核的虚拟文件系统,包括系统内核的运行状态信息和进程信息等。

12. /root :超级用户的主目录。

13. /sbin :存放超级用户二进制文件的目录,包括系统管理工具等。

14. /tmp :存放临时文件的目录,保存着Linux系统运行过程中产生的临时文件。

15. /usr :存放用户安装的应用程序、库文件、文档等,是一个较大的目录。

16. /var :存放系统运行过程中产生的变化文件,包括日志文件、临时文件等。

以上是Linux中的常见文件路径,了解这些路径对于日常使用和系统管理都非常有帮助。

linux pid 路径

linux pid 路径

linux pid 路径Linux操作系统中,每个进程都有一个唯一的进程标识符(PID)。

PID是一个数字,用于标识进程在操作系统中的身份。

在Linux系统中,PID路径是指一个进程在文件系统中的路径,可以通过该路径找到对应进程的相关信息。

在Linux系统中,每个进程都有一个对应的进程目录,该目录的路径为/proc/PID。

其中,PID是进程的标识符。

进入该目录后,可以通过查看相应的文件来获取进程的详细信息。

在/proc/PID目录下,有一些重要的文件和目录,如下所示:1. cmdline:该文件保存了进程的启动命令行参数。

通过查看该文件,可以了解进程是如何启动的。

2. environ:该文件保存了进程的环境变量。

通过查看该文件,可以了解进程的运行环境。

3. exe:该文件是进程的可执行文件的链接。

通过查看该文件,可以了解进程的可执行文件路径。

4. fd:该目录保存了进程打开的文件描述符的信息。

通过查看该目录下的文件,可以了解进程打开了哪些文件。

5. status:该文件保存了进程的状态信息,如进程的PID、父进程的PID、进程的运行状态等。

除了以上这些文件外,还有许多其他的文件和目录,保存了进程的其他信息。

通过读取这些文件,可以了解进程的详细信息。

通过PID路径,我们可以对进程进行监控和管理。

比如,我们可以通过读取/proc/PID/status文件获取进程的状态信息,判断进程是否在运行;通过读取/proc/PID/cmdline文件获取进程的启动命令行参数,了解进程是如何启动的;通过读取/proc/PID/fd目录下的文件,了解进程打开了哪些文件。

PID路径在Linux系统中扮演着重要的角色。

通过PID路径,我们可以方便地获取进程的相关信息,进行进程管理和监控。

同时,PID 路径也是Linux系统中进程管理的基础,通过PID路径,操作系统可以对进程进行唯一标识和管理。

PID路径是Linux系统中进程在文件系统中的路径,通过该路径可以找到进程的相关信息。

linux中proc详解

linux中proc详解

linux中proc详解Linux-procproc ⽂件系统在Linux中有额外的机制可以为内核和内核模块将信息发送给进程-- /proc ⽂件系统。

最初设计的⽬的是允许更⽅便的对进程信息进⾏访问(因此得名),现在它被每⼀个有有趣的东西报告的内核使⽤,例如/proc/modules 有模块的列表/proc/meminfo 有内存使⽤的统计表。

使⽤proc ⽂件系统的⽅法和使⽤设备驱动程序⾮常相似--创建⼀个/proc ⽂件需要的所有信息的结构,包括任何处理函数的指针(在我们的例⼦中只有⼀个,当某⼈试图从/proc ⽂件读时调⽤的那⼀个)。

然后,init_module 在内核中登记该结构⽽cleanup_module 注销它。

我们使⽤proc_register_dynamic(这是在2.0 版中的情况,在2.2 版中如果我们将节点设置为0系统将⾃动为我们做到) 的原因是我们不想预先决定我们的⽂件的节点数字,⽽是为防⽌冲突⽽由内核决定它。

通常的⽂件系统存在于磁盘上⽽不是内存中(/proc 在内存中),在这中情况下,节点数是是指向⽂件的索引节点所在的磁盘位置的指针。

节点包含⽂件的信息(例如⽂件的存取权限)和指向磁盘位置或⽂件数据可以被找到的⼏个位置的指针。

因为当⽂件被打开或关闭的时候不能得到调⽤,所以在这个模块中没有地⽅放置MOD_INC_USE_COUNT 和MOD_DEC_USE_COUNT,并且,如果⽂件被打开随后模块被移除,我们没有办法避免后果。

在下⼀章我们会看到⼀个艰难的但更灵活的可以处理/proc⽂件的实现⽅式,它也可以让我们防⽌那个问题。

/os/201202/119552.htmlLinux 内核提供了⼀种通过/proc ⽂件系统,在运⾏时访问内核内部数据结构、改变内核设置的机制。

尽管在各种硬件平台上的Linux 系统的/proc ⽂件系统的基本概念都是相同的,但本⽂只讨论基于intel x86 架构的Linux /proc ⽂件系统。

你不知道的Linux内核中的proc文件系统

你不知道的Linux内核中的proc文件系统

你不知道的Linux内核中的proc文件系统简介procfs文件系统是内核中的一个特殊文件系统。

它是一个虚拟文件系统: 它不是实际的存储设备中的文件,而是存在于内存中。

procfs中的文件是用来允许用户空间的程序访问内核中的某些信息(比如进程信息在 /proc/[0-9]+/中),或者用来做调试用途(/proc/ksyms,这个文件列出了已经登记的内核符号,这些符号给出了变量或函数的地址。

每行给出一个符号的地址,符号名称以及登记这个符号的模块。

程序ksyms、insmod和kmod使用这个文件。

它还列出了正在运行的任务数,总任务数和最后分配的PID。

)这个文档描述了内核中procfs文件系统的使用。

它以介绍所有和管理文件系统相关的函数开始。

在函数介绍后,它还展示了怎么和用户空间通信,和一些小技巧。

在文档的最后,还给出了一个完整的例子。

注意/proc/sys中的文件属于sysctl文件,它们不属于procfs文件系统,被另外一套完全不同的api管理。

seq_fileprocfs在处理大文件时有点笨拙。

为了清理procfs文件系统并且使内核编程简单些,引入了seq_file机制。

seq_file机制提供了大量简单的接口去实现大内核虚拟文件。

seq_file机制适用于你利用结构序列去创建一个返回给用户空间的虚拟文件。

要使用seq_file机制,你必须创建一个”iterator”对象,这个对象指向这个序列,并且能逐个指向这个序列中的对象,此外还要能输出这个序列中的任一个对象。

它听起来复杂,实际上,操作过程相当简单。

接下来将用实际的例子展示到底怎么做。

首先,你必须包含头文件。

接下来,你必须创建迭代器方法:start, next, stop, and show。

start方法通常被首先调用。

这个方法的函数原型是:void *start(struct seq_file *sfile, loff_t *pos);sfile没什么作用,通常被忽略。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux中/proc目录下文件详解(2008-7-20 15:54)Linux中/proc目录下文件详解(一)--------------------------------------------------------------------------------/proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。

可以使用的文件随系统配置的变化而变化。

命令procinfo能够显示基于其中某些文件的多种系统信息。

以下详细描述/proc下的文件。

--------------------------------------------------------------------------------/proc/cmdline文件这个文件给出了内核启动的命令行。

它和用于进程的cmdline项非常相似。

示例:[root@localhost proc]# cat cmdlinero root=LABEL=/ rhgb quiet--------------------------------------------------------------------------------/proc/cpuinfo文件这个文件提供了有关系统CPU的多种信息。

这些信息是从内核里对CPU的测试代码中得到的。

文件列出了CPU的普通型号(386,486,586,686等),以及能得到的更多特定信息(制造商,型号和版本)。

文件还包含了以bogomips表示的处理器速度,而且如果检测到CPU的多种特性或者bug,文件还会包含相应的标志。

这个文件的格式为:文件由多行构成,每行包括一个域名称,一个冒号和一个值。

示例:[root@localhost proc]# cat cpuinfoprocessor : 0vendor_id : AuthenticAMDcpu family : 6model : 8model name : AMD Athlon(tm) XP 1800+stepping : 1cpu MHz : 1530.165cache size : 256 KBfdiv_bug : nohlt_bug : nof00f_bug : nocoma_bug : nofpu : yesfpu_exception : yescpuid level : 1wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnowbogomips : 2998.27--------------------------------------------------------------------------------/proc/devices文件这个文件列出字符和块设备的主设备号,以及分配到这些设备号的设备名称。

示例:[root@localhost /]# cat /proc/devicesCharacter devices:1 mem4 /dev/vc/04 tty4 ttyS5 /dev/tty5 /dev/console5 /dev/ptmx6 lp7 vcs10 misc13 input14 sound29 fb36 netlink116 alsa128 ptm136 pts180 usbBlock devices:1 ramdisk2 fd3 ide09 md22 ide1253 device-mapper254 mdp--------------------------------------------------------------------------------/proc/dma文件这个文件列出由驱动程序保留的DMA通道和保留它们的驱动程序名称。

casade项供用于把次DMA控制器从主控制器分出的DMA行所使用;这一行不能用于其它用途。

示例:[root@localhost ~]# cat /proc/dma4: cascade--------------------------------------------------------------------------------/proc/filesystems文件[/color]这个文件列出可供使用的文件系统类型,一种类型一行。

虽然它们通常是编入内核的文件系统类型,但该文件还可以包含可加载的内核模块加入的其它文件系统类型。

示例:[root@localhost proc]# cat /proc/filesystemsnodev sysfsnodev rootfsnodev bdevnodev procnodev sockfsnodev binfmt_miscnodev usbfsnodev usbdevfsnodev futexfsnodev tmpfsnodev pipefsnodev eventpollfsnodev devptsext2nodev ramfsnodev hugetlbfsiso9660nodev mqueuenodev selinuxfsext3nodev rpc_pipefsnodev autofs--------------------------------------------------------------------------------/proc/interrupts文件这个文件的每一行都有一个保留的中断。

每行中的域有:中断号,本行中断的发生次数,可能带有一个加号的域(SA_INTERRUPT标志设置),以及登记这个中断的驱动程序的名字。

可以在安装新硬件前,像查看/proc/dma和/proc/ioports一样用cat命令手工查看手头的这个文件。

这几个文件列出了当前投入使用的资源(但是不包括那些没有加载驱动程序的硬件所使用的资源)。

示例:[root@localhost SPECS]# cat /proc/interruptsCPU00: 7039406 XT-PIC timer1: 6533 XT-PIC i80422: 0 XT-PIC cascade3: 0 XT-PIC uhci_hcd5: 108 XT-PIC VIA8233, uhci_hcd8: 1 XT-PIC rtc9: 0 XT-PIC acpi10: 0 XT-PIC ehci_hcd11: 17412 XT-PIC uhci_hcd, eth012: 140314 XT-PIC i804214: 37897 XT-PIC ide015: 60813 XT-PIC ide1NMI: 0ERR: 1--------------------------------------------------------------------------------/proc/ioports文件这个文件列出了诸如磁盘驱动器,以太网卡和声卡设备等多种设备驱动程序登记的许多I/O 端口范围。

示例:[root@localhost SPECS]# cat /proc/ioports0000-001f : dma10020-0021 : pic10040-0043 : timer00050-0053 : timer10060-006f : keyboard0070-0077 : rtc0080-008f : dma page reg00a0-00a1 : pic200c0-00df : dma200f0-00ff : fpu0170-0177 : ide101f0-01f7 : ide00376-0376 : ide10378-037a : parport0037b-037f : parport003c0-03df : vga+03f6-03f6 : ide003f8-03ff : serial0800-0803 : PM1a_EVT_BLK0804-0805 : PM1a_CNT_BLK0808-080b : PM_TMR0810-0815 : ACPI CPU throttle0820-0823 : GPE0_BLK0cf8-0cff : PCI conf1dc00-dcff : 0000:00:12.0dc00-dcff : via-rhinee000-e0ff : 0000:00:11.5e000-e0ff : VIA8233e400-e41f : 0000:00:10.0e400-e41f : uhci_hcde800-e81f : 0000:00:10.1e800-e81f : uhci_hcdec00-ec1f : 0000:00:10.2ec00-ec1f : uhci_hcdfc00-fc0f : 0000:00:11.1fc00-fc07 : ide0fc08-fc0f : ide1--------------------------------------------------------------------------------/proc/kcore文件这个文件是系统的物理内存以core文件格式保存的文件。

例如,GDB能用它考察内核的数据结构。

它不是纯文本,而是/proc目录下为数不多的几个二进制格式的项之一。

示例:暂无(因为会打印大量的乱码)--------------------------------------------------------------------------------/proc/kmsg文件这个文件用于检索用printk生成的内核消息。

任何时刻只能有一个具有超级用户权限的进程可以读取这个文件。

也可以用系统调用syslog检索这些消息。

通常使用工具dmesg或守护进程klogd检索这些消息。

示例:暂无--------------------------------------------------------------------------------/proc/ksyms文件这个文件列出了已经登记的内核符号;这些符号给出了变量或函数的地址。

每行给出一个符号的地址,符号名称以及登记这个符号的模块。

程序ksyms,insmod和kmod使用这个文件。

它还列出了正在运行的任务数,总任务数和最后分配的PID。

示例:暂无--------------------------------------------------------------------------------/proc/loadavg文件这个文件给出以几个不同的时间间隔计算的系统平均负载,这就如同uptime命令显示的结果那样。

相关文档
最新文档