linux字元設備有:1、滑鼠,是電腦的一種外接輸入設備,也是電腦顯示系統縱橫座標定位的指示器;2、鍵盤,是用來操作電腦設備運作的一種指令及資料輸入裝置;3、序列埠終端,使用電腦序列埠連接的終端設備;4、控制終端;5、控制台等。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
Linux系統為了管理方便,將裝置分成三種基本型別:
字元裝置
區塊裝置
網路設備
它們都以一個檔案節點顯示在檔案系統的/dev目錄下(crw--w---- 1 root tty 4, 0 7月11 09:11 tty0 其中c代表字元裝置類型)。
linux字元設備
字元設備是指設備無需緩衝即可直接進行讀寫的設備, 如滑鼠,鍵盤,串列設備、調變解調器等, 它與區塊設備的差別在於是字元操作的基本單位是位元組。
字元設備的分類
字元設備主要包括控制終端設備和序列終端設備, 例如控制台和鍵盤。依據功能與硬體上的差異, 字元終端設備有下列分類:
序列埠終端(/dev/ttSn):使用電腦序列埠連接的終端設備,序列裝置資料傳輸方式為相同字元8個bit單線傳輸, 在指令列輸入echo 'hello world' > /dev/ttyS0可將輸入寫入對應裝置。
偽終端(/dev/ttyp,/dev/ptyp): 對應底層不存在真實的硬體設備, 用於為其他程式提供終端式樣的接口,如網路登陸主機時網路伺服器和shell程式之間的終端介面。
控制終端(/dev/tty):主設備號碼為5, 進程控制終端,與進程相關聯,如登陸shell進程所使用的是終端/dev/tty。
控制台(/dev/ttyn,/dev/consol): 電腦輸入輸出的顯示器,當控制台登陸時, 使用的就是tty1, 而ubuntu 圖形介面所使用的tty7 。
其他類型:現行的linux針對許多不同的裝置建有許多其他種類的裝置特殊文件,如ISIDIN裝置的/dev/ttyIn裝置。
以下為字元設備結構示意圖
#字元設備的性質及特性
#字元裝置屬於裝置檔案系統的一種, 相當於底層硬體向上層提供的邏輯裝置文件, 宛如將一個資料埠(資料暫存器)與一個文件對接起來,裝置驅動程式直接對文件操作, 於是便直接對連接埠進行了讀寫操作。同樣作為文件, 字元設備驅動也必須實現文件的基本的操作open(),close(),write(),read()等,當然終端重定向操作也是支援的。
字元裝置檔案檔案的讀寫是以單一位元組為單位的, 不需要設立硬體緩衝區。設備像存取位元組流一樣被作業系統存取。位元組流就像在硬體連接埠和檔案系統搭建起了一個傳送管道, 位元組逐個通過管道傳輸並呈現給讀寫雙方。這個流特性在驅動程式中是以緩衝佇列來實現的。例如: 控制台的結構體中的讀寫緩衝佇列
struct tty_struct { struct termios termios; int pgrp; int stopped; void (*write)(struct tty_struct * tty); struct tty_queue read_q; //读队列 struct tty_queue write_q; //写队列 struct tty_queue secondary; //tty辅助队列(存放规格化后的字符) };
#字元裝置由字元裝置號碼標識。字元設備號由主設備號和次設備號構成, 例如/dev/ttyS0的設備號為(4,64); 主設備號標識設備對應驅動程序, 內核透過主設備號將設備和驅動程序一一對應起來, 次設備號由驅動程式使用, 用於驅動程式內部區分設備細節差別使用的程式碼,內核其他部分不使用它。
相關推薦:《Linux影片教學》
以上是linux字元裝置有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!