當前位置:首頁 » 操作系統 » gtk的linux

gtk的linux

發布時間: 2025-01-06 13:32:01

linux GTK、KDE、Gnome、XWindows 圖形界面區別是什麼

Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。Linux圖形界面是許多應用程序的可視化與實現,這篇文章主要介紹了GTK、KDE、Gnome、XWindows 圖形界面,需要的朋友可以參考下

具體介紹

一、linux圖形界面的實現只是linux下的應用程序實現

圖形界面(GUI)並不是linux的一部分,linux只是一個基於命令行的操作系統,linux和Xfree的關系就相當於當年的DOS和Windows 3.0一樣,Windows 3.0不是獨立的操作系統,它只是DOS的擴充,是DOS下的應用程序級別(GUI)的系統,不是獨立的操作系統。同樣XFree只是linux下的一個應用程序而已,不是系統的一部分,但是X的存在可以方便用戶使用電腦。Windows 95及以後的版本就不一樣了,他們的圖形界面是操作系統的一部分,圖形界面在系統內核中就實現了,沒有了圖形界面windows就不成為windows了,但linux卻不一樣,沒有圖形界面linux還是linux,很多裝linux的WEB伺服器就根本不裝X伺服器。這也WINDOWS和linux的重要區別之一.

二、X是協議,不是具體的某個軟體

X是協議,就像HTTP協議、IP協議一樣。因為輸入設備和顯示設備不是同一個設備,而且他們需要相互配合,進行畫面顯示,所以需要一個交互協議,建立他們直接的溝通橋梁。

X協議主要有X應用程序和X伺服器組成,如:我需要劃個圓,X應用程序告訴X伺服器在屏幕的什麼地方用什麼顏色畫一個多大的圓,而具體的"畫"的動作,比如這個圓如何生成,用什麼顯卡的驅動程序去指揮顯卡完成等等工作是由X伺服器來完成的.

X伺服器還負責捕捉鍵盤和滑鼠的動作,假設X伺服器捕捉到滑鼠的左鍵被按下了,他就告訴X應用程序:親愛的應用程序先生,我發現滑鼠被按下了,您有什麼指示嗎?如果X應用程序被設計成當按下滑鼠左健後再在屏幕上畫一個正方形的話,X應用程序就對X伺服器說:請再畫一個正方形,當然他會告訴伺服器在什麼地方用什麼顏色畫多大的正方形,但不關心具體怎麼畫——那是伺服器的事情。

三、X和XFree86的關系

有了協議,就需要具體的軟體來實現這個協議,就好比我們有了交通法規就需要交警去根據法規維護交通秩序一樣。Xfree86就是這樣一個去根據法規實現協議的"交警",他按照X協議的規定來完成X應用程序提交的在屏幕上顯示的任務.當然不僅僅是某個特定的交警才可以去維護和實現這個法規,比如還可以由交通協管員來實現交通法規,必要的時候警察也可以介入,當然前提是他們都要懂得交通法規,也就是要懂得協議,所以實現X協議的軟體也並不只有XFree86,XFree86隻是實現X協議的一個免費X伺服器軟體。商業上常用MOTIF,現在還有XORG,還有很多很小的由愛好者寫的小的X伺服器軟體,甚至可以在Windows上有X伺服器運行,這樣你可以在linux系統上運行一個X應用程序然後在另一台windows系統上顯示,多麼神奇!你可以用google找到這樣的X伺服器軟體,只不過在LINUX上最常用的是XFree86(現在的linux發行版都用Xorg了)順便說一句,蘋果電腦的圖形界面用的也是X協議,而且被認為是做的最好的X協議圖形界面,並且他對X協議的實施是做在系統內核里的,所以性能明顯好很多,這就是為什麼很多大型三維圖形設計軟體都是在蘋果平台上的原因。

為了便於理解拿HTTP協議來比較:

1)協議是HTTP(hyper text transmission protocol)

實現這個協議的常用伺服器有:apacheIIS 等

請求這些伺服器傳輸文件的客戶有:IE、MOZILLA、NETSCAPE等

2)協議是X

實現這個協議的常用伺服器有:Xfree86、Xorg、Xnest等

請求這些伺服器來完成顯示任務的客戶:所有的X應用程序.

只不過HTTP協議的伺服器和客戶端通常都在兩台不同的電腦(伺服器和客戶機)之間來實現,所以一般人對這個比較容易理解。而X協議的伺服器和客戶端程序通常在同一台電腦上,因此很多用戶都感到對此很難理解,既然是協議,那麼肯定和平台無關的,因此可以讓X應用程序顯示在任何裝有X伺服器的遠程計算機上,甚至顯示在裝有Xnest伺服器的windows系統上。只不過在大多數情況下,X應用程序都用本機的X伺服器,然後X伺服器將顯示結果輸出到本機的顯示器,這也是很多人不理解X是一種協議的原因.

四、X、X11、X11R6又是什麼關系?

不知道初學者有沒有注意到/usr/X11R6這個目錄,這是XFree的默認安裝目錄

X11R6實際上是XProtocol version 11 Release6(X協議第11版第六次發行)的意思,就是說目前用的X協議是第11版的,然後經過了6次小的修正。不同版本的X協議是不能通信的,就象我們現在IPV4和IPV6不能通信一樣,不過不用擔心,現在的X伺服器軟體和X應用程序都遵循X11R6.

另外XFree86 3.3.6、XFree86 4.3.6等這些版本是實現X協議的軟體XFree86的版本號.這是初學者經常高混淆的概念.

協議版本和實現協議的軟體的版本——這兩個概念的區別你分清楚了嗎?

五、WM(Window Manager)窗口管理器

窗口管理器的作用就是實現窗口的最大化、最小化、移動、關閉等,而這些不是X伺服器來負責完成的。如果不窗口管理器,X應用程序仍可以啟動,但它就在屏幕中間,不能移動、不能最小化、不能最大化、沒有邊框。

Xfree86自帶了一個簡單的窗口管理器:twm,同時窗口管理器還有GNOME和KDE等。為了更方便的了解窗口管理器的作用,我們可以做以下測試(因我使用的是ubuntu,無法確認以下操作和命令的正確性,請有條件的朋友測試以下並給與指正)。

1、系統(有界面的Linux)啟動後,進入圖形進面,我們打開一個XTERM,輸入init3就可以安全的回到字元界面.

2、再輸入#startx又返回到圖形界面,你看到的是一個和平時使用一樣的完整的圖形界面操作環境,你可以最大化、最小化、移動、關閉窗口等。

3、我們還是再次進入字元界面,按ctrl+alt+backspace反回字元界面,輸入:#xinit(註:與第二步的命令startx不同),再次啟動圖形界面,你看到了什麼,你看到一個XTERM.而且不能移動.但是你可以在這個XTERM中輸入命令打開X應用程序,如果我輸入:#mozilla。打開瀏覽器,你看到的瀏覽器和平時有什麼不同嗎?他在屏幕中間,不能移動、不能最小化、不能最大化、沒有邊框。

為什麼同樣一個X應用程序會有這樣的不同呢?因為我們用startx啟動圖形界面的時候同時也啟動了一個默認的WM(即窗口管理器),如果你用KDE就起動了KDE,如果你用GNOME就起動了GNOME,但是你用xinit起動圖形界面的時候卻沒有起動WM.

4、如果你用xinit起動圖形界面並在xterm中輸入twm,看看會有什麼?xterm被加上了一個邊框,你可以通過這個邊框移動、最大化、最小化這個xterm,twm就是XFree86中自帶的窗口管理器,是一個比較簡陋的最簡單的窗口管理器,但是他具有窗口管理器的全部特徵.

5、如果你不輸入twm而輸入gnome-session就可以起動GNOME或者輸入startkde起動KDE.

通過以上的實驗你就可以清楚的明白他們之間的關系,另其它的小型窗口管理器有:

windowmaker、after step、blackbox、fvwm、fvwm2等等都是常用的優秀窗口管理器。REDHAT9中有windowmaker 但是默認不安裝,大家可以裝來試試.只要xinit再wmaker&就可以用windowmaker了.

六、X協議的Client端有時誰實現的呢?

XFree86是X協議的伺服器軟體(注以軟體的形式實現),但Client端更多的是方便程序員更方便的使用X協議與伺服器端的XFree86交互,故就產生了一個Xlib庫,封裝了X協議內容,如果你還覺得直接使用Xlib不方便,於是就產生了QT和GTK,對Xlib進一步封裝,提供了很多控制項,可以可視化的使用X協議更方便程序員的開發。

Xlib、QT、GTK直接關系如下圖:

QT是直接使用xlib庫的,GTK不能直接使用xlib,而是使用更低層的函數庫GDK和Glib。這種結構使得Gtk可以更方便地移植到其它系統上,或使用與XWindows系統無關的圖形庫。

七、KDE、GNOME、QT和GTK直接關系

KDE和GNOME是窗口管理器,啟動他們後我們進入了可視化操作(圖形界面),既然需要顯示圖形,自然少不了與X協議的伺服器軟體打交道,既然QT和GTK進一步封裝了X協議,並且他們提供了更為豐富的窗口及控制機制,於是在QT基礎上實現的窗口管理器叫KDE,在GTK基礎上實現的窗口管理器叫GNOME.

再次提示:KDE和GNOME並不只是窗口管理器,同時提供了桌面、菜單等等。

KDE和Gnome都是桌面環境中的一種,用的庫不一樣,可以是KDE,Gnome,還可以是XFCE、LXDE等

kde用的qt庫,但是qt庫不是免費的,在基於qt的軟體版權上面會有一些問題。於是就有人開發出了gnome,用的是gtk庫,這個庫沒有qt庫在版權上的問題。

(qt庫和gtk庫就相當於windows下的MFC庫)

補充:Linux基本命令

1.ls命令:

格式::ls [選項] [目錄或文件]

功能:對於目錄,列出該目錄下的所有子目錄與文件;對於文件,列出文件名以及其他信息。

常用選項:

-a :列出目錄下的所有文件,包括以 . 開頭的隱含文件。

-d :將目錄像文件一樣顯示,而不是顯示其他文件。

-i :輸出文件的i節點的索引信息。

-k :以k位元組的形式表示文件的大小。

-l :列出文件的詳細信息。

-n :用數字的UID,GID代替名稱。

-F : 在每個文件名後面附上一個字元以說明該文件的類型,“*”表示可執行的普通文 件;“/”表示目錄;“@”表示符號鏈接;“l”表示FIFOS;“=”表示套接字。

2.cd命令

格式:cd [目錄名稱]

常用選項:

cd .. 返回上一級目錄。

cd ../.. 將當前目錄向上移動兩級。

cd - 返回最近訪問目錄。

3.pwd命令

格式: pwd

功能:顯示出當前工作目錄的絕對路徑。

相關閱讀:Linux主要特性

完全兼容POSIX1.0標准

這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。

多用戶、多任務

Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。

良好的界面

Linux同時具有字元界面和圖形界面。在字元界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,用戶可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。

支持多種平台

Linux可以運行在多種硬體平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發布的Linux 2.4版內核已經能夠完全支持Intel 64位晶元架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。

⑵ linux下寫圖形界面選gtk還是qt

在Linux系統下編寫圖形界面應用時,開發者常常面臨選擇GTK或QT的抉擇。QT因其易用性、全面的文檔以及豐富的示例,成為許多開發者的首選。QT的社區龐大,遇到問題時,開發者可以快速找到解決方案或相關資料。然而,QT的授權協議較為嚴格,尤其是在商業應用方面,開發者需要額外考慮授權成本和合規性。

相比之下,GTK的文檔雖不全面,但至少能提供一些基本指導。開發者在遇到問題時,可能需要花費更多時間搜索相關信息或求助於論壇。GTK的示例項目較少,且在某些設計方面可能存在一些不直觀之處。盡管如此,GTK作為跨平台的庫,適用於多種Linux發行版,且具有一定的靈活性。

決定選擇GTK還是QT,開發者需綜合考慮項目需求、團隊技能、未來擴展性以及可能的商業應用等因素。對於追求快速開發、注重易用性和社區支持的項目,QT可能是更合適的選擇。而對於關注成本、開源許可證以及跨平台兼容性的項目,GTK則可能更為合適。開發者應根據具體情況權衡利弊,做出最適合項目的決策。

⑶ linux下的gtk是什麼有什麼用

GTK(GIMP Toolkit)是一個Linux平台下基於Xwindow圖形窗口的圖形用戶編程介面工具,可以藉助它來開發Linux平台下基於Xwindow的圖形用戶界面。通俗點講,和java中的swing圖形開發工具包類似.它注冊完全免費,所以用來開發自由軟體或商業軟體都不需要花費什麼。現在很多Linux集成系統都已經將GTK1.2版本打包進去了。包括RedHat Linux 6.0以上版本,還有中文化的Turbo Linux等等。它也越來越被普遍的應用於UNIX系統編程.

熱點內容
空三資料庫 發布:2025-01-08 01:04:59 瀏覽:773
xp系統怎麼做ftp 發布:2025-01-08 00:56:43 瀏覽:49
c語言當中的 發布:2025-01-08 00:53:01 瀏覽:964
505房間的密碼多少 發布:2025-01-08 00:50:04 瀏覽:157
2008搭建email伺服器 發布:2025-01-08 00:50:02 瀏覽:629
機器人編程實例 發布:2025-01-08 00:42:51 瀏覽:1
我的世界伺服器生存建造秘密基地 發布:2025-01-08 00:41:26 瀏覽:875
在頁式存儲管理系統中 發布:2025-01-08 00:41:25 瀏覽:241
c語言寫一 發布:2025-01-08 00:22:17 瀏覽:97
win搭建udp伺服器 發布:2025-01-08 00:20:31 瀏覽:652