终端的概念
操作系統(tǒng)接口:用戶接口和程序接口。用戶接口分為聯(lián)機(jī)用戶接口和脫機(jī)用戶接口。脫機(jī)用戶接口出現(xiàn)在早期的批處理系統(tǒng)中(將作業(yè)提前交給操作系統(tǒng),作業(yè)完成的過程中用戶無法交互);聯(lián)機(jī)用戶接口即為終端(所有輸入輸出設(shè)備),包括設(shè)備終端(偽終端,pseudo terminal slave)、文字終端(字符終端)和桌面終端(圖形界面終端),聯(lián)機(jī)用戶接口可以使用戶與操作系統(tǒng)實時交互。而程序接口就是指操作系統(tǒng)提供的各種系統(tǒng)調(diào)用接口(API,應(yīng)用程序接口),通過這些函數(shù)接口可以使用這些系統(tǒng)調(diào)用。
終端:所有輸入輸出設(shè)備的總稱,如鍵盤、鼠標(biāo)、攝像頭、麥克風(fēng)、屏幕、打印機(jī)等。
在UNIX系統(tǒng)中,用戶通過終端登錄系統(tǒng)后得到一個Shell進(jìn)程,這個終端成為Shell進(jìn)程的控制終端(Controlling Terminal),進(jìn)程中,控制終端是保存在PCB中的信息,而fork會復(fù)制PCB中的信息,因此由Shell進(jìn)程啟動的其它進(jìn)程的控制終端也是這個終端。默認(rèn)情況下(沒有重定向),每個進(jìn)程的標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出都指向控制終端,進(jìn)程從標(biāo)準(zhǔn)輸入讀也就是讀用戶的鍵盤輸入,進(jìn)程往標(biāo)準(zhǔn)輸出或標(biāo)準(zhǔn)錯誤輸出寫也就是輸出到顯示器上。信號中還講過,在控制終端輸入一些特殊的控制鍵可以給前臺進(jìn)程發(fā)信號,例如Ctrl-C表示SIGINT,Ctrl-\表示SIGQUIT。
Linux下的終端類型:設(shè)備終端,又叫偽終端(pts/編號,如bash終端,/bin/bash)、文字終端(tty1-tty6,共6個)、圖形界面終端(tty7或:0,也叫桌面終端)。
圖形界面終端(桌面終端):tty7或:0,Alt + Ctrl + F7進(jìn)入;文字終端(字符終端):tty1~tty6,Alt + Ctrl + F1、F2、F3、F4、F5、F6進(jìn)入;設(shè)備終端(偽終端):pts/編號,從0開始;網(wǎng)絡(luò)終端:SSH、Telnet、xshell等。每一個網(wǎng)絡(luò)終端在服務(wù)器上都會對應(yīng)一個偽終端,網(wǎng)絡(luò)終端輸入的各種命令或程序都先通過網(wǎng)絡(luò)協(xié)議發(fā)送到服務(wù)器,這些命令或程序在服務(wù)器上(偽終端)解析和執(zhí)行,將執(zhí)行結(jié)果又通過網(wǎng)絡(luò)通信協(xié)議發(fā)送給客服端(網(wǎng)絡(luò)終端)。因此,網(wǎng)絡(luò)終端,如xshell,與主機(jī)之間交互需要網(wǎng)絡(luò)通信。文字終端與設(shè)備終端相似,都是以命令行的方式與系統(tǒng)進(jìn)行交互。在Windows中的文字終端打開方式:win+r 輸入cmd即可。
在top或ps命令中,TTY表示該進(jìn)程來自于哪一個終端(設(shè)備、文字和桌面),?表示該進(jìn)程不需要終端,即不需要登錄到系統(tǒng),不能與用戶交互。進(jìn)程可能屬于終端,也可能屬于系統(tǒng)自己的。終端本身會對應(yīng)一個進(jìn)程。如守護(hù)進(jìn)程就不需要終端,不需要登錄到系統(tǒng),是Linux中的后臺服務(wù)進(jìn)程,通常獨立于控制終端并且周期性地執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。
總結(jié)
- 上一篇: 信号传参
- 下一篇: lol里亚索吧提莫吹起来了可以接大吗?