簡介
在linux系統下,硬體裝置都是以檔案的形式存在的,因而不同硬體裝置有這不同的檔案型別,這種檔案型別叫做裝置檔案,裝置檔案在外部裝置與作業系統之間提供了乙個介面,這樣使用者使用外部裝置就相當於普通檔案一樣。
介面
比如 /dev/sda 表示第乙個 scsi/ide 盤,/dev/vda 表示第乙個 virtio 磁碟。應用程式通過訪問這些裝置檔案像操作檔案一樣來訪問這些裝置,可以使用的介面包括:
int open(const char *path, int oflag, ... )
int close(int fd);
ssize_t write(int fd, const void *buf, size_t nbyte)
ssize_t read(int fd, void *buf, size_t nbyte)
int ioctl(int d, int request, ...)
在 linux 系統上,裝置驅動可以被動態載入和刪除
lsmod - 列出當前已經被載入的模組
insmod - insert/load 指定的模組檔案
modprobe - insert/load 指定的 module,以及所有依賴
rmmod - remove/unload 指定的module
常見的裝置檔案命名方式
/dev/fd:軟碟機,即軟盤。fd0 代表第一軟盤裝置,fd1代表第二個軟盤裝置。
/dev/hd:ide 磁碟。
/dev/sd:scsi 磁碟,例如u盤,sda1表示第一塊 scsi 裝置的第乙個分割槽, /sdc5表示第三塊scsi裝置的第乙個邏輯分割槽
/dev/tty:terminals
/dev/vd:virtio 磁碟,virtio-block 型別的裝置,virtio-blk 裝置的名稱以 『vd』 開頭。從 『vda』 開始遞增,數目在 26 個以內時,增長至 『vdz』;如果超過 26,則從 』vdaa『 一直增長至 』vdzz『;最高可以增長到 』vdzzz『。
Linux dev目錄詳解
在linux下,dev目錄是很重要的,各種裝置都在下面。下面簡單總結一下 dev是裝置 device 的英文縮寫。dev這個目錄對所有的使用者都十分重要。因為在這個目錄中包含了所有linux系統中使用的外部裝置。但是這裡並不是放的外部裝置的驅動程式,這一點和windows,dos作業系統不一樣。它實...
Linux dev目錄詳解
在linux下,dev目錄是很重要的,各種裝置都在下面。下面簡單總結一下 dev是裝置 device 的英文縮寫。dev這個目錄對所有的使用者都十分重要。因為在這個目錄中包含了所有linux系統中使用的外部裝置。但是這裡並不是放的外部裝置的驅動程式,這一點和windows,dos作業系統不一樣。它實...
linux dev 下裝置節點建立
linux kernel從 2.6 到 3.0 3.4 devfs已經被拋棄。kernel互動的方式有 sysfs procfs 還有就是 dev下的節點,這些節點是如何被建立出來的呢。研究了半天,在kernel device create 看了遍,也只是發現建立了一堆sysfs節點和一些link。...