設備文件

此頁由 Linux Wiki用戶Chenxing 於 2012年6月23日 (星期六) 00:59 的最後更改。

出自Linux Wiki

提示:此文已超过 12 年(4565 天)未更新,如发现内容过时或有误,欢迎改进:)

Linux中的設備都以文件形式存在於/dev中,內核文檔對其做了詳盡的介紹[1],國內也有翻譯文檔[2]。本文只摘錄較常用的設備。

常用設備

按照Linux的文件類型概念,設備文件分為字符設備文件和塊設備文件。下面對兩類設備文件中較常用的分別做介紹,設備號可以使用ls -l /dev看到。

字符設備
主設備號 次設備號 文件名 簡介
1 1 /dev/mem 訪問物理內存
2 /dev/kmem 訪問經內核映射後的內存(Kernel Virtual Memory)
3 /dev/null 空設備。寫入該設備的信息將被直接丟棄,讀取都將得到EOF。
4 /dev/port 訪問I/O端口
5 /dev/zero 產生null(0x00)字節序列
7 /dev/full 對該設備的寫操作將導致ENOSPC(無剩餘空間)錯誤。可用於測試磁盤空間滿時程序的行為(見/dev/full
8 /dev/random 隨機數產生器。Linux中可依據系統的環境噪聲產生真隨機數,故速度很慢([3]
9 /dev/urandom 更快但不夠安全的隨機數發生器
2 * /dev/ptyp* 偽終端,Pseudo-TTY masters
3 * /dev/ttyp* 偽終端,Pseudo-TTY slaves
4 0-63 /dev/tty0-63 虛擬控制台
64-255 /dev/ttyS0-191 UART串口
5 0 /dev/tty 當前的TTY設備
1 /dev/console 當前的控制台設備
6 * /dev/lp* 並口打印機
10 0-15 /dev/psaux等 非串口的各種鼠標
175 /dev/fuse Fuse
13 0,1.. /dev/js0,1.. Joystick
32,33.. /dev/mouse0,1.. 鼠標
63 /dev/mice 統一了的鼠標
64,65.. /dev/input/event0,1.. 事件隊列
14 OSS(Open Sound System)設備,如mixer等


塊設備
主設備號 次設備號 文件名 簡介
1 * /dev/ram* ramdisk
2 * /dev/fd* 軟驅
3 0 /dev/hda 第一個主IDE設備,如硬盤或光驅
64 /dev/hdb 第一個從IDE設備
1 /dev/hda1 hda的第一個分區
...
63 /dev/hda63 hda的第63個分區
4 0 /dev/root 根文件系統以只讀方式掛載時使用該設備作為動態分配的主(major)設備的別名
7 * /dev/loop* loop設備,用於掛載在非塊設備上的文件系統,如ISO格式的虛擬光驅文件
8 0 /dev/sda 第一個SCSI磁盤(USB硬盤、SATA硬盤都按SCSI處理)
16 /dev/sdb 第二個SCSI磁盤(正因如此,最多只支持SCSI設備上15個分區)
11 * /dev/scd* SCSI光驅
22 0,64 /dev/hdc,d 第二個主、從IDE設備

其它常見文件

/dev還有一些文件,它們並不是設備,而是符號鏈接等。

下表列出了與標準輸入輸出的一些符號鏈接文件:

軟鏈接名 目的地 說明
/dev/fd /proc/self/fd 文件描述符
/dev/stdin fd/0 文件描述符(標準輸入)
/dev/stdout fd/1 文件描述符(標準輸出)
/dev/stderr fd/2 文件描述符(標準錯誤輸出)

參考資料

  1. 內核文檔中對設備文件命名的介紹
  2. 金步國:Linux設備文件簡介
  3. Wikipedia: /dev/random

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
简体繁体转换