Linux设备文件简介(转载),linux设备简介转载

批量建表dev_3970000000014到dev_3970000000035

Linux设备文件简单介绍(转发),linux设备简介转发

Linux
中的设备有2种类型:字符设备(无缓冲且不得不挨个存取)、块设备(有缓冲且可以随机存取)。每一个字符设备和块设备都无法不有主、次设备号,主设备号同样的设
备是同类设备(使用同一个驱动程序)。这么些设备中,有些设备是对实际存在的物理硬件的画饼充饥,而有些设备则是基本本身提供的效应(不依赖于特定的情理硬件,
又叫做”设想设备”)。各种设备在 /dev
目录下都有三个对应的文本(节点)。能够透过 cat /proc/devices
命令查看当前已经加载的设备驱动程序的主设备号。内核能够分辨的享有道具都记录在原码树下的
Documentation/devices.txt 文件中。在 /dev
目录下除了字符设备和块设备节点之外还常备还恐怕会设有:FIFO管道、Socket、软/硬连接、目录。那些事物未有主/次设备号。

Linux内核所能识其余全体设备都记录在

而根本原码树中的 Documentation/devices.txt 恐怕不是新型版本。

询问那个道具的最基本须求就是对每一个设备文件的意义胸有定见,下边列出普及的装置文件以至对应的意思(相比较偏僻的就回顾了)。


  1. 主设备号 设备项目
  2.                 次设备号=文件名 简要表明

    1.   0        未命名设备(比方:挂载的非设备)
  3.          0 = 为空设备号保留
      1.   1 char    内部存款和储蓄器设备
  4.          1 = /dev/mem        直接存取物理内部存款和储蓄器
  5.          2 = /dev/kmem        存取经过基本设想之后的内部存款和储蓄器
  6.          3 =
    /dev/null        空设备。任何写入都将被一向甩掉,任何读取都将获得EOF。
  7.          4 = /dev/port        存取 I/O 端口
  8.          5 = /dev/zero        零字节源,只可以读取到极致多的零字节。
  9.          7 =
    /dev/full        满设备。任何写入都将退步,并把errno设为ENOSPC以象征从没多余空间。
  10.          8 =
    /dev/random    随机数产生器。完全由客商的输入来产生随机数。
  11.                     若是顾客截止全体动作,则甘休发生新的随机数。
  12.          9 =
    /dev/urandom    越来越快,可是相当不足安全的即兴数产生器。尽大概由客户的输入来发生随机数,
  13.                     假使顾客结束全体动作,则把已经爆发的随便数做为种子来爆发新的随机数。
  14.          10 = /dev/aio        异步 I/O 通告接口
  15.          11 = /dev/kmsg        任何对该文件的写入都将作为 printk
    的出口
      1.   1 block    RAM disk
  16.          0 = /dev/ram0        第四个 RAM disk (initrd只好接纳ram0)
  17.          1 = /dev/ram1        第2个 RAM disk
  18.          …
  19.         200 = /dev/ram200    第200个 RAM disk
      1.   4 char    TTY(终端)设备
  20.          0 = /dev/tty0        当前虚构调整台
  21.          1 = /dev/tty1        第一个设想调节台
  22.          …
  23.          63 = /dev/tty63    第陆拾二个虚构调整台
      1.   4
        block    假诺根文件系统以是以只读形式挂载的,那么就不只怕创立真正的装置节点,
  24.         此时就选拔该设施作为动态分配的主(major)设备的外号
  25.                   0 = /dev/root
      1.   5 char    其他 TTY 设备
  26.          0 = /dev/tty        当前 TTY 设备
  27.          1 = /dev/console    系统调整台(日常是/dev/tty0)
  28.          2 = /dev/ptmx        全数 PTY master 的复用器
      1.   7 char    虚构调整台捕捉设备(那几个设备既允许读也允许写)
  29.          0 = /dev/vcs        当前虚构调节台(vc)的文本内容
  30.          1 = /dev/vcs1        tty1 的文本内容
  31.          …
  32.          63 = /dev/vcs63    tty63 的文书内容
  33.         128 = /dev/vcsa        当前设想调控台(vc)的文本/属性内容
  34.         129 = /dev/vcsa1    tty1 的文本/属性内容
  35.          …
  36.         191 = /dev/vcsa63    tty63 的文本/属性内容
      1.   7
        block    回环设备(用八个平凡的磁盘文件来效仿八个块设备)
  37.         对围绕设备的绑定由 mount(8) 或 losetup(8) 管理
  38.          0 = /dev/loop0    第四个围绕设备
  39.          1 = /dev/loop1    首个围绕设备
  40.          …
      1.   8 block    SCSI 磁盘(0-15)
  41.          0 = /dev/sda        第一个 SCSI 磁盘(整个磁盘)
  42.          16 = /dev/sdb        第一个 SCSI 磁盘(整个磁盘)
  43.          32 = /dev/sdc        第1个 SCSI 磁盘(整个磁盘)
  44.          …
  45.         240 = /dev/sdp        第拾陆个 SCSI 磁盘(整个磁盘)
    1.         分区表示方法如下(以首个 SCSI 磁盘为例)
  46.          33 = /dev/sdc1        第1个分区
  47.          34 = /dev/sdc2        第2个分区
  48.          …
  49.          47 = /dev/sdc15    第15个分区
  50.         对于Linux/i386来讲,分区1-4是主分区,5-15是逻辑分区。
      1.   9 block    Metadisk(RAID)设备
  51.          0 = /dev/md0        第1组 metadisk
  52.          1 = /dev/md1        第2组 metadisk
  53.          …
  54.         metadisk 驱动用于将同一个文件系统分割到多个概略磁盘上。
      1.  10 char    非串口鼠标,各样杂项设备和特征
  55.          1 = /dev/psaux    PS/2鼠标
  56.         131 = /dev/temperature    机器内部温度
  57.         134 = /dev/apm_bios    APM(高端电源管理) BIOS
  58.         135 = /dev/rtc        实时机械钟(Real Time Clock)
  59.         144 = /dev/nvram    非易失配置 RAM
  60.         162 = /dev/smbus    系统管理总线(System Management Bus)
  61.         164 = /dev/ipmo        AMD的智能平台管理(AMDligent
    Platform Management)接口
  62.         173 = /dev/ipmikcs    智能平台管理(速龙ligent Platform
    Management)接口
  63.         175 = /dev/agpgart    AGP图形地址重映射表(Graphics Address
    Remapping Table)
  64.         182 = /dev/perfctr    品质监视计数器
  65.         183 = /dev/hwrng    通用硬件随机数爆发器
  66.         184 = /dev/cpu/microcode CPU微代码更新接口
  67.         186 = /dev/atomicps    进度景况数据的原子快速照相
  68.         188 = /dev/smbusbios    SMBus(系统管理总线) BIOS
  69.         200 = /dev/net/tun    TAP/TUN
    网络设施(TAP/TUN以软件的议程贯彻了互联网设施)
  70.                     TAP模拟了以太网帧(第二层),TUN模拟了IP包(第三层)。
  71.         202 = /dev/emd/ctl    增强型 Metadisk RAID (EMD) 控制器
  72.         220 = /dev/mptctl    Message passing technology (MPT)
    control
  73.         223 = /dev/input/uinput    客户层输入设备驱动帮助
  74.         227 = /dev/mcelog    X86_64 Machine Check Exception
    driver
  75.         228 = /dev/hpet        HPET driver
  76.         229 = /dev/fuse        Fuse(客户空间的虚拟文件系统)
  77.         231 = /dev/snapshot    系统内部存款和储蓄器快照
  78.         232 = /dev/kvm        基于内核的虚拟机(基于英特尔 SVM和IntelVT硬件设想手艺)
      1.  11 block    SCSI CD-ROM 设备
  79.          0 = /dev/scd0        第1个 SCSI CD-ROM
  80.          1 = /dev/scd1        第2个 SCSI CD-ROM
  81.          …
      1.  13 char    大旨输入设备
  82.          32 = /dev/input/mouse0        第1个鼠标
  83.          33 = /dev/input/mouse1        第2个鼠标
  84.          …
  85.          62 = /dev/input/mouse30    第31个鼠标
  86.          63 = /dev/input/mice        全部鼠标的会见
  87.          64 = /dev/input/event0        第二个事件队列
  88.          65 = /dev/input/event1        第四个事件队列
  89.          …
  90.          95 = /dev/input/event1        第三二十一个事件队列
      1.  21 char    通用 SCSI 设备(通常是SCSI光驱)
  91.          0 = /dev/sg0        第1个通用 SCSI 设备
  92.          1 = /dev/sg1        第2个通用 SCSI 设备
  93.          …
      1.  29 char    通用帧缓冲(frame buffer)设备
  94.          0 = /dev/fb0        第二个帧缓冲设备
  95.          1 = /dev/fb1        第二个帧缓冲设备
  96.          …
  97.          31 = /dev/fb31        第33个帧缓冲设备
      1.  30 char    iBCS-2 包容设备
  98.          0 = /dev/socksys    套接字访谈接口
  99.          1 = /dev/spx        SVR3 本地 X 接口
  100.          32 = /dev/inet/ip    网络访问接口
  101.          33 = /dev/inet/icmp
  102.          34 = /dev/inet/ggp
  103.          35 = /dev/inet/ipip
  104.          36 = /dev/inet/tcp
  105.          37 = /dev/inet/egp
  106.          38 = /dev/inet/pup
  107.          39 = /dev/inet/udp
  108.          40 = /dev/inet/idp
  109.          41 = /dev/inet/rawip
    1.         此外,iBCS-2 还须求上面包车型地铁连接必得存在
  110.         /dev/ip -> /dev/inet/ip
  111.         /dev/icmp -> /dev/inet/icmp
  112.         /dev/ggp -> /dev/inet/ggp
  113.         /dev/ipip -> /dev/inet/ipip
  114.         /dev/tcp -> /dev/inet/tcp
  115.         /dev/egp -> /dev/inet/egp
  116.         /dev/pup -> /dev/inet/pup
  117.         /dev/udp -> /dev/inet/udp
  118.         /dev/idp -> /dev/inet/idp
  119.         /dev/rawip -> /dev/inet/rawip
  120.         /dev/inet/arp -> /dev/inet/udp
  121.         /dev/inet/rip -> /dev/inet/udp
  122.         /dev/nfsd -> /dev/socksys
  123.         /dev/X0R -> /dev/null
      1.  36 char    Netlink 支持
  124.          0 = /dev/route    路由, 设备更新, kernel to user
  125.          3 = /dev/fwmonitor    Firewall packet 复制
      1.  59 char    sf 防火墙模块
  126.          0 = /dev/firewall    与 sf 内核模块通讯
      1.  65 block    SCSI 磁盘(16-31)
  127.          0 = /dev/sdq        第十五个 SCSI 磁盘(整个磁盘)
  128.          16 = /dev/sdr        第十多个 SCSI 磁盘(整个磁盘)
  129.          32 = /dev/sds        第二十三个 SCSI 磁盘(整个磁盘)
  130.          …
  131.         240 = /dev/sdaf        第叁15个 SCSI 磁盘(整个磁盘)
      1.  66 block    SCSI 磁盘(32-47)
  132.          0 = /dev/sdag        第35个 SCSI 磁盘(整个磁盘)
  133.          16 = /dev/sdah        第35个 SCSI 磁盘(整个磁盘)
  134.          32 = /dev/sdai        第叁十七个 SCSI 磁盘(整个磁盘)
  135.          …
  136.         240 = /dev/sdav        第肆十七个 SCSI 磁盘(整个磁盘)
      1.  89 char    I2C 总线接口
  137.          0 = /dev/i2c-0    第1个 I2C 适配器
  138.          1 = /dev/i2c-1    第2个 I2C 适配器
  139.          …
        1.  98 block    客商情势下的虚构块设备(分区处理格局与
          SCSI 磁盘同样)
  140.          0 = /dev/ubda        第4个客商方式块设备
  141.          16 = /dev/udbb        第一个顾客形式块设备
  142.          …
      1. 103 block    审计(Audit)设备
  143.          0 = /dev/audit    审计(Audit)设备
      1. 128-135 char    Unix98 PTY master
    1.         这一个设备不应当存在设备节点,而应该经过 /dev/ptmx
      接口访谈。
      1. 136-143 char    Unix98 PTY slave
  144.         那么些道具节点是自动生成的(伴有适当的权杖和形式),不可能手动成立。
  145.         方法是因此选用极度的 mount
    选项(常常是:mode=0620,gid=<“tty”组的gid>)
  146.         将 devpts 文件系统挂载到 /dev/pts 目录就能够。
  147.          0 = /dev/pts/0    第1个 Unix98 PTY slave
  148.          1 = /dev/pts/1    第2个 Unix98 PTY slave
  149.          …
      1. 153 block    Enhanced Metadisk RAID (EMD)
        存款和储蓄单元(分区管理情势与 SCSI 磁盘同样)
  150.          0 = /dev/emd/0    第三个存款和储蓄单元
  151.          1 = /dev/emd/0p1    第4个存储单元的第2个分区
  152.          2 = /dev/emd/0p2    第二个存款和储蓄单元的第一个分区
  153.          …
  154.          15 = /dev/emd/0p15    第2个存款和储蓄单元的第十五个分区
    1.          16 = /dev/emd/1    第一个存款和储蓄单元
  155.          32 = /dev/emd/2    第4个存款和储蓄单元
  156.          …
  157.         240 = /dev/emd/15    第十七个存款和储蓄单元
      1. 180 char    USB 字符设备
  158.          96 =
    /dev/usb/hiddev0    第一个USB人机分界面设备(鼠标/键盘/游戏杆/手写版等人操作Computer的装置)
  159.          …
  160.         111 = /dev/usb/hiddev15    第17个USB人机分界面设备
      1. 180 block    USB 块设备(U盘之类)
  161.          0 = /dev/uba        第1个USB 块设备
  162.          8 = /dev/ubb        第2个USB 块设备
  163.          16 = /dev/ubc        第3个USB 块设备
  164.           …
      1. 192 char    内核 profiling 接口
  165.          0 = /dev/profile    Profiling 调控配备
  166.          1 = /dev/profile0    CPU 0 的 Profiling 设备
  167.          2 = /dev/profile1    CPU 1 的 Profiling 设备
  168.          …
      1. 193 char    内核事件追踪接口
  169.          0 = /dev/trace    追踪调整装置
  170.          1 = /dev/trace0    CPU 0 的追踪设备
  171.          2 = /dev/trace1    CPU 1 的跟踪设备
  172.          …
      1. 195 char    Nvidia 图形设备(举例显卡)
  173.          0 = /dev/nvidia0        第1个 Nvidia 卡
  174.          1 = /dev/nvidia1        第2个 Nvidia 卡
  175.          …
  176.         255 = /dev/英特尔ctl        Nvidia 卡调整器材
      1. 202 char    特定于CPU格局的贮存器(model-specific
        register,MSTiggo)
  177.          0 = /dev/cpu/0/msr        CPU 0 的 MSRs
  178.          1 = /dev/cpu/1/msr        CPU 1 的 MSRs
  179.          …
    1. 203 char    CPU CPUID 信息
  180.          0 = /dev/cpu/0/cpuid        CPU 0 的 CPUID
  181.          1 = /dev/cpu/1/cpuid        CPU 1 的 CPUID
  182.          …

有未有感到很意外?为何一向不 /dev/hda
那样的道具,难道不经常用么?原因在于从 2.6.19
本子初步,内核引进了新的ATA驱动,将SATA/PATA硬盘统一使用 /dev/sd?
来表示了,所以 /dev/hd?
就不曾存在的必得了。具体说来也正是你在编写翻译内核的时候绝不再选取”ATA/ATAPI/MFM/奇骏LL
support”上面包车型客车驱动,而是选取更新的”塞里al ATA and Parallel ATA
drivers”驱动。

               链接、套接字、管道、挂载点

那有个别详尽表明有些相应或恐怕存在于 /dev
目录之外的公文。链接最棒利用与这里完全一样的格式(绝对路线或相对路线)。毕竟是应用硬链接(hard)依然软连接(symbolic)决计于区别的道具。

必须的链接

总得在有着的系统上都留存那一个连接:

  1. 链接        目的        链接类型    简要表明
  2. /dev/fd        /proc/self/fd    symbolic    文件描述府
  3. /dev/stdin    fd/0        symbolic    标准输入文件描述府
  4. /dev/stdout    fd/1        symbolic    标准输出文件陈说符
  5. /dev/stderr    fd/2        symbolic    标准错误文件陈诉符
  6. /dev/nfsd    socksys        symbolic    仅为 iBCS-2 所必须
  7. /dev/X0R    null        symbolic    仅为 iBCS-2 所必须
  8. [注意] /dev/X0R 是 <字母 X>-<数字 0>-<字母 R>

 推荐的链接

引入在装有的体系上都设有这么些连接:

  1. 链接        指标        链接类型    简要说明
  2. /dev/core    /proc/kcore    symbolic    为了向后相当
  3. /dev/ramdisk    ram0        symbolic    为了向后非凡
  4. /dev/ftape    qft0        symbolic    为了向后非凡
  5. /dev/bttv0    video0        symbolic    为了向后特别
  6. /dev/radio    radio0        symbolic    为了向后相当
  7. /dev/i2o*    /dev/i2o/*    symbolic    为了向后非常
  8. /dev/scd?    sr?        hard        代替 SCSI CD-ROM 的名字

  地面定义的链接

下边包车型大巴链接很或然需求依照机器的骨子里硬件配置创制此中的一部分依然整个。这几个链接仅仅是为着迎合习贯用法,它们既非必须也非推荐。

  1. 链接        指标        链接类型    简要表明
  2. /dev/mouse    mouse port    symbolic    当前鼠标
  3. /dev/tape    tape device    symbolic    当前磁带
  4. /dev/cdrom    CD-ROM device    symbolic    当前CD-ROM
  5. /dev/cdwriter    CD-writer    symbolic    当前CD-writer
  6. /dev/scanner    scanner        symbolic    当前扫描仪
  7. /dev/modem    modem port    symbolic    当前调制解调器
  8. /dev/root    root device    symbolic    当前根文件系统所在设备
  9. /dev/swap    swap device    symbolic    当前swap所在设备

/dev/modem
不应该用于能够同期支持呼入和呼出的modem,因为屡屡会促成锁文件难点。假诺存在
/dev/modem ,那么它应当指向多少个体面的主 TTY 设备。

对此SCSI设备,/dev/tape 和 /dev/cdrom 应该分别指向”cooked”设备 /dev/st*
和 /dev/sr* ;而 /dev/cdwriter 和 /dev/scanner 应当各自针对稳当的
/dev/sg* 。

/dev/mouse 能够针对一个主串行 TTY
设备、一个硬件鼠标、也许三个对应鼠标驱动程序的套接字(举个例子/dev/gpmdata)。

套接字和管道

原原本本套接字和命名管道能够存在于 /dev 中。常见的有:

  1. /dev/printer    socket        lpd 本地套接字
  2. /dev/log    socket        syslog 本地套接字
  3. /dev/gpmdata    socket        gpm 鼠标多路复用器(multiplexer)
  4. /dev/gpmctl    socket        (LFS-LiveCD中出现)
  5. /dev/initctl    fifo pipe    init 监听它并从当中获取音讯(顾客与 init
    进度并行的大道)

   挂载点

以下名称被封存用于挂载特殊的文件系统。那些特别的文件系统只提供内核分界面而不提供规范的装置节点。

  1. /dev/pts    devpts        PTY slave 文件系统
  2. /dev/shm    tmpfs        提供对 POSIX 分享内部存款和储蓄器的直接访谈

                           终端设备

顶点(或TTY)设备是一种特有的字符设备。终端设备是可以在对话中扮演主宰终端剧中人物的别样设施,满含:设想调控台、串行接口(已舍弃)、伪终端(PTY)。

具备的顶峰设备分享一个通用的作用集聚:line
discipline,它既富含通用的极端 line discipline
也富含SLIP和PPP格局。全部的终极设备的命名都很经常。那有些剧情将解释命名法则和各样类型的TTY(终端)的行使。供给小心的是那几个命名习于旧贯满含了多少个历史遗留包袱。在那之中的部分是Linux所特有的,另一对则是延续自其余系统,还会有一对显示了Linux在成长进度中甩掉了原先借用自其余系统的局部习于旧贯。井号(#)在设施名里表示三个无前导零的十进制数。

设想调控台(Virtual console)和调节台设备(console device)

虚构调节台是在系统摄像监视器上全屏展现的巅峰。设想调节台被命名叫编号从
/dev/tty1 开首的 /dev/tty# 。/dev/tty0 是当下虚构调控台。/dev/tty0
用于在不能够动用帧缓冲设备(/dev/fb*)的机器上存取系统录像卡,注意,不要将
/dev/console 用于此目标。/dev/console
由基本管理,系统新闻将被发送到这里。单客户形式下必得同意 login 使用
/dev/console 。

串行接口

那边所说的”串行接口”是指 奇骏S-232
串行接口和别的模拟这种接口的配备,不管是在硬件(譬喻调制解调器)依然在软件(比如ISDN驱动)中模拟。在linux中的每二个串行接口都有多个设备
名:主设备或呼入(callin)设备、交替设备或呼出(callout)设备。设备档期的顺序之间接选举拔假名的尺寸写举办区分。比方,对于放肆字母
X,”tty”设备名字为 /dev/ttyX# ,而”cu”设备名则为 /dev/cux#
。由于历史原因,/dev/ttyS# 和 /dev/ttyC# 分别相当于于 /dev/cua# 和
/dev/cub# 。名称 /dev/ttyQ# 和 /dev/cuq# 被保存为本地使用。

伪终端(PTY)

伪终端用于创设登录会话或提供其余功效,比方通过 TTY line discipline
(包含SLIP或然PPP作用)来管理任性的数额变动。每二个 PTY
都有三个master端和多少个slave端。依据 System V/Unix98 的 PTY
命名方案,全数master端分享同一个 /dev/ptmx
设备节点(展开它根本将自动提交一个未分配的PTY),全部slave端都坐落
/dev/pts 目录下,名称叫 /dev/pts/# (内核会依据须求自动生成和删除它们)。

比方master端被展开,相应的slave设备就能够坚守与 TTY
设备完全一样的办法选用。master设备与slave设备之间通过基础举办连接,等价于具有TTY 功效的双向管道(pipe)。

Linux
中的设备有2种档期的顺序:字符设备(无缓冲且只可以挨个存取)、块设备(有缓冲且可以随机存取)。…

剔除全部RAID:

 1 declare @i bigint
 2 declare @j int
 3 declare @sql varchar(4000)
 4 declare @sqlsource_delete varchar(4000)
 5 declare @sqlsource_create varchar(4000)
 6 declare @sn varchar(13)
 7 
 8 set @sql = ''
 9 set @i=3970000000013
10 set @sqlsource_delete = 'drop table [dbo].[dev_{SN}]'
11 set @sqlsource_create = 'CREATE TABLE [dbo].[dev_{SN}] 
12 (
13 [TasTimeStamp] [bigint] PRIMARY KEY ,
14 [DevTimeStamp] [bigint] NULL ,
15 [field_15] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
16 [field_41] [real] NULL ,
17 [field_42] [real] NULL ,
18 [field_43] [real] NULL ,
19 [field_44] [real] NULL ,
20 [field_55] [nchar] (1) COLLATE Chinese_PRC_CI_AS NULL 
21 ) ON [PRIMARY]'
22 
23 while @i<3970000000035
24 begin
25 set @i = @i + 1
26 set @sn = cast(@i as varchar(13))
27 set @j=len(@sn)
28 
29 if exists (select * from dbo.sysobjects where id = object_id('[dbo].[dev_' + @sn + ']') and OBJECTPROPERTY(id, 'IsUserTable') = 1)
30 begin
31 set @sql = replace(@sqlsource_delete, '{SN}', @sn)
32 execute(@sql)
33 end
34 
35 set @sql = replace(@sqlsource_create, '{SN}', @sn)
36 execute(@sql)
37 end

mdadm/dev/md0–fail/dev/sdb–remove/dev/sdb
mdadm/dev/md0–fail/dev/sdc–remove/dev/sdc
mdadm/dev/md0–fail/dev/sdc–remove/dev/sdd
mdadm/dev/md0–fail/dev/sde–remove/dev/sde
mdadm/dev/md0–fail/dev/sdf–remove/dev/sdf

 

mdadm–stop/dev/md0
mdadm–remove/dev/md0