Linux中終端介面與圖形介面之間的切換關係
導讀 | 其實單純的從 介面與圖形介面之間的切換是很容易的,就那麼幾個 ,但是要徹底弄懂這背後的設計架構需要涉及到很多的概念,本文為你講解Ubuntu 18.10作業系統中的X Window,內容是瞭解自己機器上的 X Window、理解 display 和虛擬控制檯、遠端連線 X Server、理解 DisplayManager 和 X Window 桌面環境的啟動過程和執行巢狀的 X Server等這些基本概念。 |
X Window不是某一個具體的窗體介面,X Window 本質是一個分層的架構,它分為 Server 和 Client。X Server 負責圖形介面的顯示和使用者的輸入,而Client 程式需要連線到 X Server,然後請求 X Server 繪製圖形介面,同時從 X Server 接受使用者的輸入。在桌面系統上,X Server 和 Client 程式往往安裝在同一臺機器上,日常使用基本感覺不到它是分層的。就像我們的一臺電腦,X Server和Client是在同一臺電腦的。
既然X Window是分層的架構,很顯然,X Server 和 Client 也可以分別執行在不同的機器上,在一臺機器上執行程式,而在另外一臺機器上顯示圖形介面。
很多人考到這裡就有點蒙了,我們在編寫網站的時候也有Server-Client分層架構啊,那這有區別嗎?當然有了。
X Window 中的 Server 和 Client 的概念和我們平時接觸到的“Server/Client”概念剛好相反。很多熟悉 Internet 原理的人,第一次接觸 X Window 的這兩個概念都會搞錯。在Internet裡面的Server/Client,是Server負責處理相關的業務,然後將結果返回到Client客戶端,但是X Window恰好是相反的,它是Client負責處理,Server負責顯示。
比如,我有兩臺電腦,一臺本地機器上執行 Ubuntu 18.10 桌面版,而在另外一臺遠端機器上執行 7(純字元介面),如果是Internet裡面的Server/Client架構,Ubuntu 是 Client,而 CentOS 是 Server。
但是在 X Window 中,Server 偏偏是我面前的這臺 Ubuntu,X Server 執行在 Ubuntu 上。我可以在 CentOS 中執行 GVim,但是視窗顯示在 Ubuntu 中,這時,GVim 是一個 Client 程式,它在遠端機器上執行,而它的視窗顯示在本地。
網上很多介紹 X Window 的文章都是先讓系統進入字元介面,然後手動啟動一個 X Server。其實這完全沒有必要,因為在同一臺機器上完全可以執行多個 X Server,只需要讓每個 X Server 的 display 不同即可。那麼 display 究竟是什麼?
實際上,display 就是計算機配備的一套輸入輸出裝置,一個電腦可以有多個輸入輸出裝置,當然也可以只有一個。
在 X Window 中,可以透過 hostname:display_number.screen_number 來指定一個螢幕。可以這樣理解:一臺計算機可以有多個 display,一個 display 可以有多個螢幕。所以,display 相當於是計算機配備的一套輸入輸出裝置,一般情況下,一臺電腦只配一套鍵盤滑鼠和一個顯示器,特殊情況下,可以配多個顯示器。
現在問題出來了,我的電腦只有一套鍵盤滑鼠和一個顯示器,也就是隻有一個 display,那又怎麼能執行多個 X Server 呢?那是因為在 中,還有虛擬控制檯這樣的高階特性。只需要同時按下 Ctrl+Alt+F1、Ctrl+Alt+F2、...、Ctrl+Alt+F7,就可以在不同的虛擬控制檯中進行切換。就相當於是給這個電腦配備了7個不同的顯示器。
注意:預設情況下,Linux會提供6個Terminal 來讓使用者登入,切換的方式為Ctrl+Alt+F1到F6.而且,系統會為這6個終端介面以 tty1、tty2、tty3、tty4、tty5、tty6 的命名方式命名,除此之外,Linux還有一個預設的X視窗桌面,使用Ctrl+Alt+F7,姐可以切換到圖形桌面進行登入了。為什麼用tty來命名呢?
tty:終端裝置的統稱。
tty一詞源於Teletypes,或者teletypewriters,原來指的是電傳打字機,是透過序列線用印表機鍵盤透過閱讀和傳送資訊的東西,後來這東西被鍵盤與顯示器取代,所以現在叫終端比較合適。終端是一種字元型裝置,它有多種型別,通常使用tty來簡稱各種型別的終端裝置。Linux預設情況下
tty1~6是文字型控制檯,tty7是X Window圖形顯示管理器。
但是Linux不同的發行版本上面的圖形桌面和使用者終端可能會有所不同。
比如在 Ubuntu 18.10 中,虛擬控制檯 3 到 6 執行的是 tty,也就是字元介面,即Ctrl+Alt+F3到F6分別顯示tty3、tty4、tty5、tty6,虛擬控制檯 2 執行的是 Xorg,虛擬控制檯 1 執行的是圖形介面。
前面的使用Ctrl+Alt+Fn的形式來回切換隻是形式上的轉換,每一個都在執行,只不過顯示的那一個不同,但是實際上,Terminal與X Window在Linux中的執行等級是不一樣的,Linux一共有7中執行等級(run level),在不同的執行級下,系統有著不同的狀態,它們分別是:
0:停機(記住不要把initdefault 設定為0,因為這樣會使Linux無法啟動 )
1:單使用者模式,就像Win9X下的安全模式。
2:多使用者,但是沒有 NFS 。
3:完全多使用者模式,標準的執行級。
4:一般不用,在一些特殊情況下可以用它來做一些事情。
5:X11,即進到 X-Window 系統。
6:重新啟動 (記住不要把initdefault 設定為6,因為這樣會使Linux不斷地重新啟動)。
Terminal預設的run level是3,而X Window預設的run level是5,現在如果我在中斷輸入如下命令:
init 3
那麼會殺死X Window,這樣就沒有X Window了,只存在Terminal,此時如果我想要重新進入到X Window,我需要在Terminal進行登入,然後執行
startx
重新開啟X Window。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2734567/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux7 圖形介面的切換Linux
- Linux中 文字介面、X Window系統以及圖形介面的關係Linux
- linux入門學習(二):linux圖形化介面與命令列介面之間的切換,以及一些系統命令Linux命令列
- ubuntu 介面和終端切換Ubuntu
- 介面、抽象類、普通類之間的關係抽象
- Android中Module之間介面呼叫發現不了繼承關係Android繼承
- Xmanager4遠端連線linux圖形介面(vsftpd配置)LinuxFTP
- 3 個 Linux 上的 SSH 圖形介面工具Linux
- 孤兒程式與終端的關係
- Linux ubuntu命令列安裝圖形介面LinuxUbuntu命令列
- oracle linux 7 安裝圖形化介面OracleLinux
- 如何在終端介面藉助圖形化工具進行資料分析
- 在Linux中,Unix和Linux之間的關係是什麼?Linux
- 麒麟linux +達夢資料庫遠端圖形介面如何呼叫Linux資料庫
- 002.02 Tkinter 圖形介面之文字範例
- UML類圖--類之間的關係
- JTAG與SWD的介面連線關係簡介
- 韋達定理與新關係式的穿越介面
- TLS與SSL之間關係TLS
- Linux Shell檔案之間的包含關係Linux
- 思考 TPS 與 RT 之間的關係
- 類與類之間的基本關係
- 自己整理的關於windows圖形介面的問題Windows
- 使用XMing+putty執行linux圖形介面程式Linux
- 雲伺服器linux centos安裝圖形介面伺服器LinuxCentOS
- 07圖形化介面和命令列介面操作命令列
- 直播軟體搭建,Android studio設計兩個介面間的切換Android
- 給 Flutter 介面切換來點特效Flutter特效
- 類與介面(三)java中的介面與巢狀介面Java巢狀
- 使用SCRT+XMING 圖形介面
- 26 使用者圖形介面
- Linux和大資料雲端計算之間有什麼關係?Linux大資料
- DDD與團隊拓撲以及微服務之間的關係圖 - aleixmorgadas微服務
- js 函式中形參與實參的關係JS函式
- ERP與精益生產之間的關係
- GNU與Linux 的關係Linux
- webpack介面環境切換的配置-超簡單Web
- Python中的賦值與淺複製與深複製之間的關係Python賦值