国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

Linux設(shè)備文件簡(jiǎn)介(轉(zhuǎn)載)

2024-06-28 13:19:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
linux設(shè)備文件簡(jiǎn)介(轉(zhuǎn)載)

Linux 中的設(shè)備有2種類型:字符設(shè)備(無(wú)緩沖且只能順序存取)、塊設(shè)備(有緩沖且可以隨機(jī)存取)。每個(gè)字符設(shè)備和塊設(shè)備都必須有主、次設(shè)備號(hào),主設(shè)備號(hào)相同的設(shè) 備是同類設(shè)備(使用同一個(gè)驅(qū)動(dòng)程序)。這些設(shè)備中,有些設(shè)備是對(duì)實(shí)際存在的物理硬件的抽象,而有些設(shè)備則是內(nèi)核自身提供的功能(不依賴于特定的物理硬件, 又稱為"虛擬設(shè)備")。每個(gè)設(shè)備在 /dev 目錄下都有一個(gè)對(duì)應(yīng)的文件(節(jié)點(diǎn))。可以通過(guò) cat /PRoc/devices 命令查看當(dāng)前已經(jīng)加載的設(shè)備驅(qū)動(dòng)程序的主設(shè)備號(hào)。內(nèi)核能夠識(shí)別的所有設(shè)備都記錄在原碼樹下的 Documentation/devices.txt 文件中。在 /dev 目錄下除了字符設(shè)備和塊設(shè)備節(jié)點(diǎn)之外還通常還會(huì)存在:FIFO管道、Socket、軟/硬連接、目錄。這些東西沒有主/次設(shè)備號(hào)。Linux內(nèi)核所能識(shí)別的所有設(shè)備都記錄在http://www.lanana.org/docs/device-list/而內(nèi)核原碼樹中的 Documentation/devices.txt 可能不是最新版本。

了解這些設(shè)備的最基本要求就是對(duì)每個(gè)設(shè)備文件的含義了如指掌,下面列出常見的設(shè)備文件以及相應(yīng)的含義(比較偏僻的就省略了)。

  1. ----------------------------------------------------------------------
  2. 主設(shè)備號(hào) 設(shè)備類型
  3. 次設(shè)備號(hào)=文件名 簡(jiǎn)要說(shuō)明
  4. ----------------------------------------------------------------------
  5. 0未命名設(shè)備(例如:掛載的非設(shè)備)
  6. 0 = 為空設(shè)備號(hào)保留
  7. 1 char內(nèi)存設(shè)備
  8. 1 = /dev/mem直接存取物理內(nèi)存
  9. 2 = /dev/kmem存取經(jīng)過(guò)內(nèi)核虛擬之后的內(nèi)存
  10. 3 = /dev/null空設(shè)備。任何寫入都將被直接丟棄,任何讀取都將得到EOF。
  11. 4 = /dev/port存取 I/O 端口
  12. 5 = /dev/zero零字節(jié)源,只能讀取到無(wú)限多的零字節(jié)。
  13. 7 = /dev/full滿設(shè)備。任何寫入都將失敗,并把errno設(shè)為ENOSPC以表示沒有剩余空間。
  14. 8 = /dev/random隨機(jī)數(shù)發(fā)生器。完全由用戶的輸入來(lái)產(chǎn)生隨機(jī)數(shù)。
  15. 如果用戶停止所有動(dòng)作,則停止產(chǎn)生新的隨機(jī)數(shù)。
  16. 9 = /dev/urandom更快,但是不夠安全的隨機(jī)數(shù)發(fā)生器。盡可能由用戶的輸入來(lái)產(chǎn)生隨機(jī)數(shù),
  17. 如果用戶停止所有動(dòng)作,則把已經(jīng)產(chǎn)生的隨機(jī)數(shù)做為種子來(lái)產(chǎn)生新的隨機(jī)數(shù)。
  18. 10 = /dev/aio異步 I/O 通知接口
  19. 11 = /dev/kmsg任何對(duì)該文件的寫入都將作為 printk 的輸出
  20. 1 blockRAM disk
  21. 0 = /dev/ram0第1個(gè) RAM disk (initrd只能使用ram0)
  22. 1 = /dev/ram1第2個(gè) RAM disk
  23. ...
  24. 200 = /dev/ram200第200個(gè) RAM disk
  25. 4 charTTY(終端)設(shè)備
  26. 0 = /dev/tty0當(dāng)前虛擬控制臺(tái)
  27. 1 = /dev/tty1第1個(gè)虛擬控制臺(tái)
  28. ...
  29. 63 = /dev/tty63第63個(gè)虛擬控制臺(tái)
  30. 4 block如果根文件系統(tǒng)以是以只讀方式掛載的,那么就不可能創(chuàng)建真正的設(shè)備節(jié)點(diǎn),
  31. 此時(shí)就使用該設(shè)備作為動(dòng)態(tài)分配的主(major)設(shè)備的別名
  32. 0 = /dev/root
  33. 5 char其他 TTY 設(shè)備
  34. 0 = /dev/tty當(dāng)前 TTY 設(shè)備
  35. 1 = /dev/console系統(tǒng)控制臺(tái)(一般是/dev/tty0)
  36. 2 = /dev/ptmx所有 PTY master 的復(fù)用器
  37. 7 char虛擬控制臺(tái)捕捉設(shè)備(這些設(shè)備既允許讀也允許寫)
  38. 0 = /dev/vcs當(dāng)前虛擬控制臺(tái)(vc)的文本內(nèi)容
  39. 1 = /dev/vcs1tty1 的文本內(nèi)容
  40. ...
  41. 63 = /dev/vcs63tty63 的文本內(nèi)容
  42. 128 = /dev/vcsa當(dāng)前虛擬控制臺(tái)(vc)的文本/屬性內(nèi)容
  43. 129 = /dev/vcsa1tty1 的文本/屬性內(nèi)容
  44. ...
  45. 191 = /dev/vcsa63tty63 的文本/屬性內(nèi)容
  46. 7 block回環(huán)設(shè)備(用一個(gè)普通的磁盤文件來(lái)模擬一個(gè)塊設(shè)備)
  47. 對(duì)回環(huán)設(shè)備的綁定由 mount(8) 或 losetup(8) 處理
  48. 0 = /dev/loop0第1個(gè)回環(huán)設(shè)備
  49. 1 = /dev/loop1第2個(gè)回環(huán)設(shè)備
  50. ...
  51. 8 blockSCSI 磁盤(0-15)
  52. 0 = /dev/sda第1個(gè) SCSI 磁盤(整個(gè)磁盤)
  53. 16 = /dev/sdb第2個(gè) SCSI 磁盤(整個(gè)磁盤)
  54. 32 = /dev/sdc第3個(gè) SCSI 磁盤(整個(gè)磁盤)
  55. ...
  56. 240 = /dev/sdp第16個(gè) SCSI 磁盤(整個(gè)磁盤)
  57. 分區(qū)表示方法如下(以第3個(gè) SCSI 磁盤為例)
  58. 33 = /dev/sdc1第1個(gè)分區(qū)
  59. 34 = /dev/sdc2第2個(gè)分區(qū)
  60. ...
  61. 47 = /dev/sdc15第15個(gè)分區(qū)
  62. 對(duì)于Linux/i386來(lái)說(shuō),分區(qū)1-4是主分區(qū),5-15是邏輯分區(qū)。
  63. 9 blockMetadisk(RAID)設(shè)備
  64. 0 = /dev/md0第1組 metadisk
  65. 1 = /dev/md1第2組 metadisk
  66. ...
  67. metadisk 驅(qū)動(dòng)用于將同一個(gè)文件系統(tǒng)分割到多個(gè)物理磁盤上。
  68. 10 char非串口鼠標(biāo),各種雜項(xiàng)設(shè)備和特性
  69. 1 = /dev/psauxPS/2鼠標(biāo)
  70. 131 = /dev/temperature機(jī)器內(nèi)部溫度
  71. 134 = /dev/apm_biosAPM(高級(jí)電源管理) BIOS
  72. 135 = /dev/rtc實(shí)時(shí)時(shí)鐘(Real Time Clock)
  73. 144 = /dev/nvram非易失配置 RAM
  74. 162 = /dev/smbus系統(tǒng)管理總線(System Management Bus)
  75. 164 = /dev/ipmoIntel的智能平臺(tái)管理(Intelligent Platform Management)接口
  76. 173 = /dev/ipmikcs智能平臺(tái)管理(Intelligent Platform Management)接口
  77. 175 = /dev/agpgartAGP圖形地址重映射表(Graphics Address Remapping Table)
  78. 182 = /dev/perfctr性能監(jiān)視計(jì)數(shù)器
  79. 183 = /dev/hwrng通用硬件隨機(jī)數(shù)發(fā)生器
  80. 184 = /dev/cpu/microcode CPU微代碼更新接口
  81. 186 = /dev/atomicps進(jìn)程狀態(tài)數(shù)據(jù)的原子快照
  82. 188 = /dev/smbusbiosSMBus(系統(tǒng)管理總線) BIOS
  83. 200 = /dev/net/tunTAP/TUN 網(wǎng)絡(luò)設(shè)備(TAP/TUN以軟件的方式實(shí)現(xiàn)了網(wǎng)絡(luò)設(shè)備)
  84. TAP模擬了以太網(wǎng)幀(第二層),TUN模擬了IP包(第三層)。
  85. 202 = /dev/emd/ctl增強(qiáng)型 Metadisk RAID (EMD) 控制器
  86. 220 = /dev/mptctlMessage passing technology (MPT) control
  87. 223 = /dev/input/uinput用戶層輸入設(shè)備驅(qū)動(dòng)支持
  88. 227 = /dev/mcelogX86_64 Machine Check Exception driver
  89. 228 = /dev/hpetHPET driver
  90. 229 = /dev/fuseFuse(用戶空間的虛擬文件系統(tǒng))
  91. 231 = /dev/snapshot系統(tǒng)內(nèi)存快照
  92. 232 = /dev/kvm基于內(nèi)核的虛構(gòu)機(jī)(基于AMD SVM和Intel VT硬件虛擬技術(shù))
  93. 11 blockSCSI CD-ROM 設(shè)備
  94. 0 = /dev/scd0第1個(gè) SCSI CD-ROM
  95. 1 = /dev/scd1第2個(gè) SCSI CD-ROM
  96. ...
  97. 13 char核心輸入設(shè)備
  98. 32 = /dev/input/mouse0第1個(gè)鼠標(biāo)
  99. 33 = /dev/input/mouse1第2個(gè)鼠標(biāo)
  100. ...
  101. 62 = /dev/input/mouse30第31個(gè)鼠標(biāo)
  102. 63 = /dev/input/mice所有鼠標(biāo)的統(tǒng)一
  103. 64 = /dev/input/event0第1個(gè)事件隊(duì)列
  104. 65 = /dev/input/event1第2個(gè)事件隊(duì)列
  105. ...
  106. 95 = /dev/input/event1第32個(gè)事件隊(duì)列
  107. 21 char通用 SCSI 設(shè)備(通常是SCSI光驅(qū))
  108. 0 = /dev/sg0第1個(gè)通用 SCSI 設(shè)備
  109. 1 = /dev/sg1第2個(gè)通用 SCSI 設(shè)備
  110. ...
  111. 29 char通用幀緩沖(frame buffer)設(shè)備
  112. 0 = /dev/fb0第1個(gè)幀緩沖設(shè)備
  113. 1 = /dev/fb1第2個(gè)幀緩沖設(shè)備
  114. ...
  115. 31 = /dev/fb31第32個(gè)幀緩沖設(shè)備
  116. 30 chariBCS-2 兼容設(shè)備
  117. 0 = /dev/socksys套接字訪問(wèn)接口
  118. 1 = /dev/spxSVR3 本地 X 接口
  119. 32 = /dev/inet/ip網(wǎng)絡(luò)訪問(wèn)接口
  120. 33 = /dev/inet/icmp
  121. 34 = /dev/inet/ggp
  122. 35 = /dev/inet/ipip
  123. 36 = /dev/inet/tcp
  124. 37 = /dev/inet/egp
  125. 38 = /dev/inet/pup
  126. 39 = /dev/inet/udp
  127. 40 = /dev/inet/idp
  128. 41 = /dev/inet/rawip
  129. 此外,iBCS-2 還需要下面的連接必須存在
  130. /dev/ip -> /dev/inet/ip
  131. /dev/icmp -> /dev/inet/icmp
  132. /dev/ggp -> /dev/inet/ggp
  133. /dev/ipip -> /dev/inet/ipip
  134. /dev/tcp -> /dev/inet/tcp
  135. /dev/egp -> /dev/inet/egp
  136. /dev/pup -> /dev/inet/pup
  137. /dev/udp -> /dev/inet/udp
  138. /dev/idp -> /dev/inet/idp
  139. /dev/rawip -> /dev/inet/rawip
  140. /dev/inet/arp -> /dev/inet/udp
  141. /dev/inet/rip -> /dev/inet/udp
  142. /dev/nfsd -> /dev/socksys
  143. /dev/X0R -> /dev/null
  144. 36 charNetlink 支持
  145. 0 = /dev/route路由, 設(shè)備更新, kernel to user
  146. 3 = /dev/fwmonitorFirewall packet 復(fù)制
  147. 59 charsf 防火墻模塊
  148. 0 = /dev/firewall與 sf 內(nèi)核模塊通信
  149. 65 blockSCSI 磁盤(16-31)
  150. 0 = /dev/sdq第17個(gè) SCSI 磁盤(整個(gè)磁盤)
  151. 16 = /dev/sdr第18個(gè) SCSI 磁盤(整個(gè)磁盤)
  152. 32 = /dev/sds第19個(gè) SCSI 磁盤(整個(gè)磁盤)
  153. ...
  154. 240 = /dev/sdaf第32個(gè) SCSI 磁盤(整個(gè)磁盤)
  155. 66 blockSCSI 磁盤(32-47)
  156. 0 = /dev/sdag第33個(gè) SCSI 磁盤(整個(gè)磁盤)
  157. 16 = /dev/sdah第34個(gè) SCSI 磁盤(整個(gè)磁盤)
  158. 32 = /dev/sdai第35個(gè) SCSI 磁盤(整個(gè)磁盤)
  159. ...
  160. 240 = /dev/sdav第48個(gè) SCSI 磁盤(整個(gè)磁盤)
  161. 89 charI2C 總線接口
  162. 0 = /dev/i2c-0第1個(gè) I2C 適配器
  163. 1 = /dev/i2c-1第2個(gè) I2C 適配器
  164. ...
  165. 98 block用戶模式下的虛擬塊設(shè)備(分區(qū)處理方式與 SCSI 磁盤相同)
  166. 0 = /dev/ubda第1個(gè)用戶模式塊設(shè)備
  167. 16 = /dev/udbb第2個(gè)用戶模式塊設(shè)備
  168. ...
  169. 103 block審計(jì)(Audit)設(shè)備
  170. 0 = /dev/audit審計(jì)(Audit)設(shè)備
  171. 128-135 charUnix98 PTY master
  172. 這些設(shè)備不應(yīng)當(dāng)存在設(shè)備節(jié)點(diǎn),而應(yīng)當(dāng)通過(guò) /dev/ptmx 接口訪問(wèn)。
  173. 136-143 charUnix98 PTY slave
  174. 這些設(shè)備節(jié)點(diǎn)是自動(dòng)生成的(伴有適當(dāng)?shù)臋?quán)限和模式),不能手動(dòng)創(chuàng)建。
  175. 方法是通過(guò)使用適當(dāng)?shù)?mount 選項(xiàng)(通常是:mode=0620,gid=<"tty"組的gid>)
  176. 將 devpts 文件系統(tǒng)掛載到 /dev/pts 目錄即可。
  177. 0 = /dev/pts/0第1個(gè) Unix98 PTY slave
  178. 1 = /dev/pts/1第2個(gè) Unix98 PTY slave
  179. ...
  180. 153 blockEnhanced Metadisk RAID (EMD) 存儲(chǔ)單元(分區(qū)處理方式與 SCSI 磁盤相同)
  181. 0 = /dev/emd/0第1個(gè)存儲(chǔ)單元
  182. 1 = /dev/emd/0p1第1個(gè)存儲(chǔ)單元的第1個(gè)分區(qū)
  183. 2 = /dev/emd/0p2第1個(gè)存儲(chǔ)單元的第2個(gè)分區(qū)
  184. ...
  185. 15 = /dev/emd/0p15第1個(gè)存儲(chǔ)單元的第15個(gè)分區(qū)
  186. 16 = /dev/emd/1第2個(gè)存儲(chǔ)單元
  187. 32 = /dev/emd/2第3個(gè)存儲(chǔ)單元
  188. ...
  189. 240 = /dev/emd/15第16個(gè)存儲(chǔ)單元
  190. 180 charUSB 字符設(shè)備
  191. 96 = /dev/usb/hiddev0第1個(gè)USB人機(jī)界面設(shè)備(鼠標(biāo)/鍵盤/游戲桿/手寫版等人操作計(jì)算機(jī)的設(shè)備)
  192. ...
  193. 111 = /dev/usb/hiddev15第16個(gè)USB人機(jī)界面設(shè)備
  194. 180 blockUSB 塊設(shè)備(U盤之類)
  195. 0 = /dev/uba第1個(gè)USB 塊設(shè)備
  196. 8 = /dev/ubb第2個(gè)USB 塊設(shè)備
  197. 16 = /dev/ubc第3個(gè)USB 塊設(shè)備
  198. ...
  199. 192 char內(nèi)核 profiling 接口
  200. 0 = /dev/profileProfiling 控制設(shè)備
  201. 1 = /dev/profile0CPU 0 的 Profiling 設(shè)備
  202. 2 = /dev/profile1CPU 1 的 Profiling 設(shè)備
  203. ...
  204. 193 char內(nèi)核事件跟蹤接口
  205. 0 = /dev/trace跟蹤控制設(shè)備
  206. 1 = /dev/trace0CPU 0 的跟蹤設(shè)備
  207. 2 = /dev/trace1CPU 1 的跟蹤設(shè)備
  208. ...
  209. 195 charNvidia 圖形設(shè)備(比如顯卡)
  210. 0 = /dev/nvidia0第1個(gè) Nvidia 卡
  211. 1 = /dev/nvidia1第2個(gè) Nvidia 卡
  212. ...
  213. 255 = /dev/nvidiactlNvidia 卡控制設(shè)備
  214. 202 char特定于CPU模式的寄存器(model-specific register,MSR)
  215. 0 = /dev/cpu/0/msrCPU 0 的 MSRs
  216. 1 = /dev/cpu/1/msrCPU 1 的 MSRs
  217. ...
  218. 203 charCPU CPUID 信息
  219. 0 = /dev/cpu/0/cpuidCPU 0 的 CPUID
  220. 1 = /dev/cpu/1/cpuidCPU 1 的 CPUID
  221. ...

有沒有感到很奇怪?為什么沒有 /dev/hda 這樣的設(shè)備,難道不常用么?原因在于從 2.6.19 版本開始,內(nèi)核引入了新的ATA驅(qū)動(dòng),將SATA/PATA硬盤統(tǒng)一使用 /dev/sd? 來(lái)表示了,所以 /dev/hd? 就沒有存在的必要了。具體說(shuō)來(lái)也就是你在編譯內(nèi)核的時(shí)候不要再使用"ATA/ATAPI/MFM/RLL support"下面的驅(qū)動(dòng),而是使用更新的"Serial ATA and Parallel ATA drivers"驅(qū)動(dòng)。

鏈接、套接字、管道、掛載點(diǎn)

這部分詳細(xì)說(shuō)明一些應(yīng)該或可能存在于 /dev 目錄之外的文件。鏈接最好使用與這里完全相同的格式(絕對(duì)路徑或相對(duì)路徑)。究竟是使用硬鏈接(hard)還是軟連接(symbolic)取決于不同的設(shè)備。

必須的鏈接

必須在所有的系統(tǒng)上都存在這些連接:

  1. 鏈接目標(biāo)鏈接類型簡(jiǎn)要說(shuō)明
  2. /dev/fd/proc/self/fdsymbolic文件描述府
  3. /dev/stdinfd/0symbolic標(biāo)準(zhǔn)輸入文件描述府
  4. /dev/stdoutfd/1symbolic標(biāo)準(zhǔn)輸出文件描述符
  5. /dev/stderrfd/2symbolic標(biāo)準(zhǔn)錯(cuò)誤文件描述符
  6. /dev/nfsdsocksyssymbolic僅為 iBCS-2 所必須
  7. /dev/X0Rnullsymbolic僅為 iBCS-2 所必須
  8. [注意] /dev/X0R 是 <字母 X>-<數(shù)字 0>-<字母 R>
推薦的鏈接

推薦在所有的系統(tǒng)上都存在這些連接:

  1. 鏈接目標(biāo)鏈接類型簡(jiǎn)要說(shuō)明
  2. /dev/core/proc/kcoresymbolic為了向后兼容
  3. /dev/ramdiskram0symbolic為了向后兼容
  4. /dev/ftapeqft0symbolic為了向后兼容
  5. /dev/bttv0video0symbolic為了向后兼容
  6. /dev/radioradio0symbolic為了向后兼容
  7. /dev/i2o*/dev/i2o/*symbolic為了向后兼容
  8. /dev/scd?sr?hard代替 SCSI CD-ROM 的名字
本地定義的鏈接

下面的鏈接很可能需要根據(jù)機(jī)器的實(shí)際硬件配置創(chuàng)建其中的一部分甚至全部。這些鏈接僅僅是為了迎合習(xí)慣用法,它們既非必須也非推薦。

  1. 鏈接目標(biāo)鏈接類型簡(jiǎn)要說(shuō)明
  2. /dev/mousemouse portsymbolic當(dāng)前鼠標(biāo)
  3. /dev/tapetape devicesymbolic當(dāng)前磁帶
  4. /dev/cdromCD-ROM devicesymbolic當(dāng)前CD-ROM
  5. /dev/cdwriterCD-writersymbolic當(dāng)前CD-writer
  6. /dev/scannerscannersymbolic當(dāng)前掃描儀
  7. /dev/modemmodem portsymbolic當(dāng)前調(diào)制解調(diào)器
  8. /dev/rootroot devicesymbolic當(dāng)前根文件系統(tǒng)所在設(shè)備
  9. /dev/swapswap devicesymbolic當(dāng)前swap所在設(shè)備

/dev/modem 不應(yīng)當(dāng)用于能夠同時(shí)支持呼入和呼出的modem,因?yàn)橥鶗?huì)導(dǎo)致鎖文件問(wèn)題。如果存在 /dev/modem ,那么它應(yīng)當(dāng)指向一個(gè)恰當(dāng)?shù)闹?TTY 設(shè)備。

對(duì)于SCSI設(shè)備,/dev/tape 和 /dev/cdrom 應(yīng)該分別指向"cooked"設(shè)備 /dev/st* 和 /dev/sr* ;而 /dev/cdwriter 和 /dev/scanner 應(yīng)當(dāng)分別指向恰當(dāng)?shù)?/dev/sg* 。

/dev/mouse 可以指向一個(gè)主串行 TTY 設(shè)備、一個(gè)硬件鼠標(biāo)、或者一個(gè)對(duì)應(yīng)鼠標(biāo)驅(qū)動(dòng)程序的套接字(例如 /dev/gpmdata)。

套接字和管道

持久套接字和命名管道可以存在于 /dev 中。常見的有:

  1. /dev/printersocketlpd 本地套接字
  2. /dev/logsocketsyslog 本地套接字
  3. /dev/gpmdatasocketgpm 鼠標(biāo)多路復(fù)用器(multiplexer)
  4. /dev/gpmctlsocket(LFS-LiveCD中出現(xiàn))
  5. /dev/initctlfifo pipeinit 監(jiān)聽它并從中獲取信息(用戶與 init 進(jìn)程交互的通道)
掛載點(diǎn)

以下名稱被保留用于掛載特殊的文件系統(tǒng)。這些特殊的文件系統(tǒng)只提供內(nèi)核界面而不提供標(biāo)準(zhǔn)的設(shè)備節(jié)點(diǎn)。

  1. /dev/ptsdevptsPTY slave 文件系統(tǒng)
  2. /dev/shmtmpfs提供對(duì) POSIX 共享內(nèi)存的直接訪問(wèn)
終端設(shè)備

終端(或TTY)設(shè)備是一種特殊的字符設(shè)備。終端設(shè)備是可以在會(huì)話中扮演控制終端角色的任何設(shè)備,包括:虛擬控制臺(tái)、串行接口(已廢棄)、偽終端(PTY)。

所有的終端設(shè)備共享一個(gè)通用的功能集合:line discipline,它既包含通用的終端 line discipline 也包含SLIP和PPP模式。所有的終端設(shè)備的命名都很相似。這部分內(nèi)容將解釋命名規(guī)則和各種類型的TTY(終端)的使用。需要注意的是這些命名習(xí)慣包含了幾個(gè)歷史遺留包袱。其中的一些是Linux所特有的,另一些則是繼承自其他系統(tǒng),還有一些反映了Linux在成長(zhǎng)過(guò)程中拋棄了原來(lái)借用自其它系統(tǒng)的一些習(xí)慣。井號(hào)(#)在設(shè)備名里表示一個(gè)無(wú)前導(dǎo)零的十進(jìn)制數(shù)。

虛擬控制臺(tái)(Virtual console)和控制臺(tái)設(shè)備(console device)

虛擬控制臺(tái)是在系統(tǒng)視頻監(jiān)視器上全屏顯示的終端。虛擬控制臺(tái)被命名為編號(hào)從 /dev/tty1 開始的 /dev/tty# 。/dev/tty0 是當(dāng)前虛擬控制臺(tái)。/dev/tty0 用于在不能使用幀緩沖設(shè)備(/dev/fb*)的機(jī)器上存取系統(tǒng)視頻卡,注意,不要將 /dev/console 用于此目的。/dev/console 由內(nèi)核管理,系統(tǒng)消息將被發(fā)送到這里。單用戶模式下必須允許 login 使用 /dev/console 。

串行接口

這里所說(shuō)的"串行接口"是指 RS-232 串行接口和任何模擬這種接口的設(shè)備,不管是在硬件(例如調(diào)制解調(diào)器)還是在軟件(例如ISDN驅(qū)動(dòng))中模擬。在linux中的每一個(gè)串行接口都有兩個(gè)設(shè)備名:主設(shè)備或呼入(callin)設(shè)備、交替設(shè)備或呼出(callout)設(shè)備。設(shè)備類型之間使用字母的大小寫進(jìn)行區(qū)分。比如,對(duì)于任意字母X,"tty"設(shè)備名為 /dev/ttyX# ,而"cu"設(shè)備名則為 /dev/cux# 。由于歷史原因,/dev/ttyS# 和 /dev/ttyC# 分別等價(jià)于 /dev/cua# 和 /dev/cub# 。名稱 /dev/ttyQ# 和 /dev/cuq# 被保留為本地使用。

偽終端(PTY)

偽終端用于創(chuàng)建登陸會(huì)話或提供其它功能,比如通過(guò) TTY line discipline (包括SLIP或者PPP功能)來(lái)處理任意的數(shù)據(jù)生成。每一個(gè) PTY 都有一個(gè)master端和一個(gè)slave端。按照 System V/Unix98 的 PTY 命名方案,所有master端共享同一個(gè) /dev/ptmx 設(shè)備節(jié)點(diǎn)(打開它內(nèi)核將自動(dòng)給出一個(gè)未分配的PTY),所有slave端都位于 /dev/pts 目錄下,名為 /dev/pts/# (內(nèi)核會(huì)根據(jù)需要自動(dòng)生成和刪除它們)。

一旦master端被打開,相應(yīng)的slave設(shè)備就可以按照與 TTY 設(shè)備完全相同的方式使用。master設(shè)備與slave設(shè)備之間通過(guò)內(nèi)核進(jìn)行連接,等價(jià)于擁有 TTY 功能的雙向管道(pipe)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 当阳市| 九寨沟县| 迁西县| 陇西县| 赫章县| 驻马店市| 胶南市| 信宜市| 锦屏县| 嘉峪关市| 辽源市| 新余市| 盐城市| 斗六市| 古浪县| 祁东县| 中阳县| 珠海市| 铜山县| 文昌市| 股票| 敦化市| 灵丘县| 青岛市| 瑞金市| 阿拉善左旗| 贡觉县| 轮台县| 体育| 连州市| 昌乐县| 崇信县| 桐乡市| 车险| 华坪县| 常州市| 临西县| 乃东县| 曲阜市| 乌兰察布市| 巴东县|