Udev
設備名稱的原始碼
在 linux 系統上,許多設備名稱可以在
/dev
. 這必須在 linux 核心原始碼、udev 程式碼、設備樹或驅動程式碼中的某個地方定義。例如,確定磁片驅動器應以 開頭
fd
還是硬碟以 開頭的原始碼位於何處sd
?
有LXR(Linux 交叉引用)項目,您可以在其中選擇核心版本並蒐索程式碼。
(注意:舊的http://lxr.linux.no不再正常工作了,至少對我來說是這樣;對於較新的核心版本,搜尋已中斷。)
搜尋“floppy”(不帶引號)並嘗試查看結果 grepping “fd”(帶引號)導致我實現了磁片塊設備(這裡在核心 4.9 中):
http://lxr.free-electrons.com/source/drivers/block/floppy.c#L4219
現在作為一個交叉引用,您可以跟隨
register_blkdev
它的其他使用地點。
一個更容易找到的可能是類似
/dev/null
or/dev/zero
。對於那些,看看${kernel_root}/drivers/char/mem.c
。對於 4.9.6(現在可能已經有一段時間了),有一個struct memdev
named數組devlist
,其中數組中的每個條目對應一個記憶體設備:... [3] = { "null", 0666, &null_fops, 0 }, ... [5] = { "zero", 0666, &zero_fops, 0 }, ...
null_fops
和包含相應設備的zero_fops
文件操作結構。