自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

TTY子系統(tǒng)初探,你學(xué)會(huì)了嗎?

系統(tǒng) Linux
系統(tǒng)控制臺(tái),也就是我們Linux下面的/dev/console,是與操作系統(tǒng)交互的設(shè)備,系統(tǒng)所產(chǎn)生的信息會(huì)發(fā)送到該設(shè)備上。

一、TTY子系統(tǒng)介紹

1、TTY介紹

TTY,一詞源于Teleprinter,譯為電傳打印機(jī),在早起用來表示電腦終端的設(shè)備。

現(xiàn)在我們通常使用TTY,是各種(物理/虛擬)終端的統(tǒng)稱!

Linux系統(tǒng)的終端設(shè)備一般分為控制臺(tái)終端、偽終端、串口終端和其他類型四種。

下面我們來進(jìn)一步了解這些Linux下常用的終端,為學(xué)習(xí)Linux TTY Framework打下基礎(chǔ)!

圖片

2、控制臺(tái)終端

控制臺(tái)終端包括:系統(tǒng)控制臺(tái)、當(dāng)前控制臺(tái)、虛擬控制臺(tái)。

2.1 系統(tǒng)控制臺(tái)

系統(tǒng)控制臺(tái),也就是我們Linux下面的/dev/console,是與操作系統(tǒng)交互的設(shè)備,系統(tǒng)所產(chǎn)生的信息會(huì)發(fā)送到該設(shè)備上。

目前只有在單用戶模式下,才允許用戶登錄控制臺(tái)/dev/console。

console有緩沖的概念,為內(nèi)核提供打印輸出。內(nèi)核把要打印的內(nèi)容裝入緩沖區(qū)__log_buff,然后由console指向某個(gè)激活的終端,來決定打印到哪里。console指向激活的終端。

比如,我們在啟動(dòng)內(nèi)核的時(shí)候,傳入的參數(shù)cnotallow=ttyS1,將控制臺(tái)終端指向ttyS1串口設(shè)備。

2.2 當(dāng)前控制臺(tái)

這是應(yīng)用程序中的概念,如果當(dāng)前進(jìn)程有控制終端(Controlling Terminal),那么/dev/tty就是當(dāng)前進(jìn)程控制臺(tái)的設(shè)備文件。

對于登錄的Shell,/dev/tty就是你正在使用的控制臺(tái),設(shè)備號(5,0),/dev/tty會(huì)映射到當(dāng)前設(shè)備(使用命令tty可以查看它具體對應(yīng)哪個(gè)實(shí)際物理控制臺(tái)設(shè)備),輸出到/dev/tty的內(nèi)容只會(huì)顯示在當(dāng)前工作終端上。

你可以輸入命令tty,顯示當(dāng)前映射的實(shí)際終端如:/dev/tty1或者/dev/pts/0等。

2.3 虛擬控制臺(tái)

/dev/ttyn是進(jìn)程虛擬控制臺(tái),他們共享同一個(gè)真實(shí)的物理控制臺(tái)。

在PC上,用戶可以使用Ctrl + Alt + Fn切換,這種虛擬控制臺(tái)對應(yīng)tty1~n,其中:/dev/tty1代表第1個(gè)虛擬控制臺(tái);當(dāng)使用Ctrl + ALT+F2進(jìn)行切換時(shí),系統(tǒng)的虛擬控制臺(tái)為/dev/tty2 ,當(dāng)前控制臺(tái)(/dev/tty)則指向/dev/tty2

而比較特殊的是/dev/tty0,他代表當(dāng)前虛擬控制臺(tái),其實(shí)就是當(dāng)前所使用虛擬控制臺(tái)的一個(gè)別名。因此不管當(dāng)前正在使用哪個(gè)虛擬控制臺(tái)(注意:這里是虛擬控制臺(tái),不包括偽終端),系統(tǒng)信息都會(huì)重定位到/dev/tty0上。

只有系統(tǒng)或超級用戶root可以向/dev/tty0進(jìn)行寫操作。tty0是系統(tǒng)自動(dòng)打開的,但不用于用戶登錄

3、偽終端

偽終端(Pseudo Terminal)是終端的發(fā)展,它多用于模擬終端程序,是遠(yuǎn)程登陸(telnet、ssh、xterm等)后創(chuàng)建的控制臺(tái)設(shè)備。

它是成對出現(xiàn)的邏輯終端設(shè)備(即master和slave設(shè)備, 對master的操作會(huì)反映到slave上)。簡單說主終端和類似sshd,telnetd等用戶空間的遠(yuǎn)程協(xié)議處理進(jìn)程連接,而從終端則和shell之類的實(shí)際進(jìn)程連接。

4、串口終端

串行端口終端(Serial Port Terminal)是使用計(jì)算機(jī)串行端口連接的終端設(shè)備。計(jì)算機(jī)把每個(gè)串行端口都看作是一個(gè)字符設(shè)備。所以這些串行端口所對應(yīng)的設(shè)備名稱是/dev/ttyS0、/dev/ttyS1等,設(shè)備號分別是(4,0)、(4,1)等

若要向一個(gè)端口發(fā)送數(shù)據(jù),可以在命令行上把標(biāo)準(zhǔn)輸出重定向到這些特殊文件名上即可。

我們可以在命令行提示符下鍵入:echo "tekkaman" > /dev/ttyS1會(huì)把“tekkaman”發(fā)送到連接在ttyS1(COM2)端口的設(shè)備上。

在2.6以后的內(nèi)核后,一些三星的芯片將串口終端設(shè)備節(jié)點(diǎn)命名為ttySACn。

TI的Omap系列芯片從2.6.37開始,芯片自帶的UART設(shè)備開始使用專有的的omap-uart驅(qū)動(dòng),故設(shè)備節(jié)點(diǎn)命名為ttyOn,以區(qū)別于使用8250驅(qū)動(dòng)時(shí)的設(shè)備名“ttySn”。

圖片

5. 其它類型

還針對很多不同的字符設(shè)備存在有很多其它種類的終端設(shè)備特殊文件,例如針對ISDN設(shè)備的**/dev/ttyIn**終端設(shè)備等。

??https://blog.csdn.net/liangzc1124/article/details/127469767??

責(zé)任編輯:武曉燕 來源: 嵌入式藝術(shù)
相關(guān)推薦

2023-06-28 11:01:08

2024-01-02 12:05:26

Java并發(fā)編程

2023-08-01 12:51:18

WebGPT機(jī)器學(xué)習(xí)模型

2023-01-10 08:43:15

定義DDD架構(gòu)

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-07-26 13:11:21

ChatGPT平臺(tái)工具

2024-01-19 08:25:38

死鎖Java通信

2024-02-06 08:33:54

文件系統(tǒng)SSD

2023-01-13 16:46:38

CRM系統(tǒng)建設(shè)

2022-06-16 07:50:35

數(shù)據(jù)結(jié)構(gòu)鏈表

2022-12-06 07:53:33

MySQL索引B+樹

2023-07-30 22:29:51

BDDMockitoAssert測試

2023-10-06 14:49:21

SentinelHystrixtimeout

2024-02-02 11:03:11

React數(shù)據(jù)Ref

2024-03-06 08:28:16

設(shè)計(jì)模式Java

2022-07-13 08:16:49

RocketMQRPC日志

2023-01-31 08:02:18

2023-03-26 22:31:29

2023-05-05 06:54:07

MySQL數(shù)據(jù)查詢

2023-08-26 21:34:28

Spring源碼自定義
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號