字符設(shè)備和塊設(shè)備

字符設(shè)備

提供連續(xù)的數(shù)據(jù)流,是一個線性設(shè)備怎顾,應(yīng)用程序可以順序讀取,通常不支持隨機存取漱贱。相反槐雾,此類設(shè)備支持按字節(jié)/字符來讀寫數(shù)據(jù)。舉例來說幅狮,調(diào)制解調(diào)器是典型的字符設(shè)備募强。
如:鍵盤、鼠標崇摄、顯示屏

塊設(shè)備

應(yīng)用程序可以隨機訪問設(shè)備數(shù)據(jù)擎值,程序可自行確定讀取數(shù)據(jù)的位置。硬盤是典型的塊設(shè)備逐抑,應(yīng)用程序可以尋址磁盤上的任何位置鸠儿,并由此讀取數(shù)據(jù)。此外厕氨,數(shù)據(jù)的讀寫只能以塊(通常是512B)的倍數(shù)進行进每。與字符設(shè)備不同,塊設(shè)備并不支持基于字符的尋址命斧。
如:硬盤田晚、U盤
兩種設(shè)備本身并沒用嚴格的區(qū)分,主要是字符設(shè)備和塊設(shè)備驅(qū)動程序提供的訪問接口(file I/O API)是不一樣的

主設(shè)備和次設(shè)備號:MAJOR MINOR

Linux的設(shè)備管理是和文件系統(tǒng)緊密結(jié)合的国葬,各種設(shè)備都以文件的形式存放在/dev目錄下贤徒,稱為設(shè)備文件芹壕。應(yīng)用程序可以打開、關(guān)閉和讀寫這些設(shè)備文件接奈,完成對設(shè)備的操作踢涌,就像操作普通的數(shù)據(jù)文件一樣。為了管理這些設(shè)備鲫趁,系統(tǒng)為設(shè)備編了號斯嚎,每個設(shè)備號又分為主設(shè)備號和次設(shè)備號。主設(shè)備號用來區(qū)分不同種類的設(shè)備挨厚,而次設(shè)備號用來區(qū)分同一類型的多個設(shè)備堡僻。對于常用設(shè)備,Linux有約定俗成的編號疫剃,如硬盤的主設(shè)備號是3钉疫。
一個字符設(shè)備或者塊設(shè)備都有一個主設(shè)備號和次設(shè)備號。主設(shè)備號和次設(shè)備號統(tǒng)稱為設(shè)備號巢价。主設(shè)備號用來表示一個特定的驅(qū)動程序牲阁。次設(shè)備號用來表示使用該驅(qū)動程序的各設(shè)備。例如一個嵌入式系統(tǒng)壤躲,有兩個LED指示燈城菊,LED燈需要獨立的打開或者關(guān)閉。那么碉克,可以寫一個LED燈的字符設(shè)備驅(qū)動程序凌唬,可以將其主設(shè)備號注冊成5號設(shè)備,次設(shè)備號分別為1和2漏麦。這里客税,次設(shè)備號就分別表示兩個LED燈。

[zzz@Linuxmg /]$ ll /dev/
crw-rw-rw-   1 root root      1,   3 Jun  7 13:38 null   #1主設(shè)備號撕贞,3次設(shè)備號
crw-------   1 root root     10, 144 Jun  7 13:38 nvram #10主設(shè)備號更耻,144次設(shè)備號
crw-------   1 root root      1,  12 Jun  7 13:38 oldmem
crw-r-----   1 root kmem      1,   4 Jun  7 13:38 port

一般的,主設(shè)備號標識出與設(shè)備關(guān)聯(lián)的設(shè)備驅(qū)動捏膨。如 /dev/null 和 /dev/port 由 1 號驅(qū)動來管理秧均。

現(xiàn)在的 Linux 內(nèi)核允許多個驅(qū)動共享一個主設(shè)備號,但更多的設(shè)備都遵循一個驅(qū)動對一個主設(shè)備號的原則号涯。

內(nèi)核由次設(shè)備號確定當前所指向的是哪個設(shè)備熬北。根據(jù)所編寫的驅(qū)動程序,可以從內(nèi)核那里得到一個直接指向設(shè)備的指針诚隙,或者使用次設(shè)備號作為一個設(shè)備本地數(shù)組的索引讶隐。但不論如何,內(nèi)核自身幾乎不知道次設(shè)備號的什么事情久又。

查看設(shè)備號

當靜態(tài)分配設(shè)備號時巫延,需要查看系統(tǒng)中已經(jīng)存在的設(shè)備號效五,從而決定使用哪個新設(shè)備號÷澹可以讀取/proc/devices文件獲得設(shè)備的設(shè)備號畏妖。/proc/devices文件包含字符設(shè)備和塊設(shè)備的設(shè)備號,如下所示:

[zzz@Linuxmg /]$ cat /proc/devices  #查看字符設(shè)備和塊設(shè)備
Character devices:
  1 mem
  4 /dev/vc/0
  4 tty
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  7 vcs
 10 misc
Block devices:
259 blkext
  8 sd
  9 md
 65 sd
 66 sd
 67 sd
 68 sd
 69 sd
 70 sd
 71 sd
128 sd
129 sd
130 sd
mknod命令

用于創(chuàng)建Linux中的字符設(shè)備文件和塊設(shè)備文件疼阔。

man mknod
NAME
       mknod - make block or character special files

SYNOPSIS
       mknod [OPTION]... NAME TYPE [MAJOR MINOR]

DESCRIPTION
       Create the special file NAME of the given TYPE.

       Mandatory arguments to long options are mandatory for short options too.

       -m, --mode=MODE
              set file permission bits to MODE, not a=rw - umask

       -Z     set the SELinux security context to default type

       --context[=CTX]
              like  -Z, or if CTX is specified then set the SELinux or SMACK security con‐
              text to CTX

       --help display this help and exit

Both MAJOR and MINOR must be specified when TYPE is b, c, or u, and  they  must  be
       omitted  when TYPE is p.  If MAJOR or MINOR begins with 0x or 0X, it is interpreted
       as hexadecimal; otherwise, if it begins with 0, as octal;  otherwise,  as  decimal.
       TYPE may be:

       b      create a block (buffered) special file

       c, u   create a character (unbuffered) special file

       p      create a FIFO

主要參數(shù)
-Z:設(shè)置安全的上下文戒劫;
-m:設(shè)置權(quán)限模式;
FIFO:First Input First Output的縮寫婆廊,先入先出隊列迅细,這是一種傳統(tǒng)的按序執(zhí)行方法,
先進入的指令先完成并引退淘邻,跟著才執(zhí)行第二條指令茵典。
跟去超市買菜差不多,先排隊的先結(jié)賬離開宾舅,然后輪到下一個统阿。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市筹我,隨后出現(xiàn)的幾起案子扶平,更是在濱河造成了極大的恐慌,老刑警劉巖蔬蕊,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件结澄,死亡現(xiàn)場離奇詭異,居然都是意外死亡袁串,警方通過查閱死者的電腦和手機概而,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門呼巷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來囱修,“玉大人,你說我怎么就攤上這事王悍∑屏” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵压储,是天一觀的道長鲜漩。 經(jīng)常有香客問我,道長集惋,這世上最難降的妖魔是什么孕似? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮刮刑,結(jié)果婚禮上喉祭,老公的妹妹穿的比我還像新娘养渴。我一直安慰自己,他們只是感情好泛烙,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布理卑。 她就那樣靜靜地躺著,像睡著了一般蔽氨。 火紅的嫁衣襯著肌膚如雪藐唠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天鹉究,我揣著相機與錄音宇立,去河邊找鬼。 笑死坊饶,一個胖子當著我的面吹牛泄伪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播匿级,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蟋滴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了痘绎?” 一聲冷哼從身側(cè)響起津函,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎孤页,沒想到半個月后尔苦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡行施,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年允坚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛾号。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡稠项,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鲜结,到底是詐尸還是另有隱情展运,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布精刷,位于F島的核電站拗胜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏怒允。R本人自食惡果不足惜埂软,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望纫事。 院中可真熱鬧勘畔,春花似錦迷殿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至诉字,卻和暖如春懦尝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背壤圃。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工陵霉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伍绳。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓踊挠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親冲杀。 傳聞我的和親對象是個殘疾皇子效床,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內(nèi)容