溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何分析Linux中終端界面與圖形界面之間的切換關(guān)系

發(fā)布時(shí)間:2022-01-21 14:16:38 來源:億速云 閱讀:135 作者:柒染 欄目:開發(fā)技術(shù)

如何分析Linux中終端界面與圖形界面之間的切換關(guān)系,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

其實(shí)單純的從命令界面與圖形界面之間的切換是很容易的,就那么幾個(gè)命令,但是要徹底弄懂這背后的設(shè)計(jì)架構(gòu)需要涉及到很多的概念,下面為你講解Ubuntu 18.10操作系統(tǒng)中的X Window,內(nèi)容是了解自己機(jī)器上的 X Window、理解 display 和虛擬控制臺、遠(yuǎn)程連接 X Server、理解 DisplayManager 和 X Window 桌面環(huán)境的啟動過程和運(yùn)行嵌套的 X Server等這些基本概念。
一、 什么是X Window

X Window不是某一個(gè)具體的窗體界面,X Window 本質(zhì)是一個(gè)分層的架構(gòu),它分為 Server 和 Client。X Server 負(fù)責(zé)圖形界面的顯示和用戶的輸入,而Client 程序需要連接到 X Server,然后請求 X Server 繪制圖形界面,同時(shí)從 X Server 接受用戶的輸入。在桌面系統(tǒng)上,X Server 和 Client 程序往往安裝在同一臺機(jī)器上,日常使用基本感覺不到它是分層的。就像我們的一臺電腦,X Server和Client是在同一臺電腦的。

既然X Window是分層的架構(gòu),很顯然,X Server 和 Client 也可以分別運(yùn)行在不同的機(jī)器上,在一臺機(jī)器上運(yùn)行程序,而在另外一臺機(jī)器上顯示圖形界面。

很多人考到這里就有點(diǎn)蒙了,我們在編寫網(wǎng)站的時(shí)候也有Server-Client分層架構(gòu)啊,那這有區(qū)別嗎?當(dāng)然有了。

X Window 中的 Server 和 Client 的概念和我們平時(shí)接觸到的“Server/Client”概念剛好相反。很多熟悉 Internet 原理的人,第一次接觸 X Window 的這兩個(gè)概念都會搞錯。在Internet里面的Server/Client,是Server負(fù)責(zé)處理相關(guān)的業(yè)務(wù),然后將結(jié)果返回到Client客戶端,但是X Window恰好是相反的,它是Client負(fù)責(zé)處理,Server負(fù)責(zé)顯示。

比如,我有兩臺電腦,一臺本地機(jī)器上運(yùn)行 Ubuntu 18.10 桌面版,而在另外一臺遠(yuǎn)程機(jī)器上運(yùn)行 CentOS 7(純字符界面),如果是Internet里面的Server/Client架構(gòu),Ubuntu 是 Client,而 CentOS 是 Server。

但是在 X Window 中,Server 偏偏是我面前的這臺 Ubuntu,X Server 運(yùn)行在 Ubuntu 上。我可以在 CentOS 中運(yùn)行 GVim,但是窗口顯示在 Ubuntu 中,這時(shí),GVim 是一個(gè) Client 程序,它在遠(yuǎn)程機(jī)器上運(yùn)行,而它的窗口顯示在本地。

二、理解 display 和虛擬控制臺

網(wǎng)上很多介紹 X Window 的文章都是先讓系統(tǒng)進(jìn)入字符界面,然后手動啟動一個(gè) X Server。其實(shí)這完全沒有必要,因?yàn)樵谕慌_機(jī)器上完全可以運(yùn)行多個(gè) X Server,只需要讓每個(gè) X Server 的 display 不同即可。那么 display 究竟是什么?

實(shí)際上,display 就是計(jì)算機(jī)配備的一套輸入輸出設(shè)備,一個(gè)電腦可以有多個(gè)輸入輸出設(shè)備,當(dāng)然也可以只有一個(gè)。

在 X Window 中,可以通過 hostname:display_number.screen_number 來指定一個(gè)屏幕??梢赃@樣理解:一臺計(jì)算機(jī)可以有多個(gè) display,一個(gè) display 可以有多個(gè)屏幕。所以,display 相當(dāng)于是計(jì)算機(jī)配備的一套輸入輸出設(shè)備,一般情況下,一臺電腦只配一套鍵盤鼠標(biāo)和一個(gè)顯示器,特殊情況下,可以配多個(gè)顯示器。

現(xiàn)在問題出來了,我的電腦只有一套鍵盤鼠標(biāo)和一個(gè)顯示器,也就是只有一個(gè) display,那又怎么能運(yùn)行多個(gè) X Server 呢?那是因?yàn)樵?nbsp;Linux 中,還有虛擬控制臺這樣的高級特性。只需要同時(shí)按下 Ctrl+Alt+F1、Ctrl+Alt+F2、…、Ctrl+Alt+F7,就可以在不同的虛擬控制臺中進(jìn)行切換。就相當(dāng)于是給這個(gè)電腦配備了7個(gè)不同的顯示器。

注意:默認(rèn)情況下,Linux會提供6個(gè)Terminal 來讓用戶登錄,切換的方式為Ctrl+Alt+F1到F6.而且,系統(tǒng)會為這6個(gè)終端界面以 tty1、tty2、tty3、tty4、tty5、tty6 的命名方式命名,除此之外,Linux還有一個(gè)默認(rèn)的X窗口桌面,使用Ctrl+Alt+F7,姐可以切換到圖形桌面進(jìn)行登錄了。為什么用tty來命名呢?

tty:終端設(shè)備的統(tǒng)稱。

tty一詞源于Teletypes,或者teletypewriters,原來指的是電傳打字機(jī),是通過串行線用打印機(jī)鍵盤通過閱讀和發(fā)送信息的東西,后來這東西被鍵盤與顯示器取代,所以現(xiàn)在叫終端比較合適。終端是一種字符型設(shè)備,它有多種類型,通常使用tty來簡稱各種類型的終端設(shè)備。Linux默認(rèn)情況下

tty1~6是文本型控制臺,tty7是X Window圖形顯示管理器。

但是Linux不同的發(fā)行版本上面的圖形桌面和用戶終端可能會有所不同。

比如在 Ubuntu 18.10 中,虛擬控制臺 3 到 6 運(yùn)行的是 tty,也就是字符界面,即Ctrl+Alt+F3到F6分別顯示tty3、tty4、tty5、tty6,虛擬控制臺 2 運(yùn)行的是 Xorg,虛擬控制臺 1 運(yùn)行的是圖形界面。

三、Terminal與X Window的互相轉(zhuǎn)化

前面的使用Ctrl+Alt+Fn的形式來回切換只是形式上的轉(zhuǎn)換,每一個(gè)都在運(yùn)行,只不過顯示的那一個(gè)不同,但是實(shí)際上,Terminal與X Window在Linux中的運(yùn)行等級是不一樣的,Linux一共有7中運(yùn)行等級(run level),在不同的運(yùn)行級下,系統(tǒng)有著不同的狀態(tài),它們分別是:

0:停機(jī)(記住不要把initdefault 設(shè)置為0,因?yàn)檫@樣會使Linux無法啟動 )

1:單用戶模式,就像Win9X下的安全模式。

2:多用戶,但是沒有 NFS 。

3:完全多用戶模式,標(biāo)準(zhǔn)的運(yùn)行級。

4:一般不用,在一些特殊情況下可以用它來做一些事情。

5:X11,即進(jìn)到 X-Window 系統(tǒng)。

6:重新啟動 (記住不要把initdefault 設(shè)置為6,因?yàn)檫@樣會使Linux不斷地重新啟動)。

Terminal默認(rèn)的run level是3,而X Window默認(rèn)的run level是5,現(xiàn)在如果我在中斷輸入如下命令:

init 3

那么會殺死X Window,這樣就沒有X Window了,只存在Terminal,此時(shí)如果我想要重新進(jìn)入到X Window,我需要在Terminal進(jìn)行登錄,然后執(zhí)行

startx

重新打開X Window。

關(guān)于如何分析Linux中終端界面與圖形界面之間的切換關(guān)系問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI