你的位置:首页 > 软件开发 > 操作系统 > Linux /dev目录详解和Linux系统各个目录的作用

Linux /dev目录详解和Linux系统各个目录的作用

发布时间:2016-11-09 08:00:36
Linux /dev目录详解(转http://blog.csdn.net/maopig/article/details/7195048)    在linux下,/dev目录是很重要的,各种设备都在下面。下面简单总结一下:  dev是设备(device)的英文缩写。/dev这个目录 ...

Linux /dev目录详解(转http://blog.csdn.net/maopig/article/details/7195048)

    在linux下,/dev目录是很重要的,各种设备都在下面。下面简单总结一下:

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

  Linux沿袭Unix的风格,将所有设备认成是一个文件。

  关于一些特殊设备,我曾经总结过一些:

  /dev/null和/dev/zero:http://www.51testing.com/index.php?uid-225738-action-viewspace-itemid-235339

  /dev/tty、/dev/console、/dev/pty、/dev/pts等:http://www.51testing.com/index.php?uid-225738-action-viewspace-itemid-212419

  设备文件分为两种:块设备文件(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/random:随机数设备

  /dev/urandom:随机数设备

  (PS:随机数设备,后面我会再写篇博客总结一下)

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

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

  kobject是sysfs文件系统的基础,udev通过监测、检测sysfs来获取新创建的设备的。

 

Linux系统各个目录的作用

 /

  这就是根目录。对你的电脑来说,有且只有一个根目录。所有的东西,我是说所有的东西都是从这里开始。举个例子:当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。

/root

  这是系统管理员(root user)的目录。对于系统来说,系统管理员就好比是上帝,它能对系统做任何事情,甚至包括删除你的文件。因此,请小心使用root帐号。

/bin

  这里存放了标准的(或者说是缺省的)linux的工具,比如像“ls”、“vi”还有“more”等等。通常来说,这个目录已经包含在你的“path”系统变量里面了。什么意思呢?就是:当你在终端里输入ls,系统就会去/bin目录下面查找是不是有ls这个程序。

/etc

  这里主要存放了系统配置方面的文件。举个例子:你安装了samba这个套件,当你想要修改samba配置文件的时候,你会发现它们(配置文件)就在/etc/samba目录下。

/dev

  这里主要存放与设备(包括外设)有关的文件(unix和linux系统均把设备当成文件)。想连线打印机吗?系统就是从这个目录开始工作的。另外还有一些包括磁盘驱动、USB驱动等都放在这个目录。

/home

  这里主要存放你的个人数据。具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root用户除外。

/tmp

  这是临时目录。对于某些程序来说,有些文件被用了一次两次之后,就不会再被用到,像这样的文件就放在这里。有些linux系统会定期自动对这个目录进行清理,因此,千万不要把重要的数据放在这里。

/proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。可以使用的文件随系统配置的变化而变化。命令procinfo能够显示基于其中某些文件的多种系统信息。以下详细描述/proc下的文件。 这个文件给出了内核启动的命令行。它和用于进程的cmdline项非常相似。示例: [root@localhost proc]# cat cmdlinero root=LABEL=/ rhgb quiet--------------------------------------------------------------------------------这个文件提供了有关系统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--------------------------------------------------------------------------------这个文件列出字符和块设备的主设备号,以及分配到这些设备号的设备名称。示例: [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 usb1 ramdisk2 fd3 ide09 md22 ide1253 device-mapper254 mdp 这个文件列出由驱动程序保留的DMA通道和保留它们的驱动程序名称。casade项供用于把次DMA控制器从主控制器分出的DMA行所使用;这一行不能用于其它用途。示例:[root@localhost ~]# cat /proc/dma4: cascade--------------------------------------------------------------------------------这个文件列出可供使用的文件系统类型,一种类型一行。虽然它们通常是编入内核的文件系统类型,但该文件还可以包含可加载的内核模块加入的其它文件系统类型。示例:[root@localhost proc]# cat /proc/filesystems nodev sysfsnodev rootfsnodev bdevnodev procnodev sockfsnodev binfmt_miscnodev usbfsnodev usbdevfsnodev futexfsnodev tmpfsnodev pipefsnodev eventpollfsnodev devptsext2nodev ramfsnodev hugetlbfsiso9660nodev mqueuenodev selinuxfsext3nodev rpc_pipefsnodev autofs 这个文件的每一行都有一个保留的中断。每行中的域有:中断号,本行中断的发生次数,可能带有一个加号的域(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 这个文件列出了诸如磁盘驱动器,以太网卡和声卡设备等多种设备驱动程序登记的许多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 这个文件是系统的物理内存以core文件格式保存的文件。例如,GDB能用它考察内核的数据结构。它不是纯文本,而是/proc目录下为数不多的几个二进制格式的项之一。示例:暂无 这个文件用于检索用printk生成的内核消息。任何时刻只能有一个具有超级用户权限的进程可以读取这个文件。也可以用系统调用syslog检索这些消息。通常使用工具dmesg或守护进程klogd检索这些消息。示例:暂无 这个文件列出了已经登记的内核符号;这些符号给出了变量或函数的地址。每行给出一个符号的地址,符号名称以及登记这个符号的模块。程序ksyms,insmod和kmod使用这个文件。它还列出了正在运行的任务数,总任务数和最后分配的PID。示例:暂无 这个文件给出以几个不同的时间间隔计算的系统平均负载,这就如同uptime命令显示的结果那样。前三个数字是平均负载。这是通过计算过去1分钟,5分钟,15分钟里运行队列中的平均任务数得到的。随后是正在运行的任务数和总任务数。最后是上次使用的进程号。示例:[root@localhost ~]# cat /proc/loadavg0.11 0.16 0.14 3/126 3912 这个文件包含在打开的文件上的加锁信息。文件中的每一行描述了特定文件和文档上的加锁信息以及对文件施加的锁的类型。内核也可以需要时对文件施加强制性锁。示例:[root@localhost redhat]# cat /proc/locks1: POSIX ADVISORY READ 3822 03:0a:1067117 0 EOF2: POSIX ADVISORY READ 3822 03:0a:1067138 0 EOF3: POSIX ADVISORY WRITE 3326 03:0a:2326540 0 EOF4: POSIX ADVISORY WRITE 2639 03:0a:2966595 0 EOF5: FLOCK ADVISORY WRITE 2591 03:0a:2966586 0 EOF6: POSIX ADVISORY WRITE 2540 03:0a:2966578 0 EOF7: POSIX ADVISORY WRITE 2530 03:0a:2966579 0 EOF8: POSIX ADVISORY WRITE 2402 03:0a:2966563 0 EOF9: POSIX ADVISORY WRITE 2371 03:0a:2966561 0 EOF 这个文件包含了由md设备驱动程序控制的RAID设备信息。示例:[root@localhost ~]# cat /proc/mdstat--------------------------------------------------------------------------------这个文件给出了内存状态的信息。它显示出系统中空闲内存,已用物理内存和交换内存的总量。它还显示出内核使用的共享内存和缓冲区总量。这些信息的格式和free命令显示的结果类似。示例:[root@localhost ~]# cat /proc/meminfo--------------------------------------------------------------------------------这个文件报告用内核函数misc_register登记的设备驱动程序。示例:[root@localhost ~]# cat /proc/misc这个文件给出可加载内核模块的信息。lsmod程序用这些信息显示有关模块的名称,大小,使用数目方面的信息。示例:[root@localhost /]# cat /proc/modules[root@localhost /]# lsmod这个文件以/etc/mtab文件的格式给出当前系统所安装的文件系统信息。这个文件也能反映出任何手工安装从而在/etc/mtab文件中没有包含的文件系统。示例:[root@localhost /]# cat /proc/mounts这个文件给出PCI设备的信息。用它可以方便地诊断PCI问题。你可以从这个文件中检索到的信息包括诸如IDE接口或USB控制器这样的设备,总线,设备和功能编号,设备延迟以及IRQ编号。示例:[root@localhost /]# cat /proc/pci/proc/stat文件 这个文件包含的信息有CPU利用率,磁盘,内存页,内存对换,全部中断,接触开关以及赏赐自举时间(自1970年1月1日起的秒数)。示例:[root@localhost /]# cat /proc/stat这个文件给出自从上次系统自举以来的秒数,以及其中有多少秒处于空闲。这主要供uptime程序使用。比较这两个数字能够告诉你长期来看CPU周期浪费的比例。示例:[root@localhost /]# cat /proc/uptime这个文件只有一行内容,说明正在运行的内核版本。可以用标准的编程方法进行分析获得所需的系统信息。示例:[root@localhost /]# cat /proc/version此目录下的文件描述或修改了联网代码的行为。可以通过使用arp,netstat,route和ipfwadm命令设置或查询这些特殊文件中的许多文件。示例:arpdevdev_mcastigmpnetlinknetstatrawrouterpcrt_cachesnmpsockstattcpudpunix--------------------------------------------------------------------------------此目录下包含一个列出了所有检测到的SCSI设备的文件,并且为每种控制器驱动程序提供一个目录,在这个目录下又为已安装的此种控制器的每个实例提供一个子目录。示例:在此目录下有许多子目录。此目录中的许多项都可以用来调整系统的性能。这个目录包含信息太多,无法介绍全部。只在示例中展示目录下的一些文件。示例:[root@localhost /]# ls /proc/sys[root@localhost sys]# ls /proc/sys/vm[root@localhost sys]# ls /proc/sys/net/ipv4[root@localhost sys]# cat /proc/sys/kernel/shmall--------------------------------------------------------------------------------

原标题:Linux /dev目录详解和Linux系统各个目录的作用

关键词:linux

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录