字符設(shè)備字符設(shè)備字符設(shè)備是指在I/O傳輸過程中以字符為單位進(jìn)行傳輸?shù)脑O(shè)備,例如鍵盤,打印機(jī)等。請(qǐng)注意,以字符為單位并不一定意味著是以字節(jié)為單位,因?yàn)橛械木幋a規(guī)則規(guī)定,1個(gè)字符占16比特,合2個(gè)字節(jié)。 在UNIX系統(tǒng)中,字符設(shè)備以特別文件方式在文件目錄樹中占據(jù)位置并擁有相應(yīng)的i結(jié)點(diǎn)。i結(jié)點(diǎn)中的文件類型指明該文件是字符設(shè)備文件。可以使用與普通文件相同的文件操作命令對(duì)字符設(shè)備文件進(jìn)行操作,例如打開、關(guān)閉、讀、寫等。 當(dāng)一臺(tái)字符型設(shè)備在硬件上與主機(jī)相連之后,必須為這臺(tái)設(shè)備創(chuàng)建字符特別文件。操作系統(tǒng)的mknod命令被用來建立設(shè)備特別文件。例如為一臺(tái)終端創(chuàng)建名為/dev/tty03的命令如下(設(shè)主設(shè)備號(hào)為2,次設(shè)備為13,字符型類型標(biāo)記c): mknod /dev/tty03 c 2 13 此后,open, close, read, write等系統(tǒng)調(diào)用適用于設(shè)備文件/dev/tty03。 設(shè)備與驅(qū)動(dòng)程序的通信方式依賴于硬件接口。當(dāng)設(shè)備上的數(shù)據(jù)傳輸完成時(shí),硬件通過總線發(fā)出中斷信號(hào)導(dǎo)致系統(tǒng)執(zhí)行一個(gè)中斷處理程序。中斷處理程序與設(shè)備驅(qū)動(dòng)程序協(xié)同工作完成數(shù)據(jù)傳輸?shù)牡讓涌刂啤? |
|