/dev和/proc介绍

news/2024/12/23 12:37:42


什么是proc文件系统?

proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可 以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件 系统是动态从系统内核读出所需信息并提交的。它的目录结构如下:

目录名称 目录内容

apm 高级电源管理信息

cmdline 内核命令行

Cpuinfo 关于Cpu信息

Devices 可以用到的设备(块设备/字符设备)

Dma 使用的DMA通道

Filesystems 支持的文件系统

Interrupts 中断的使用

Ioports I/O端口的使用

Kcore 内核核心印象

Kmsg 内核消息

Ksyms 内核符号表

Loadavg 负载均衡

Locks 内核锁

Meminfo 内存信息

Misc 杂项

Modules 加载模块列表

Mounts 加载的文件系统

Partitions 系统识别的分区表

Rtc 实时时钟

Slabinfo Slab池信息

Stat 全面统计状态表

Swaps 对换空间的利用情况

Version 内核版本

Uptime 系统正常运行时间

并不是所有这些目录在你的系统中都有,这取决于你的内核配置和装载的模块。另外,在/proc下还有三个很重要的目录:net,scsi和sys。 Sys目录是可写的,可以通过它来访问或修改内核的参数(见下一部分),而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi 目录不存在。

除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的 PID号为目录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个link。Proc文件系统的名字就是由之而起。进程目 录的结构如下:

目录名称 目录内容

Cmdline 命令行参数

Environ 环境变量值

Fd 一个包含所有文件描述符的目录

Mem 进程的内存被利用情况

Stat 进程状态

Status 进程当前状态,以可读的方式显示出来

Cwd 当前工作目录的链接

Exe 指向该进程的执行命令文件

Maps 内存映象

Statm 进程内存状态信息

Root 链接此进程的root目录

用户如果要查看系统信息,可以用cat命令。

要改变内核的参数,只要用vi编辑或echo参数重定向到文件中即可。下面有一个例子:

# cat /proc/sys/fs/file-max

4096

# echo 8192 > /proc/sys/fs/file-max

# cat /proc/sys/fs/file-max

8192

如果你优化了参数,则可以把它们写成添加到文件rc.local中,使它在系统启动时自动完成修改。

linux /dev目录

 dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外 部设备的驱动程序。这一点和我们常用的windows, dos操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。

  例如:我们在系统中键入:cd /dev/cdrom 我们就可以看到光驱中的文件了。同样道理,我们键入:cd /dev/mouse 就可以看看鼠标的相关文件。在这个目录下,有一个null设备,这个东西本身没有任何意义。如果你向这个目录写入文件或内容,他们统统有去无回。

/dev/null是一个非常有用的字符设备文件,送入这个设备的所有东西都被忽略,如果将任何程序的输出结果重定向到/dev/null,则看不到任何输出信息。甚至于,您可以将某一用户的shell指向/dev/null 以禁止其登陆

/dev/urandom用来生成低质量的随机数序列,不信用cat /dev/urandom try 一下,

(2)设备文件
UNIX系统与边在本系统上的各种设备之间的通讯,通过特别文件来实现,
就程序而言,磁盘是文件,MODEM是文件,甚至内存也是文件.所有连接到系统上
的设备都在/dev目录中有一个文件与其对应.当在这些文件上执行I/O操作时,
由UNIX系统将I/O操作转换成实际设备的动作.例如,文件/dev/mem是系统的内
存,如果cat这个文件,实际上是在终端显示系统的内存.为了安全起见,这个文
件对普通用户是不可读的.因为在任一给定时间,内存区可能含有用户登录口令或运行程序的口令,某部分文件的编辑缓冲区,缓冲区可能含有用ed
-x命令 解密后的文本,以及用户不愿让其他人存取的种种信息. 在/dev中的文件通常称为设备文件,用ls /dev命令可以看看系统中的一
些设备: acuo 呼叫自动拨号器 console 系统控制台 dsknn 块方式操作磁盘分区 kmem 核心内存 mem 内存 lp 打印机
mto 块方式操作磁带 rdsknn 流方式操作的磁盘分区 rmto 流方式操作的磁带 swap 交换区 syscon 系统终端 ttynn
终端口 x25 网络端口 等等

Linux沿袭Unix的风格,将所有设备认成是一个文件。
设备文件分为两种:
块设备文件(b)
字符设备文件(c)

设备文件一般存放在/dev目录下
/dev/hd[a-t]:IDE设备
/dev/sd[a-z]:SCSI设备
/dev/fd[0-7]:标准软驱
/dev/md[0-31]:软raid设备
/dev/loop[0-7]:本地回环设备
/dev/ram[0-15]:内存
/dev/null:无限数据接收设备 ,相当于回收站
/dev/zero:无限零资源
/dev/tty[0-63]:虚拟终端
/dev/ttyS[0-3]:串口
/dev/lp[0-3]:并口
/dev/console:控制台
/dev/fb[0-31]:framebuffer
/dev/cdrom => /dev/hdc
/dev/modem => /dev/ttyS[0-9]
/dev/pilot => /dev/ttyS[0-9]

/dev/console:控制台和/dev/tty[0-63]:虚拟终端的区别与联系
控制抬就好比电视机上的按钮,终端好比遥控板,他们的目的都是控制电视机,但是控制台必须在本地,而终端可以在远端,系统只有一个控制台,叫console,其他的都是终端

/dev目录下的节点是怎么创建的

devf或者udev会自动帮你创建得。

kobject是sysfs文件系统的基础,udev通过监测、检测sysfs来获取新创建的设备的,搜索一下版面,以前有udev的机制论述。


http://www.niftyadmin.cn/n/3060839.html

相关文章

硬链接和软链接的区别

一 链接文件链接有两种方式,软链接和硬链接。 1 软链接文件 软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。链接文件甚至可以链接不存在的文件,这就产生一般称之为&qu…

Netty(二十三)(项目篇)Netty准备之数据分库分表的策略

根据uuid或者是id的值来判断选择的那张表,哪个数据库。比如说有些id是时间的秒数也可以的。 假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒&…

网络文件系统综述

分 布式文件系统均为Client/Server架构。数据保存在服务器端,而客户端的应用程序能够像访问本地文件系统一样访问位于远程服务器上的文件。在 Client通常都对文件数据进行缓存,以提高读写性能和系统可扩展性。然而,缓存和一致性总是一对矛盾&…

使用python获取CPU和内存信息的思路与实现(linux系统)

linux里一切皆为文件,在linux/unix的根目录下,有个/proc目录,这个/proc 是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做“/proc”),这个伪文件系统允许与内核内部…

NFS v3的弱一致性

今天阅读NFS v3的代码,一番探究后,对其若一致性有了一点点了解,记录如下,以备查阅。 从代码层面来看,其若一致性是通过struct wcc_data 这个数据结构来实现。 wcc_data是由server返回给client的回复操作时包含的&#…

云服务三大部署模式-私有云、公有云、混合云谁才是云计算未来的主流

近两年来,云计算产业发展迅猛,被称为ICT领域下一个金矿。几乎ICT产业内的所有参与者都开始涉足云计算领域。运营商、IT厂商、通信厂商、IT服务提供商、电信服务提供商、软件厂商、系统厂商……纷纷出台云计算定战略。近来,围绕云计算的并购频…

NFS文件创建模式

在NFS中文件创建有三种模式,UNCHECKED ,GUARDED,EXLUSIVE UNCHECKED,是不检测同目录下有没有同名或者同verifer的文件的模式。 在V2中,为避免出现创建同名文件的错误,服务器端在执行create之前都会调用lookup进行判定,但这有个问题…

迁移你的单体系统:最佳实践和关注领域

假设有这样一种情况:你有一个对你的业务十分重要的复杂单体系统,你已经阅读过相关的文章,希望将这一系统迁移到更加先进的、使用微服务和容器的平台上,但又不知道从何入手。如果你正面临着这一问题,那么这篇文章一定会…