国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

概述Linux TTY/PTS的區(qū)別

2024-08-28 00:04:20
字體:
來源:轉載
供稿:網(wǎng)友

當我們在鍵盤上敲下一個字母的時候,到底是怎么發(fā)送到相應的進程的呢?我們通過ps、who等命令看到的類似tty1、pts/0這樣的輸出,它們的作用和區(qū)別是什么呢?

TTY歷史

支持多任務的計算機出現(xiàn)之前

在計算機出來以前,人們就已經(jīng)在使用一種叫teletype的設備,用來相互之間傳遞信息,看起來像下面這樣:

+----------+   Physical Line   +----------+| teletype |<--------------------->| teletype |+----------+            +----------+

兩個teletype之間用線連接起來,線兩端可能也有類似于調制解調器之類的設備(這里將它們忽略),在一端的teletype上敲鍵盤時,相應的數(shù)據(jù)會發(fā)送到另一端的teletype,具體功能是干什么的,我也不太了解。(我腦袋里面想到畫面是在一端敲字,另一端打印出來)

這些都是老古董了,完全沒接觸過,所以只能簡單的推測。

支持多任務的計算機出現(xiàn)之后

等到計算機支持多任務后,人們想到把這些teletype連到計算機上,作為計算機的終端,從而可以操作計算機。

使用teletype的主要原因有兩個(個人見解):

現(xiàn)實中已經(jīng)存在了大量不同廠商的teletype,可以充分利用現(xiàn)有資源 teletype的相關網(wǎng)絡已經(jīng)比較成熟,連起來方便

于是連接就發(fā)展成這樣:

                                   +----------+ +----------+  +-------+   Physical Line   +-------+  +------+  |     || Terminal |<->| Modem |<--------------------->| Modem |<->| UART |<->| Computer |+----------+  +-------+            +-------+  +------+  |     |                                   +----------+
左邊的Terminal就是各種各樣的teletype 物理線路兩邊用上了Modem,就是我們常說的“貓”,那是因為后來網(wǎng)絡已經(jīng)慢慢的變發(fā)達了,大家可以共享連接了。(大概推測,可能不對) UART可以理解為將teletype的信號轉換成計算機能識別的信號的設備

內(nèi)核TTY子系統(tǒng)

計算機為了支持這些teletype,于是設計了名字叫做TTY的子系統(tǒng),內(nèi)部結構如下:

  +-----------------------------------------------+  |          Kernel           |  |                 +--------+  |  |  +--------+  +------------+  |    |  |    +----------------+  |  | UART |  |  Line  |  | TTY  |<---------->| User process A |<------>|    |<->|      |<->|    |  |    +----------------+  |  | driver |  | discipline |  | driver |<---------->| User process B |  |  +--------+  +------------+  |    |  |    +----------------+  |                 +--------+  |  |                        |  +-----------------------------------------------+
UART driver對接外面的UART設備 Line discipline主要是對輸入和輸出做一些處理,可以理解它是TTY driver的一部分 TTY driver用來處理各種終端設備 用戶空間的進程通過TTY driver來和終端打交道

為了簡單起見,后面的介紹中不再單獨列出UART driver和Line discipline,可以認為它們是TTY driver的一部分

TTY設備

對于每一個終端,TTY driver都會創(chuàng)建一個TTY設備與它對應,如果有多個終端連接過來,那么看起來就是這個樣子的:

           +----------------+           |  TTY Driver  |           |        |           |  +-------+  |    +----------------+ +------------+    |  |    |<---------->| User process A | | Terminal A |<--------->| ttyS0 |  |    +----------------+ +------------+    |  |    |<---------->| User process B |           |  +-------+  |    +----------------+           |        |           |  +-------+  |    +----------------+ +------------+    |  |    |<---------->| User process C | | Terminal B |<--------->| ttyS1 |  |    +----------------+ +------------+    |  |    |<---------->| User process D |           |  +-------+  |    +----------------+           |        |           +----------------+
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 华池县| 瑞丽市| 横山县| 莎车县| 马鞍山市| 吉安市| 涡阳县| 稻城县| 枣庄市| 阿尔山市| 修武县| 阜康市| 合水县| 黄龙县| 神池县| 阿克陶县| 广元市| 阳西县| 胶州市| 海城市| 新龙县| 潍坊市| 文水县| 工布江达县| 遵义市| 吉林市| 贵德县| 上高县| 木里| 彰武县| 策勒县| 辽宁省| 内乡县| 云阳县| 曲沃县| 南通市| 宕昌县| 广宗县| 青铜峡市| 长泰县| 新晃|