每個(gè)device node被分配了兩個(gè)數(shù)值梆砸,一個(gè)稱作major number,另一個(gè)被稱為minor number滋迈。這兩個(gè)數(shù)都映射到同一個(gè)設(shè)備上,如果映射的設(shè)備不同,open這個(gè)設(shè)備的時(shí)候也會(huì)返回-1赏寇,并設(shè)置errno - ENODEV,表明設(shè)備不存在价认。
特殊的設(shè)備節(jié)點(diǎn) Device Nodes
- null device: major number -- 1, minor number -- 3蹋订。內(nèi)核默默地丟棄對(duì)設(shè)備的所有寫(xiě)請(qǐng)求。所有的讀請(qǐng)求都返回end-of-file(EOF)刻伊。
- zero device: major number -- 1 , minor number -- 5露戒。內(nèi)核默默地丟棄所有對(duì)設(shè)備的寫(xiě)請(qǐng)求。讀請(qǐng)求返回一個(gè)無(wú)限的空字節(jié)的流捶箱。
- full device: major number -- 1, minor number -- 7智什。與零設(shè)備一樣,讀請(qǐng)求返回空字符\0丁屎。但是荠锭,寫(xiě)請(qǐng)求總是觸發(fā)ENOSPC錯(cuò)誤,表示基礎(chǔ)設(shè)備已滿晨川。
隨機(jī)數(shù)生成器
內(nèi)核的隨機(jī)數(shù)生成器存放在/dev/random和/dev/urandom丈牢。
他們有major number 1和分別的minor number 8 和 9侄榴。
大多數(shù)應(yīng)用程序應(yīng)該使用/dev/urandom而不是/dev/random機(jī)隐绵。如果沒(méi)有提供內(nèi)核熵池的I/O活動(dòng)缠局,對(duì)后者的讀取可能會(huì)阻塞很長(zhǎng)一段時(shí)間。