一、TTY的起源
TTY較早出現(xiàn)在電傳打字機(jī)(Teletypewriter)上,它是一種可以通過電信網(wǎng)絡(luò)進(jìn)行通信的打字機(jī)。20世紀(jì)50年代和60年代,計(jì)算機(jī)的交互方式主要是通過終端設(shè)備進(jìn)行,而當(dāng)時(shí)常用的終端設(shè)備就是電傳打字機(jī)。在那個(gè)時(shí)代,計(jì)算機(jī)運(yùn)行的程序通常會產(chǎn)生一系列文本輸出,這些輸出需要通過終端設(shè)備將結(jié)果展示給用戶,而用戶也可以通過鍵盤輸入命令和數(shù)據(jù)給計(jì)算機(jī)。
隨著計(jì)算機(jī)的發(fā)展,出現(xiàn)了更多種類的終端設(shè)備,例如打印機(jī)和顯示器。為了使不同類型的終端設(shè)備都能與計(jì)算機(jī)進(jìn)行通信,TTY 接口應(yīng)運(yùn)而生。TTY定義了一組標(biāo)準(zhǔn)化的通信規(guī)則和命令,使得計(jì)算機(jī)能夠理解和處理不同終端設(shè)備的輸入輸出。
二、TTY的原理
TTY的原理是通過輸入和輸出流來實(shí)現(xiàn)與終端設(shè)備的通信。在計(jì)算機(jī)操作系統(tǒng)中,每個(gè)終端設(shè)備都對應(yīng)一個(gè)TTY設(shè)備文件,通常位于”/dev/tty”目錄下。當(dāng)用戶在終端設(shè)備上輸入命令時(shí),TTY設(shè)備會將輸入的數(shù)據(jù)傳輸給計(jì)算機(jī)的輸入流;而當(dāng)計(jì)算機(jī)有輸出數(shù)據(jù)時(shí),TTY設(shè)備會從輸出流讀取數(shù)據(jù)并將其顯示在終端設(shè)備上。
TTY接口的工作方式是基于字符流的,它不處理二進(jìn)制數(shù)據(jù),而是以字符為單位進(jìn)行傳輸。當(dāng)用戶在終端上輸入字符時(shí),TTY設(shè)備會將字符逐個(gè)發(fā)送給計(jì)算機(jī)的輸入流。計(jì)算機(jī)收到字符后,可以對其進(jìn)行處理,例如執(zhí)行相應(yīng)的命令或?qū)⒆址麑懭胛募?。同樣地,?dāng)計(jì)算機(jī)有輸出數(shù)據(jù)時(shí),TTY設(shè)備會從輸出流讀取字符,并逐個(gè)顯示在終端設(shè)備上,讓用戶能夠看到計(jì)算機(jī)的響應(yīng)結(jié)果。
TTY接口還支持特殊的控制字符和命令,用于處理終端設(shè)備的狀態(tài)和行為。例如,Ctrl+C 可以用于中斷當(dāng)前正在執(zhí)行的程序,Ctrl+D可以表示輸入的結(jié)束。
三、TTY在現(xiàn)代計(jì)算機(jī)中的應(yīng)用
雖然,現(xiàn)代計(jì)算機(jī)不再使用物理的電傳打字機(jī)和終端設(shè)備,但TTY接口仍然存在于操作系統(tǒng)中,并且在某些場景下仍然發(fā)揮著重要作用。
虛擬終端:現(xiàn)代操作系統(tǒng)支持虛擬終端功能,允許用戶在同一臺計(jì)算機(jī)上同時(shí)打開多個(gè)虛擬終端。每個(gè)虛擬終端都對應(yīng)著一個(gè)TTY 設(shè)備,用戶可以通過切換虛擬終端來在不同的命令行界面之間進(jìn)行操作。這在服務(wù)器管理和系統(tǒng)調(diào)試中非常有用。終端仿真器:終端仿真器是模擬物理終端設(shè)備的軟件,它們允許計(jì)算機(jī)通過網(wǎng)絡(luò)連接與遠(yuǎn)程設(shè)備進(jìn)行通信。終端仿真器通常使用TTY 接口與遠(yuǎn)程設(shè)備進(jìn)行交互,使得計(jì)算機(jī)和遠(yuǎn)程設(shè)備能夠進(jìn)行命令行交互。控制臺輸出:在操作系統(tǒng)啟動階段,計(jì)算機(jī)通常會將啟動信息和錯(cuò)誤信息輸出到控制臺,這些輸出是通過TTY設(shè)備實(shí)現(xiàn)的。控制臺輸出對于系統(tǒng)的啟動和故障排查至關(guān)重要。進(jìn)程通信:在Unix/Linux 系統(tǒng)中,TTY接口也用于進(jìn)程之間的通信。例如,通過管道(pipe)和終端設(shè)備相連,一個(gè)進(jìn)程的輸出可以作為另一個(gè)進(jìn)程的輸入,從而實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)傳遞。綜上所述,TTY作為計(jì)算機(jī)與終端設(shè)備之間的標(biāo)準(zhǔn)化通信接口,在計(jì)算機(jī)科學(xué)和信息技術(shù)領(lǐng)域發(fā)揮著重要的作用。雖然,如今的計(jì)算機(jī)已經(jīng)邁入了全新的時(shí)代,但值得銘記和珍視的是,TTY為計(jì)算機(jī)技術(shù)的進(jìn)步和發(fā)展做出了重要貢獻(xiàn),它是計(jì)算機(jī)歷史中不可忽視的一部分。
延伸閱讀:終端仿真是什么
終端仿真是一種模擬物理終端設(shè)備的軟件,它允許計(jì)算機(jī)通過網(wǎng)絡(luò)連接與遠(yuǎn)程設(shè)備進(jìn)行通信。終端仿真器使用網(wǎng)絡(luò)協(xié)議來傳輸數(shù)據(jù),并在本地設(shè)備上模擬終端設(shè)備的輸入和輸出。用戶可以通過終端仿真器實(shí)現(xiàn)遠(yuǎn)程命令行交互,就像直接在計(jì)算機(jī)本地進(jìn)行操作一樣。
終端仿真器的原理是通過TTY 接口與遠(yuǎn)程設(shè)備進(jìn)行通信。在計(jì)算機(jī)操作系統(tǒng)中,終端仿真器通常會創(chuàng)建一個(gè)虛擬TTY設(shè)備,然后將用戶輸入的命令傳輸給遠(yuǎn)程設(shè)備,接收遠(yuǎn)程設(shè)備的輸出并顯示在本地終端上。這樣,用戶就可以像使用本地終端一樣使用遠(yuǎn)程設(shè)備。