當前位置:首頁 » 操作系統 » 設備號linux

設備號linux

發布時間: 2022-04-30 01:48:08

1. 簡述linux內核如何給設備分配主設備號

標準的設備類型都有固定的主設備號,這個可以查詢到。
如果是自定義的設備,可以讓內核自動分配一個空閑的主設備號。

2. Linux的設備和設備號是指什麼

Linux中I/O設備分為兩類:字元設備和塊設備。兩種設備本身沒有嚴格限制,但是,基於不同的功能進行了分類。 (1)字元設備:提供連續的數據流,應用程序可以順序讀取,通常不支持隨機存取。相反,此類設備支持按位元組/字元來讀寫數據。舉例來說,鍵盤、串口、數據機都是典型的字元設備。 (2)塊設備:應用程序可以隨機訪問設備數據,程序可自行確定讀取數據的位置。硬碟、軟盤、CD-ROM驅動器和快閃記憶體都是典型的塊設備,應用程序可以定址磁碟上的任何位置,並由此讀取數據。此外,數據的讀寫只能以塊(通常是512B)的倍數進行。與字元設備不同,塊設備並不支持基於字元的定址。 總結一下,這兩種類型的設備的根本區別在於它們是否可以被隨機訪問。字元設備只能順序讀取,塊設備可以隨機讀取。

3. 如何靜態釋放設備號Linux

在linux內核中用dev_t來保存設備的編號, dev_t 是個32位數值12位為主設備號, 20位次設備號, 想要獲得dev_t的設備號最好使用給定的宏MAJOR(dev_t dev), MINOR(dev_t dev).

4. linux設備驅動為什麼有主設備號與次設備號

是什麼設備?是一類吧(如tty設備),一個驅動對應多個主設備號不同的設備,open時需要根據主設備號確定是哪一個。

5. Linux中如何通過設備號找到設備

一個字元設備或者塊設備都有一個主設備號和次設備號。主設備號和次設備號統稱為設備號。主設備號用來表示一個特定的驅動程序。次設備號用來表示使用該驅動程序的各設備。

查看主設備號:

# cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
6 lp
7 vcs
10 misc
13 input
14 sound
21 sg
29 fb
116 alsa
128 ptm
136 pts
162 raw
180 usb
189 usb_device
202 cpu/msr
203 cpu/cpuid
216 rfcomm
249 blkwatch_272
250 hidraw
251 usbmon
252 bsg
253 pcmcia
254 rtc

Block devices:
1 ramdisk
2 fd
259 blkext
7 loop
8 sd
9 md
11 sr
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
253 device-mapper
254 mdp

如上所示,該命令會顯示字元設備和塊設備的主設備號。如果你想查看某個主設備號,那麼可以

[root@mylnx01 ~]# cat /proc/devices | grep 253
253 pcmcia
253 device-mapper

其中Device Mapper,Device Mapper 是 Linux 2.6 內核中提供的一種從邏輯設備到物理設備的映射框架機制,在該機制下,用戶可以很方便的根據自己的需要制定實現存儲資源的管理策略,當前比較流行的 Linux 下的邏輯卷管理器如 LVM2(Linux Volume Manager 2 version)、EVMS(Enterprise Volume Management System)、dmraid(Device Mapper Raid Tool)等都是基於該機制實現的。

次設備號查看

[root@mylnx01 ~]# ls -l /dev 或 ll /dev[root@mylnx01 ~]# ll /dev | grep 253 | grep -v grep
brw-rw---- 1 root root 253, 0 Jul 17 23:08 dm-0
brw-rw---- 1 root root 253, 1 Jul 17 23:08 dm-1
brw-rw---- 1 root root 253, 2 Jul 17 23:08 dm-2
brw-rw---- 1 root root 253, 3 Jul 17 23:08 dm-3
brw-rw---- 1 root root 253, 4 Jul 17 23:09 dm-4
brw------- 1 root root 253, 1 Jul 17 23:09 root

但是在一台伺服器的日誌信息遇到下面錯誤信息,通過/dev 沒有找到次設備號為253:14的塊設備。 如下所示

Jul 19 05:02:01 mylnx01 kernel: BLKWATCH ERR: Attempt to get a sector index out of the bitmap bounds.

Jul 19 05:02:01 mylnx01 kernel: BLKWATCH ERR: Critical error 1 happened for device 253:14. Additional info: Failed to mark block as dirty.

[root@getlnx01 ~]# ll /dev | grep 253 | grep -v grep

關於次設備號的主要用途,這篇博客主設備號和次設備號介紹了部分內容。

1、區分設備驅動程序控制的實際設備;

2、區分不同用途的設備 (misc 系列設備)

3、區分塊設備的分區 (partition)

通常,為了使應用程序區分所控制設備的類型,內核使用主設備號。而存在多台同類設備時,為了選擇其中的一種,設備驅動程序就使用次設備號。

# ll /dev/ | grep sd #或者命令 ll /dev/ | grep disk
brw-r----- 1 root disk 8, 0 Jul 17 23:08 sda
brw-r----- 1 root disk 8, 1 Jul 17 23:10 sda1
brw-r----- 1 root disk 8, 2 Jul 17 23:08 sda2
brw-r----- 1 root disk 8, 3 Jul 17 23:08 sda3
brw-r----- 1 root disk 8, 16 Jul 17 23:08 sdb
brw-r----- 1 root disk 8, 17 Jul 17 23:08 sdb1
brw-r----- 1 root disk 8, 18 Jul 17 23:08 sdb2
brw-r----- 1 root disk 8, 21 Jul 17 23:08 sdb5
brw-r----- 1 root disk 8, 32 Jul 17 23:08 sdc
brw-r----- 1 root disk 8, 33 Jul 17 23:08 sdc1
brw-r----- 1 root disk 8, 34 Jul 17 23:08 sdc2
brw-r----- 1 root disk 8, 37 Jul 17 23:08 sdc5
brw-r----- 1 root disk 8, 48 Jul 17 23:08 sdd
brw-r----- 1 root disk 8, 49 Jul 17 23:08 sdd1
brw-r----- 1 root disk 8, 50 Jul 17 23:08 sdd2
brw-r----- 1 root disk 8, 51 Jul 17 23:08 sdd3
brw-r----- 1 root disk 8, 53 Jul 17 23:08 sdd5
brw-r----- 1 root disk 8, 64 Jul 17 23:08 sde
brw-r----- 1 root disk 8, 65 Jul 17 23:08 sde1
brw-r----- 1 root disk 8, 66 Jul 17 23:08 sde2
brw-r----- 1 root disk 8, 67 Jul 17 23:08 sde3
brw-r----- 1 root disk 8, 69 Jul 17 23:08 sde5
brw-r----- 1 root disk 8, 80 Jul 17 23:08 sdf
brw-r----- 1 root disk 8, 81 Jul 17 23:08 sdf1
brw-r----- 1 root disk 8, 85 Jul 17 23:08 sdf5
brw-r----- 1 root disk 8, 96 Jul 17 23:08 sdg
brw-r----- 1 root disk 8, 97 Jul 17 23:08 sdg1
brw-r----- 1 root disk 8, 98 Jul 17 23:08 sdg2
brw-r----- 1 root disk 8, 101 Jul 17 23:08 sdg5
brw-r----- 1 root disk 8, 112 Jul 17 23:08 sdh
brw-r----- 1 root disk 8, 113 Jul 17 23:08 sdh1
brw-r----- 1 root disk 8, 117 Jul 17 23:08 sdh5

6. linux中的設備號如何計算

就是主設備號左移8位+次設備號
比如你說的硬碟是3,3要左移八位,一個16進制的數字是4位,3<<8=0x3 00
加法就不用多說了。。

7. linux查找設備號命令

查看linux設備型號
[root@rac1 ~]# dmidecode -s system-proct-name
# SMBIOS implementations newer than version 2.8 are not
# fully supported by this version of dmidecode.
#查看內核/操作系統/CPU信息
uname -a
#查看操作系統版本
head -n 1 /etc/issue
#查看CPU信息
cat /proc/cpuinfo
#查看計算機名
hostname
#列出所有PCI設備
lspci -tv
#列出所有USB設備 《Linux就該這么學》
lsusb -tv

8. Linux的設備和設備號是指什麼可否簡單的解釋一下

Linux中I/O設備分為兩類:字元設備和塊設備。兩種設備本身沒有嚴格限制,但是,基於不同的功能進行了分類。
(1)字元設備:提供連續的數據流,應用程序可以順序讀取,通常不支持隨機存取。相反,此類設備支持按位元組/字元來讀寫數據。舉例來說,鍵盤、串口、數據機都是典型的字元設備。
(2)塊設備:應用程序可以隨機訪問設備數據,程序可自行確定讀取數據的位置。硬碟、軟盤、CD-ROM驅動器和快閃記憶體都是典型的塊設備,應用程序可以定址磁碟上的任何位置,並由此讀取數據。此外,數據的讀寫只能以塊(通常是512B)的倍數進行。與字元設備不同,塊設備並不支持基於字元的定址。
總結一下,這兩種類型的設備的根本區別在於它們是否可以被隨機訪問。字元設備只能順序讀取,塊設備可以隨機讀取。

9. linux驅動程序設計中,設備號為32位,其中次設備號佔多少位

在Linux內核看來,主設備號標識設備對應的驅動程序,告訴Linux內核使用哪一個驅動程序為該設備(也就是/dev下的設備文件)服務;而次設備號則用來標識具體且唯一的某個設備。

熱點內容
怎麼讀取伺服器地址文件java 發布:2024-10-05 05:12:21 瀏覽:76
獲取文件名java 發布:2024-10-05 05:12:12 瀏覽:938
為什麼qq找回密碼沒有密保 發布:2024-10-05 05:11:28 瀏覽:919
查詢存在的資料庫 發布:2024-10-05 05:03:04 瀏覽:631
安卓版微信如何找回聊天記錄 發布:2024-10-05 05:03:03 瀏覽:449
手機吃雞國際服要什麼配置 發布:2024-10-05 04:59:11 瀏覽:203
沙盒工廠怎麼看伺服器ip 發布:2024-10-05 04:53:13 瀏覽:84
psvftp工具下載 發布:2024-10-05 04:08:14 瀏覽:353
怎麼設qq空間密碼 發布:2024-10-05 04:00:51 瀏覽:440
積分兌換系統源碼 發布:2024-10-05 03:57:45 瀏覽:691