X Window系統

X Window系統

一種以位圖方式顯示的軟件窗口系統。誕生于1984,比Microsoft Windows要早。是一套獨立于內核的軟件

Linux上的X Window系統

X Window系統由三個基本元素組成:X Server、X Client和二者通信的通道。

  • X Server:是控制輸出及輸入設備并維護相關資源的程序,它接收輸入設備的信息,并將其傳給X Client,而將X Client傳來的信息輸出到屏幕上(在屏幕上構造方塊(窗口),然后畫出里面的元素 )。

  • X Client:是應用程序的核心部分,它與硬件無關,每個應用程序就是一個X Client。X Client可以是終端仿真器(Xterm)或圖形界面程序,它不直接對顯示器繪制或者操作圖形,而是與X Server通信,由X Server控制顯示。

  • X通信通道 :X Client與X Server之間傳輸信息的媒介 。
    image.png

X Server

每一套顯示設備只對應唯一的X Server。由系統供應商提供,通常無法被用戶修改 。只是一個普通的用戶程序
自由軟件編寫者或廠商開發出了多種X Server:

  • XFree86:一個免費的X Server軟件,2004年棄用GPL協議。
  • Xorg:XFree86的衍生版本。這是運行在大多數Linux系統上的X Server,Red Hat Enterprises Linux 5.0上也是如此。
  • Accelerated X:由Accelerated X Product開發,在圖形的加速顯示上做了改進。
  • X Server suSE:SuSE Team’s開發。

X Client

X Client是X Window中的用戶端程序

多種多樣的X Client程序向X Server發出請求,由X Server運算得出結果,再顯示到指定的地方去,如本地或者遠程的一臺顯示器

X Client無法直接影響視窗行為或顯示效果,它們只能發送一個請求給X Server,由X Server來完成這些的請求

X 通信通道

X通信通道的主體是xlib(X函數庫)

X Client調用xlib,利用相應的通信功能向X Server發出請求

X Server完成任務之后,同樣調用xlib把結果顯示指點的設備上去

X window 特點

在Windows下,構建圖形界面的功能都做在了操作系統里面,你只能使用那些。這個方法很簡單,但是卻不靈活。

Unix和類Unix的操作系統沒有內建這個功能,要使用GUI你就不得不使用窗口系統(X Window)。

X window運行原理

C/S模式應用程序

X Server 為S,X Client 為C

X Client只是單純地執行程序、計算,它只能使用XServer提供的服務進行輸入輸出

X Server是一個管理顯示的進程,必須運行在一個有圖形顯示能力的主機上

X Protocol(X協議)

X Protocol是X Client和X Server進行通信的一套協定 ,支持的網絡協議有TCP/IP、DECnet等 。可以認為X Protocol就是X Client和X Server交互的一種語言 。X Protocol只是一種協議,并不是一個軟件,該協議需要具體的軟件來實現

實現 X protocol的服務器軟件

各種X Server軟件,實質上就是實現了X Protocol的軟件

這些軟件并沒有規定只是在UNIX和類UNIX操作系統上運行,在Windows上也有X Server軟件

在Windows上運行一個X Server,在Linux上運行X Client,X Client顯示在Windows上也是可行的

蘋果電腦的圖形界面用的也是X Protocol

X Server和WM(Window Manager窗口管理器)

X Server只負責建立窗口,在其中寫入文字或者畫圖,控制輸入設備等,

X Server創建的窗口會一個疊一個的堆積在屏幕上,不能操縱和移動,也無法改變大小和最小化

所以需要引入 窗口管理器實現
啟動畫面/背景圖案與顏色/字體/按鈕/菜單/桌面設置/移動/放大/縮小等

窗口管理器有:如FVWM、Afterstep、AMIWM、Blockbox、Enlightenment、WindowMaker、TWM、KVM等

使用了不同的窗口管理器,就有不同風格的窗口外形、桌面設置與菜單

窗口管理器必須運行在X Window上

X Window的啟動和關閉

啟動

  • init 5
  • startx(已經啟動了WM)

關閉

  • 點擊菜單中的退出
  • Alt+Ctl+Backspace

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EixRK1j9-1622687974020)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/186e17b4479a42dda5b978c78f3f6922~tplv-k3u1fbpfcp-watermark.image)]
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390717.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390717.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390717.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

冒名頂替上大學羅彩霞_什么是冒名頂替綜合癥,您如何克服?

冒名頂替上大學羅彩霞冒名頂替綜合癥 (Imposter Syndrome) Imposter Syndrome is a feeling of being a fraud or not being good enough to get the job done. Its common among software engineers, developers and designers working in tech companies, especially those n…

Linux命令----用戶管理

修改用戶密碼: sudo passwd (當前)用戶名  【sudo是super user do的簡寫,passwd是password的簡寫】 顯示當前正在操作系統的用戶:whoami   顯示當前登錄系統的用戶信息:who am i 注意: 普通…

lasso回歸和嶺回歸_如何計劃新產品和服務機會的回歸

lasso回歸和嶺回歸Marketers sometimes have to be creative to offer customers something new without the luxury of that new item being a brand-new product or built-from-scratch service. In fact, incrementally introducing features is familiar to marketers of c…

python代碼

原始字符串,不做任何特殊的處理 print("Newlines are indicated by \n")#Newlines are indicated by print(r"Newlines are indicated by \n")#Newlines are indicated by \n 格式輸出,轉化為字符串由format自動完成 ag…

Linux 設備管理和進程管理

設備管理 Linux系統中設備是用文件來表示的,每種設備都被抽象為設備文件的形式,這樣,就給應用程序一個一致的文件界面,方便應用程序和操作系統之間的通信。 設備文件集中放置在/dev目錄下,一般有幾千個,不…

樂高ev3涉及到的一些賽事_使您成為英雄的前五名開發者技能(提示:涉及LEGO)

樂高ev3涉及到的一些賽事Programming is like building something with LEGOs. Any developer can pick up a brand new LEGO set and build it following the instructions. This is very easy. Think of it as coding school assignments or entry level tutorials.編程就像用…

貝葉斯 定理_貝葉斯定理實際上是一個直觀的分數

貝葉斯 定理Bayes’ Theorem is one of the most known to the field of probability, and it is used often as a baseline model in machine learning. It is, however, too often memorized and chanted by people who don’t really know what P(B|E) P(E|B) * P(B) / P(E…

winfrom 點擊按鈕button彈框顯示顏色集

1.窗體托一個按鈕button; 2.單擊事件: 1 private void btnForeColor_Click(object sender, EventArgs e)2 {3 using (ColorDialog cdialog new ColorDialog())4 {5 cdialog.AnyColor true;6 …

JavaScript時間事件:setTimeout和setInterval

Programmers use timing events to delay the execution of certain code, or to repeat code at a specific interval.程序員使用時序事件來延遲某些代碼的執行,或以特定的時間間隔重復代碼。 There are two native functions in the JavaScript library used to …

webservice 基本要點

webservice的特點 webservices是自我包含的 webservices是自我描述的 webservices是跨平臺和語言的 webservices是基于開放和標準的 webservices是可以組合的 webservices是松散耦合的 webservices提供編程訪問的能力 webservices通過網絡進行發布,查找和使用 發布w…

文本數據可視化_如何使用TextHero快速預處理和可視化文本數據

文本數據可視化自然語言處理 (Natural Language Processing) When we are working on any NLP project or competition, we spend most of our time on preprocessing the text such as removing digits, punctuations, stopwords, whitespaces, etc and sometimes visualizati…

Less變量

Less變量 定義變量 Less 中的變量和其他編程語言一樣,可以實現值的復用,同樣它也有作用域(scope)。簡單的講,變量作用域就是局部變量和全局變量的概念。 Less 中,變量作用域采用的是就近原則,換…

漸進式web應用程序_如何在漸進式Web應用程序中添加到主屏幕

漸進式web應用程序添加到主屏幕 (Add To Homescreen) Here the web app install banner is focused on web app, with the feature of add to homescreen.在此,Web應用程序安裝標語專注于Web應用程序,具有添加到主屏幕的功能。 瀏覽器對“添加到主屏幕”…

linux shell 編程

shell的作用 shell是用戶和系統內核之間的接口程序shell是命令解釋器 shell程序 Shell程序的特點及用途: shell程序可以認為是將shell命令按照控制結構組織到一個文本文件中,批量的交給shell去執行 不同的shell解釋器使用不同的shell命令語法 shell…

Leetcode之javascript解題(No33-34)

附上我的github倉庫,會不斷更新leetcode解題答案,提供一個思路,大家共勉 在我的主頁和github上可以看到更多的關于leetcode的解題報告!(因為不知道為什么掘金沒有將其發布出來,目前已經聯系掘金客服&#x…

真實感人故事_您的數據可以告訴您真實故事嗎?

真實感人故事Many are passionate about Data Analytics. Many love matplotlib and Seaborn. Many enjoy designing and working on Classifiers. We are quick to grab a data set and launch Jupyter Notebook, import pandas and NumPy and get to work. But wait a minute…

轉:防止跨站攻擊,安全過濾

轉:http://blog.csdn.net/zpf0918/article/details/43952511 Spring MVC防御CSRF、XSS和SQL注入攻擊 本文說一下SpringMVC如何防御CSRF(Cross-site request forgery跨站請求偽造)和XSS(Cross site script跨站腳本攻擊)。 說說CSRF 對CSRF來說,其實Spring…

Linux c編程

c語言標準 ANSI CPOSIX(提高UNIX程序可移植性)SVID(POSIX的擴展超集)XPG(X/Open可移植性指南)GNU C(唯一能編譯Linux內核的編譯器) gcc 簡介 名稱: GNU project C an…

html怎么注釋掉代碼_HTML注釋:如何注釋掉您HTML代碼

html怎么注釋掉代碼HTML中的注釋 (Comments in HTML) The comment tag is an element used to leave notes, mostly related to the project or the website. This tag is frequently used to explain something in the code or leave some recommendations about the project.…

k均值算法 二分k均值算法_使用K均值對加勒比珊瑚礁進行分類

k均值算法 二分k均值算法Have you ever seen a Caribbean reef? Well if you haven’t, prepare yourself.您見過加勒比礁嗎? 好吧,如果沒有,請做好準備。 Today, we will be answering a question that, at face value, appears quite sim…