日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux如何查找設(shè)備的次設(shè)備號(hào)? (linux 查找次設(shè)備號(hào))

Linux是一款開源的操作系統(tǒng),由于它的開源性和免費(fèi)性以及出色的穩(wěn)定性和性能,因此在服務(wù)器、嵌入式設(shè)備和移動(dòng)設(shè)備等場(chǎng)合得到了廣泛的應(yīng)用。在Linux系統(tǒng)中,設(shè)備驅(qū)動(dòng)程序是連接操作系統(tǒng)和底層硬件設(shè)備的橋梁,可以通過訪問設(shè)備上的設(shè)備文件來進(jìn)行讀寫等操作。而在進(jìn)行設(shè)備讀寫操作之前,必須先找到設(shè)備文件的設(shè)備文件名或設(shè)備號(hào)以及次設(shè)備號(hào),其中設(shè)備號(hào)是用來識(shí)別設(shè)備的主要編號(hào),而次設(shè)備號(hào)是用來識(shí)別設(shè)備不同的分區(qū)或邏輯分區(qū)。

成都創(chuàng)新互聯(lián)公司2013年至今,先為恩平等服務(wù)建站,恩平等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為恩平企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

本文主要介紹在Linux系統(tǒng)中如何查找設(shè)備的次設(shè)備號(hào),分為以下幾個(gè)部分:

一、設(shè)備文件概述

在Linux系統(tǒng)中,所有的設(shè)備都被抽象為一個(gè)文件,稱為設(shè)備文件。設(shè)備文件通常位于/dev目錄下,以特殊字符文件的形式存在,它們不是普通的文本文件,而是連接到設(shè)備驅(qū)動(dòng)程序的一個(gè)接口。設(shè)備文件有兩種類型,一種是字符設(shè)備文件,另一種是塊設(shè)備文件。

字符設(shè)備文件是按照字節(jié)來訪問設(shè)備的文件,適用于那些每個(gè)字符都是獨(dú)立的設(shè)備,如終端設(shè)備、串行口、打印機(jī)等。而塊設(shè)備文件則是按照塊來訪問設(shè)備的文件,適用于那些需要數(shù)據(jù)緩存的設(shè)備,如硬盤設(shè)備、光驅(qū)等。在Linux系統(tǒng)中,設(shè)備文件名稱的格式如下:

/dev/設(shè)備名

其中,設(shè)備名分為兩部分,之一部分用來標(biāo)識(shí)設(shè)備類型,第二部分用來標(biāo)識(shí)設(shè)備的序號(hào)。例如,/dev/sda表示之一個(gè)SATA硬盤設(shè)備,/dev/ttyUSB0表示之一個(gè)USB串行設(shè)備。

二、如何查找設(shè)備的次設(shè)備號(hào)

在Linux系統(tǒng)中,每個(gè)設(shè)備都有一個(gè)設(shè)備號(hào)和一個(gè)次設(shè)備號(hào)。設(shè)備號(hào)用來區(qū)分不同的設(shè)備,而次設(shè)備號(hào)則用來區(qū)分同一設(shè)備中的多個(gè)分區(qū)或邏輯分區(qū)。因此,在進(jìn)行設(shè)備讀寫操作之前,必須先找到設(shè)備文件的設(shè)備號(hào)和次設(shè)備號(hào)。下面介紹幾種方法來查找設(shè)備的次設(shè)備號(hào)。

1.使用llk命令查看設(shè)備信息

llk命令是列出塊設(shè)備的命令,可以使用該命令來查看Linux系統(tǒng)中所有塊設(shè)備的信息,包括設(shè)備號(hào)、設(shè)備名稱、次設(shè)備號(hào)、掛載點(diǎn)等。該命令的基本語法如下:

llk [選項(xiàng)] [設(shè)備名]

其中,設(shè)備名可以是設(shè)備文件路徑,也可以是設(shè)備名稱。如果不指定設(shè)備名,則會(huì)列出所有塊設(shè)備的信息。例如,以下命令用來查看之一個(gè)SATA硬盤設(shè)備的信息:

$ llk /dev/sda

輸出結(jié)果如下所示,其中MAJ:MIN表示設(shè)備號(hào)與次設(shè)備號(hào):

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 232.9G 0 disk

├─sda1 8:1 0 200M 0 part /boot/efi

├─sda2 8:2 0 32G 0 part /

├─sda3 8:3 0 100G 0 part /home

└─sda4 8:4 0 100G 0 part /data

通過查看輸出信息可以看到,之一個(gè)SATA硬盤設(shè)備的設(shè)備號(hào)為8:0,而其分區(qū)的次設(shè)備號(hào)分別為8:1、8:2、8:3和8:4。

2.使用blkid命令查看設(shè)備信息

blkid命令是顯示塊設(shè)備的UUID和文件系統(tǒng)類型的命令,可以使用該命令來查看Linux系統(tǒng)中所有塊設(shè)備的信息,包括設(shè)備號(hào)、設(shè)備名稱、次設(shè)備號(hào)、文件系統(tǒng)類型等。該命令的基本語法如下:

blkid [選項(xiàng)] [設(shè)備名]

其中,設(shè)備名可以是設(shè)備文件路徑,也可以是設(shè)備名稱。如果不指定設(shè)備名,則會(huì)列出所有塊設(shè)備的信息。例如,以下命令用來查看之一個(gè)SATA硬盤設(shè)備的信息:

$ blkid /dev/sda

輸出結(jié)果如下所示,其中/dev/sda1、/dev/sda2等表示設(shè)備的分區(qū)設(shè)備文件名,而/dev/sda表示設(shè)備文件名:

/dev/sda: UUID=”XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX” TYPE=”xxx”

/dev/sda1: UUID=”XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX” TYPE=”efi”

/dev/sda2: UUID=”XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX” TYPE=”ext4″

/dev/sda3: UUID=”XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX” TYPE=”ext4″

/dev/sda4: UUID=”XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX” TYPE=”ext4″

通過查看輸出信息可以看到,之一個(gè)SATA硬盤設(shè)備的設(shè)備號(hào)為8:0,而其分區(qū)的次設(shè)備號(hào)分別為8:1、8:2、8:3和8:4。

3.使用udevadm命令查看設(shè)備信息

udevadm命令是用戶空間設(shè)備管理器的命令行工具,用來查詢和控制udev守護(hù)進(jìn)程。可以使用該命令來查看Linux系統(tǒng)中所有設(shè)備的信息,包括設(shè)備號(hào)、設(shè)備名稱、次設(shè)備號(hào)、設(shè)備總線等。該命令的基本語法如下:

udevadm info [選項(xiàng)] [設(shè)備文件名]

其中,設(shè)備文件名是要查詢的設(shè)備的設(shè)備文件名或設(shè)備路徑。例如,以下命令用來查看之一個(gè)SATA硬盤設(shè)備的信息:

$ udevadm info /dev/sda

輸出結(jié)果如下所示,其中MAJOR和MINOR表示設(shè)備號(hào)與次設(shè)備號(hào):

P: /devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda

N: sda

S: disk/by-id/ata-WDC_WD2500-22NCB1_WD-WCANK1003369

S: disk/by-id/wwn-0x50014ee20b57e055

S: disk/by-path/pci-0000:00:1f.2-ata-1

E: DEVLINKS=/dev/disk/by-id/ata-WDC_WD2500-22NCB1_WD-WCANK1003369 /dev/disk/by-id/wwn-0x50014ee20b57e055 /dev/disk/by-path/pci-0000:00:1f.2-ata-1

E: DEVNAME=/dev/sda

E: DEVPATH=/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda

E: DEVTYPE=disk

E: MAJOR=8

E: MINOR=0

E: SUBSYSTEM=block

通過查看輸出信息可以看到,之一個(gè)SATA硬盤設(shè)備的設(shè)備號(hào)為8:0,而其分區(qū)的次設(shè)備號(hào)分別為8:1、8:2、8:3和8:4。

在Linux系統(tǒng)中,設(shè)備文件是連接操作系統(tǒng)和底層硬件設(shè)備的橋梁,設(shè)備文件有兩種類型,一種是字符設(shè)備文件,另一種是塊設(shè)備文件。每個(gè)設(shè)備都有一個(gè)設(shè)備號(hào)和一個(gè)次設(shè)備號(hào),設(shè)備號(hào)用來區(qū)分不同的設(shè)備,而次設(shè)備號(hào)則用來區(qū)分同一設(shè)備中的多個(gè)分區(qū)或邏輯分區(qū)。本文介紹了三種方法來查找設(shè)備的次設(shè)備號(hào),包括使用llk命令、blkid命令和udevadm命令,這些方法都可以方便地幫助用戶查找設(shè)備的次設(shè)備號(hào),從而進(jìn)行設(shè)備讀寫操作。

相關(guān)問題拓展閱讀:

  • 主次設(shè)備號(hào)的應(yīng)用
  • 在linux中是不是能看到設(shè)備節(jié)點(diǎn)就說明設(shè)備可以被訪問了解決思路

主次設(shè)備號(hào)的應(yīng)用

當(dāng)沒有使用devfs時(shí),向系統(tǒng)增加一個(gè)驅(qū)動(dòng)程序意味著要賦值它一個(gè)主設(shè)備號(hào)。這一賦值過程應(yīng)該在驅(qū)動(dòng)程序(模塊)的初始化過程中完成,它調(diào)用如下函數(shù),這個(gè)函數(shù)定義在:

int register_chrdev(unsigned int major, const char *name, struct file_operations *fops);

返回值提示成功或者失敗。返回一個(gè)負(fù)值,表示出錯(cuò);返回零或正值,表示成功。參數(shù)major是所請(qǐng)求的主設(shè)備號(hào),name是你的設(shè)備的名字,它將在/proc/devices中出現(xiàn),fops是一個(gè)告旅指向函數(shù)隊(duì)列的指針,利用它完成對(duì)設(shè)襪亮凳備函數(shù)的調(diào)用。

主設(shè)備號(hào)是一個(gè)用來索引靜態(tài)字符設(shè)備組的整數(shù),“動(dòng)態(tài)分配主設(shè)備號(hào)”將在本章的稍后部分中介紹怎樣選擇一個(gè)主設(shè)備號(hào)。2.0內(nèi)核支持128個(gè)設(shè)備驅(qū)動(dòng),而2.2和2.4內(nèi)核支持256個(gè)(保留數(shù)值0和255為將來使用)。而次版本號(hào)(8位字節(jié)的數(shù))并沒有傳遞給register_chrdev函數(shù),因?yàn)榇伟姹咎?hào)是驅(qū)動(dòng)程序自己使用的。開發(fā)團(tuán)隊(duì)為了增加內(nèi)核可能支持的設(shè)備數(shù)量而帶來了很大的壓力,在開發(fā)樹2.5版本內(nèi)核的目標(biāo)中,設(shè)備號(hào)至少是16位的。

一旦設(shè)備驅(qū)動(dòng)程序注冊(cè)到內(nèi)核表中,它的操作都與分配的主設(shè)備號(hào)匹配,何時(shí)在字符設(shè)備文件上操作都與它的主設(shè)備號(hào)相關(guān)聯(lián),內(nèi)核都會(huì)通過file_operations結(jié)構(gòu)體查找并調(diào)用相應(yīng)的驅(qū)動(dòng)程序中的函數(shù)。為了這個(gè)原鍵滑因,傳遞給register_chrdev的指針應(yīng)該是指向驅(qū)動(dòng)程序中的全局結(jié)構(gòu)體,而不是一個(gè)局部的一個(gè)模塊初始化函數(shù)。

接下來的問題就是如何給程序一個(gè)名字以被它們用來請(qǐng)求你的設(shè)備驅(qū)動(dòng)程序。這個(gè)名字必須插入到/dev目錄中,并與你的驅(qū)動(dòng)程序的主設(shè)備號(hào)和次設(shè)備號(hào)相連。

在文件系統(tǒng)上創(chuàng)建一個(gè)設(shè)備節(jié)點(diǎn)的命令是mknod,而且你必須是超級(jí)用戶才能操作。除了要?jiǎng)?chuàng)建的節(jié)點(diǎn)名字外,該命令還帶三個(gè)參數(shù)。例如,命令:

mknod /dev/scull0 c 254 0

創(chuàng)建一個(gè)字符設(shè)備(c),主設(shè)備號(hào)是254,次設(shè)備號(hào)是0。由于歷史原因,次設(shè)備號(hào)應(yīng)該在0-255范圍內(nèi),有時(shí)它們存儲(chǔ)在一個(gè)字節(jié)中。存在很多原因擴(kuò)展可使用的次設(shè)備號(hào)的范圍,但就現(xiàn)在而言,仍然有8位限制。

請(qǐng)注意:如果一旦用mknod生成了一個(gè)特別的設(shè)備文件,它就永遠(yuǎn)存在了硬盤上,除非你明白的刪除了它。你可以通過執(zhí)行命令rm命令來刪除例子中的設(shè)備。

rm /dev/scull0

在linux中是不是能看到設(shè)備節(jié)點(diǎn)就說明設(shè)備可以被訪問了解決思路

Linux 中的設(shè)備有2種類型:字符設(shè)備(無緩沖且只能順序存取)、塊設(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))??梢酝ㄟ^ 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)。

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

主設(shè)備號(hào) 設(shè)備類型

次設(shè)備號(hào)=文件名 簡要說明

0 未命名設(shè)備(例如:掛載的非設(shè)備)

0 = 未空設(shè)備號(hào)保留

1 char 內(nèi)存設(shè)備

1 = /dev/mem 直接存取物理內(nèi)存

2 = /dev/kmem 存取經(jīng)過內(nèi)核虛擬之后的內(nèi)存

3 = /dev/null 空設(shè)備。任何寫入都將被直接丟棄,任何讀取都將得到EOF。

4 = /dev/port 存取 I/O 端口

5 = /dev/zero 零字節(jié)源,只能讀取到無限多的零字節(jié)。

7 = /dev/full 滿設(shè)備。任何寫入都將失敗,并把errno設(shè)為ENOSPC以表示沒有剩余空間。

8 = /dev/random 隨機(jī)數(shù)發(fā)生器。完全由用戶的輸入來產(chǎn)生隨機(jī)數(shù)。

如果用戶停止所有動(dòng)作,則停止產(chǎn)生新的隨機(jī)數(shù)。

9 = /dev/urandom 更快,但是不夠安全的隨機(jī)數(shù)發(fā)生器。盡可能由用戶的輸入來產(chǎn)生隨機(jī)數(shù),

如果用戶停止所有動(dòng)作,則把已經(jīng)產(chǎn)生的隨機(jī)數(shù)做為種子來產(chǎn)生新的隨機(jī)數(shù)。

10 = /dev/aio 異步 I/O 通知接口

11 = /dev/kmsg 任何對(duì)該文件的寫入都將作為 printk 的輸出

1 block RAM disk

0 = /dev/ram0 第1個(gè) RAM disk (initrd只能使用ram0)

1 = /dev/ram1 第2個(gè) RAM disk

200 = /dev/ram200 第200個(gè) RAM disk

4 char TTY(終端)設(shè)備

0 = /dev/tty0 當(dāng)前虛擬控制臺(tái)

1 = /dev/tty1 第1個(gè)虛擬控制臺(tái)

63 = /dev/tty63 第63個(gè)虛擬控制臺(tái)

4 block 如果根文件系統(tǒng)以是以只讀方式掛載的,那么就不可能創(chuàng)建真正的設(shè)備節(jié)點(diǎn),

此時(shí)就使用該設(shè)備作為動(dòng)態(tài)分配的主(major)設(shè)備的別名

0 = /dev/root

5 char 其他 TTY 設(shè)備

0 = /dev/tty 當(dāng)前 TTY 設(shè)備

1 = /dev/console 系統(tǒng)控制臺(tái)

2 = /dev/ptmx 所有 PTY master 的復(fù)用器

7 char 虛擬控制臺(tái)捕捉設(shè)備(這些設(shè)備既允許讀也允許寫)

0 = /dev/vcs 當(dāng)前虛擬控制臺(tái)(vc)的文本內(nèi)容

1 = /dev/vcs1 tty1 的文本內(nèi)容

63 = /dev/vcs63 tty63 的文本內(nèi)容

128 = /dev/vcsa 當(dāng)前虛擬控制臺(tái)(vc)的文本/屬性內(nèi)容

129 = /dev/vcsa1 tty1 的文本/屬性內(nèi)容

191 = /dev/vcsa63 tty63 的文本/屬性內(nèi)容

7 block 回環(huán)設(shè)備(用一個(gè)普通的磁盤文件來模擬一個(gè)塊設(shè)備)

對(duì)回環(huán)設(shè)備的綁定由 mount(8) 或 losetup(8) 處理

0 = /dev/loop0 第1個(gè)回環(huán)設(shè)備

1 = /dev/loop1 第2個(gè)回環(huán)設(shè)備

8 block SCSI 磁盤(0-15)

0 = /dev/sda 第1個(gè) SCSI 磁盤(整個(gè)磁盤)

16 = /dev/sdb 第2個(gè) SCSI 磁盤(整個(gè)磁盤)

32 = /dev/sdc 第3個(gè) SCSI 磁盤(整個(gè)磁盤)

240 = /dev/sdp 第16個(gè) SCSI 磁盤(整個(gè)磁盤)

分區(qū)表示方法如下(以第3個(gè) SCSI 磁盤為例)

33 = /dev/sdc1 第1個(gè)分區(qū)

34 = /dev/sdc2 第2個(gè)分區(qū)

47 = /dev/sdc15 第15個(gè)分區(qū)

對(duì)于Linux/i386來說,分區(qū)1-4是主分區(qū),5-15是邏輯分區(qū)。

9 block Metadisk(RAID)設(shè)備

0 = /dev/md0 第1組 metadisk

1 = /dev/md1 第2組 metadisk

metadisk 驅(qū)動(dòng)用于將同一個(gè)文件系統(tǒng)分割到多個(gè)物理磁盤上。

10 char 非串口鼠標(biāo),各種雜項(xiàng)設(shè)備和特性

1 = /dev/psaux PS/2鼠標(biāo)

131 = /dev/temperature 機(jī)器內(nèi)部溫度

134 = /dev/apm_bios APM(高級(jí)電源管理) BIOS

135 = /dev/rtc 實(shí)時(shí)時(shí)鐘(Real Time Clock)

144 = /dev/nvram 非易失配置 RAM

162 = /dev/bus 系統(tǒng)管理總線(System Management Bus)

164 = /dev/ipmo Intel的智能平臺(tái)管理(Intelligent Platform Management)接口

173 = /dev/ipmikcs 智能平臺(tái)管理(Intelligent Platform Management)接口

175 = /dev/agpgart AGP圖形地址重映射表(Graphics Address Remapping Table)

182 = /dev/perfctr 性能監(jiān)視計(jì)數(shù)器

183 = /dev/hwrng 通用硬件隨機(jī)數(shù)發(fā)生器

184 = /dev/cpu/microcode CPU微代碼更新接口

186 = /dev/atomicps 進(jìn)程狀態(tài)數(shù)據(jù)的原子快照

188 = /dev/buios Bus(系統(tǒng)管理總線) BIOS

200 = /dev/net/tun TAP/TUN 網(wǎng)絡(luò)設(shè)備(TAP/TUN以軟件的方式實(shí)現(xiàn)了網(wǎng)絡(luò)設(shè)備)

TAP模擬了以太網(wǎng)幀(第二層),TUN模擬了IP包(第三層)。

202 = /dev/emd/ctl 增強(qiáng)型 Metadisk RAID (EMD) 控制器

220 = /dev/mptctl Message passing technology (MPT) control

223 = /dev/input/uinput 用戶層輸入設(shè)備驅(qū)動(dòng)支持

227 = /dev/mcelog X86_64 Machine Check Exception driver

228 = /dev/hpet HPET driver

229 = /dev/fuse Fuse(用戶空間的虛擬文件系統(tǒng))

231 = /dev/snapshot 系統(tǒng)內(nèi)存快照

232 = /dev/kvm 基于內(nèi)核的虛構(gòu)機(jī)(基于AMD SVM和Intel VT硬件虛擬技術(shù))

11 block SCSI CD-ROM 設(shè)備

0 = /dev/scd0 第1個(gè) SCSI CD-ROM

1 = /dev/scd1 第2個(gè) SCSI CD-ROM

13 char 核心輸入設(shè)備

32 = /dev/input/mouse0 第1個(gè)鼠標(biāo)

33 = /dev/input/mouse1 第2個(gè)鼠標(biāo)

62 = /dev/input/mouse30 第31個(gè)鼠標(biāo)

63 = /dev/input/mice 所有鼠標(biāo)的統(tǒng)一

64 = /dev/input/event0 第1個(gè)事件隊(duì)列

65 = /dev/input/event1 第2個(gè)事件隊(duì)列

95 = /dev/input/event1 第32個(gè)事件隊(duì)列

21 char 通用 SCSI 設(shè)備(通常是SCSI光驅(qū))

0 = /dev/sg0 第1個(gè)通用 SCSI 設(shè)備

1 = /dev/sg1 第2個(gè)通用 SCSI 設(shè)備

29 char 通用幀緩沖(frame buffer)設(shè)備

0 = /dev/fb0 第1個(gè)幀緩沖設(shè)備

1 = /dev/fb1 第2個(gè)幀緩沖設(shè)備

31 = /dev/fb31 第32個(gè)幀緩沖設(shè)備

30 char iBCS-2 兼容設(shè)備

0 = /dev/socksys 套接字訪問接口

1 = /dev/spx SVR3 本地 X 接口

32 = /dev/inet/ip 網(wǎng)絡(luò)訪問接口

33 = /dev/inet/icmp

34 = /dev/inet/ggp

35 = /dev/inet/ipip

36 = /dev/inet/tcp

37 = /dev/inet/egp

38 = /dev/inet/pup

39 = /dev/inet/udp

40 = /dev/inet/idp

41 = /dev/inet/rawip

此外,iBCS-2 還需要下面的連接必須存在

/dev/ip -> /dev/inet/ip

/dev/icmp -> /dev/inet/icmp

/dev/ggp -> /dev/inet/ggp

/dev/ipip -> /dev/inet/ipip

/dev/tcp -> /dev/inet/tcp

/dev/egp -> /dev/inet/egp

/dev/pup -> /dev/inet/pup

/dev/udp -> /dev/inet/udp

/dev/idp -> /dev/inet/idp

/dev/rawip -> /dev/inet/rawip

/dev/inet/arp -> /dev/inet/udp

/dev/inet/rip -> /dev/inet/udp

/dev/nfsd -> /dev/socksys

/dev/X0R -> /dev/null

36 char Netlink 支持

0 = /dev/route 路由, 設(shè)備更新, kernel to user

3 = /dev/fwmonitor Firewall packet 復(fù)制

59 char sf 防火墻模塊

0 = /dev/firewall 與 sf 內(nèi)核模塊通信

65 block SCSI 磁盤(16-31)

0 = /dev/sdq 第17個(gè) SCSI 磁盤(整個(gè)磁盤)

16 = /dev/sdr 第18個(gè) SCSI 磁盤(整個(gè)磁盤)

32 = /dev/sds 第19個(gè) SCSI 磁盤(整個(gè)磁盤)

240 = /dev/sdaf 第32個(gè) SCSI 磁盤(整個(gè)磁盤)

66 block SCSI 磁盤(32-47)

0 = /dev/sdag 第33個(gè) SCSI 磁盤(整個(gè)磁盤)

16 = /dev/sdah 第34個(gè) SCSI 磁盤(整個(gè)磁盤)

32 = /dev/sdai 第35個(gè) SCSI 磁盤(整個(gè)磁盤)

240 = /dev/sdav 第48個(gè) SCSI 磁盤(整個(gè)磁盤)

89 char I2C 總線接口

0 = /dev/i2c-0 第1個(gè) I2C 適配器

1 = /dev/i2c-1 第2個(gè) I2C 適配器

98 block 用戶模式下的虛擬塊設(shè)備(分區(qū)處理方式與 SCSI 磁盤相同)

0 = /dev/ubda 第1個(gè)用戶模式塊設(shè)備

16 = /dev/udbb 第2個(gè)用戶模式塊設(shè)備

103 block 審計(jì)(Audit)設(shè)備

0 = /dev/audit 審計(jì)(Audit)設(shè)備

char Unix98 PTY master

這些設(shè)備不應(yīng)當(dāng)存在設(shè)備節(jié)點(diǎn),而應(yīng)當(dāng)通過 /dev/ptmx 接口訪問。

char Unix98 PTY slave

這些設(shè)備節(jié)點(diǎn)是自動(dòng)生成的(伴有適當(dāng)?shù)臋?quán)限和模式),不能手動(dòng)創(chuàng)建。

方法是通過使用適當(dāng)?shù)?mount 選項(xiàng)(通常是:mode=0620,gid=)

將 devpts 文件系統(tǒng)掛載到 /dev/pts 目錄即可。

0 = /dev/pts/0 第1個(gè) Unix98 PTY slave

1 = /dev/pts/1 第2個(gè) Unix98 PTY slave

153 block Enhanced Metadisk RAID (EMD) 存儲(chǔ)單元(分區(qū)處理方式與 SCSI 磁盤相同)

0 = /dev/emd/0 第1個(gè)存儲(chǔ)單元

1 = /dev/emd/0p1 第1個(gè)存儲(chǔ)單元的第1個(gè)分區(qū)

2 = /dev/emd/0p2 第1個(gè)存儲(chǔ)單元的第2個(gè)分區(qū)

15 = /dev/emd/0p15 第1個(gè)存儲(chǔ)單元的第15個(gè)分區(qū)

16 = /dev/emd/1 第2個(gè)存儲(chǔ)單元

32 = /dev/emd/2 第3個(gè)存儲(chǔ)單元

240 = /dev/emd/15 第16個(gè)存儲(chǔ)單元

180 char USB 字符設(shè)備

96 = /dev/u/hiddev0 第1個(gè)USB人機(jī)界面設(shè)備(鼠標(biāo)/鍵盤/游戲桿/手寫版等人操作計(jì)算機(jī)的設(shè)備)

111 = /dev/u/hiddev15 第16個(gè)USB人機(jī)界面設(shè)備

180 block USB 塊設(shè)備(U盤之類)

0 = /dev/uba 第1個(gè)USB 塊設(shè)備

8 = /dev/ubb 第2個(gè)USB 塊設(shè)備

16 = /dev/ubc 第3個(gè)USB 塊設(shè)備

192 char 內(nèi)核 profiling 接口

0 = /dev/profile Profiling 控制設(shè)備

1 = /dev/profile0 CPU 0 的 Profiling 設(shè)備

2 = /dev/profile1 CPU 1 的 Profiling 設(shè)備

193 char 內(nèi)核事件跟蹤接口

0 = /dev/trace 跟蹤控制設(shè)備

1 = /dev/trace0 CPU 0 的跟蹤設(shè)備

2 = /dev/trace1 CPU 1 的跟蹤設(shè)備

195 char Nvidia 圖形設(shè)備(比如顯卡)

0 = /dev/nvidia0 第1個(gè) Nvidia 卡

1 = /dev/nvidia1 第2個(gè) Nvidia 卡

255 = /dev/nvidiactl Nvidia 卡控制設(shè)備

202 char 特定于CPU模式的寄存器(model-specific register,MSR)

0 = /dev/cpu/0/msr CPU 0 的 MSRs

1 = /dev/cpu/1/msr CPU 1 的 MSRs

203 char CPU CPUID 信息

0 = /dev/cpu/0/cpuid CPU 0 的 CPUID

1 = /dev/cpu/1/cpuid CPU 1 的 CPUID

===================================================================

這部分詳細(xì)說明一些應(yīng)該或可能存在于 /dev 目錄之外的文件。

鏈接更好使用與這里完全相同的格式(絕對(duì)路徑或相對(duì)路徑)。

究竟是使用硬鏈接(hard)還是軟連接(symbolic)取決于不同的設(shè)備。

必須的鏈接

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

鏈接 目標(biāo) 鏈接類型 簡要說明

/dev/fd /proc/self/fd symbolic 文件描述府

/dev/stdin fd/0 symbolic 標(biāo)準(zhǔn)輸入文件描述府

/dev/stdout fd/1 symbolic 標(biāo)準(zhǔn)輸出文件描述符

/dev/stderr fd/2 symbolic 標(biāo)準(zhǔn)錯(cuò)誤文件描述符

/dev/nfsd socksys symbolic 僅為 iBCS-2 所必須

/dev/X0R null symbolic 僅為 iBCS-2 所必須

/dev/X0R 是 —

推薦的鏈接

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

鏈接 目標(biāo) 鏈接類型 簡要說明

/dev/core /proc/kcore symbolic 為了向后兼容

/dev/ramdisk ram0 symbolic 為了向后兼容

/dev/ftape qft0 symbolic 為了向后兼容

/dev/bttv0 video0 symbolic 為了向后兼容

/dev/radio radio0 symbolic 為了向后兼容

/dev/i2o* /dev/i2o/* symbolic 為了向后兼容

/dev/scd? sr? hard 代替 SCSI CD-ROM 的名字

本地定義的鏈接

下面的鏈接很可能需要根據(jù)機(jī)器的實(shí)際硬件配置創(chuàng)建其中的一部分甚至全部。

這些鏈接僅僅是為了迎合習(xí)慣用法,它們既非必須也非推薦。

鏈接 目標(biāo) 鏈接類型 簡要說明

/dev/mouse mouse port symbolic 當(dāng)前鼠標(biāo)

/dev/tape tape device symbolic 當(dāng)前磁帶

/dev/cdrom CD-ROM device symbolic 當(dāng)前CD-ROM

/dev/cdwriter CD-writer symbolic 當(dāng)前CD-writer

/dev/scanner scanner symbolic 當(dāng)前掃描儀

/dev/modem modem port symbolic 當(dāng)前調(diào)制解調(diào)器

/dev/root root device symbolic 當(dāng)前根文件系統(tǒng)所在設(shè)備

/dev/swap swap device symbolic 當(dāng)前swap所在設(shè)備

/dev/modem 不應(yīng)當(dāng)用于能夠同時(shí)支持呼入和呼出的modem,因?yàn)橥鶗?huì)導(dǎo)致鎖文件問題。

如果存在 /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 中。常見的有:

/dev/printer socket lpd 本地套接字

/dev/log socket syslog 本地套接字

/dev/gpmdata socket gpm 鼠標(biāo)多路復(fù)用器(multiplexer)

/dev/gpmctl socket (LFS-LiveCD中出現(xiàn))

/dev/initctl fifo pipe init 監(jiān)聽它并從中獲取信息(用戶與 init 進(jìn)程交互的通道)

掛載點(diǎn)

以下名稱被保留用于掛載特殊的文件系統(tǒng)。

這些特殊的文件系統(tǒng)只提供內(nèi)核界面而不提供標(biāo)準(zhǔn)的設(shè)備節(jié)點(diǎn)。

/dev/pts devpts PTY slave 文件系統(tǒng)

/dev/shm tmpfs 提供對(duì) POSIX 共享內(nèi)存的直接訪問

===================================================================

終端(或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在成長過程中拋棄了原來借用自其它系統(tǒng)的一些習(xí)慣。

井號(hào)(#)在設(shè)備名里表示一個(gè)無前導(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 。

串行接口(已廢棄)

這里所說的”串行接口”是指 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ì)話或提供其它功能,

比如通過 TTY line discipline (包括SLIP或者PPP功能)來處理任意的數(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è)備之間通過內(nèi)核進(jìn)行連接,等價(jià)于擁有 TTY 功能的雙向管道(pipe)。

===============================

你可能會(huì)很奇怪,為什么沒有 /dev/hda 這樣的設(shè)備,難道不常用么?

關(guān)于linux 查找次設(shè)備號(hào)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價(jià)格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機(jī)房服務(wù)器托管租用。


新聞名稱:Linux如何查找設(shè)備的次設(shè)備號(hào)? (linux 查找次設(shè)備號(hào))
本文地址:http://www.dlmjj.cn/article/dhdhspe.html