X-Window的架構(gòu)
在Unix-Like包括Linux等作業(yè)底下的圖形界面通常被我們簡稱為X-Window啰,這個X- Window怎么來的?他目前的版本是怎樣?還有,X-Window主要是主從架構(gòu)的(Server, Client),那么這些主從架構(gòu)是怎么回事呢?我們底下就來談一談這些東西吧!
·XFree86 的歷史演進(jìn)與版本
基本上,X-Window的核心就是 XFree86 這個玩意兒啰,他怎么來的呢?在早期的Unix世界中,并沒有所謂的圖形界面,所以在一些圖形展示上面有點(diǎn)困擾就是了,后來經(jīng)過麻省理工學(xué)院(MIT)的發(fā)展,終于在 1986 年開發(fā)出在 Unix 系統(tǒng)上面的 X Window System!并且組織了 XFree86 這個計畫組織來發(fā)展這個圖形介面!從此之后,人們才可以在 Unix 作業(yè)系統(tǒng)中看到這個美美的圖形化介面(Graphical User Interface, 簡稱GUI)呢!那么這個 XFree86 組織繼續(xù)發(fā)展這個介面,到了 1987 年釋出第一版的X11版本,而后陸續(xù)發(fā)展出更新的版本,在第二版釋出被稱為X11R2,目前的版本則是第六次釋出,稱為X11R6啰!而目前的X11R6 版本中,主要依照新舊又被分為較舊的第三版(version 3),以及較新的第四版(version 4)。(注: XFree86 的命名基本上為 X 系統(tǒng) + Free 軟體 + x86 系統(tǒng)架構(gòu) 的簡寫啰!)
那么在 Linux 針對 XFree86 的使用上面情況是怎樣呢,呵呵,在 1994 年第一個 Linux kernel 1.0 的版本當(dāng)中,就已經(jīng)支援 XFree86 啰!至于目前在 2002 年之后出版的 Linux distribution 通常都已經(jīng)換為了version 4了,例如 Mandrake 9.0 及Red Hat 7.2以后版本,這一版支援的顯示卡驅(qū)動程式較多,而且也較新啦!不過,在 2001 年以前的Linux版本則主要還是以 version 3 為主呢!
·X server, X client 與 Window manager
大概了解一下X-Window的歷史與版本之后,接著下來我們要來談一談,那么什么是X server, X client這些個東西,怎么一個X-Window有這么多的奇怪的介面,什么KDE啦還有GNOME啦等等的!
oX server:
基本上,XFree86的主要功能是什么呢?嗯!那就是管理整個Linux主機(jī)上面的關(guān)于顯示的硬體配備啦!例如顯示卡、螢?zāi)唤馕龆取㈡I盤形式、滑鼠形式等等,咦!那我們在安裝Linux的時候,不是都已經(jīng)可以將這些資訊設(shè)定好了嗎?這里必須說明的是,X-Window在Linux里面只是『一個軟體』而已,所以,你在安裝Linux的時候,選擇的鍵盤也好,滑鼠形式也好,都是給Linux這個系統(tǒng)用的,跟X-Window可沒有絕對的關(guān)系呢!所以這也就說明啦,你的X-Window要在Linux上面啟動時,還需要載入X-Window需要的驅(qū)動程式才行!所以呢,當(dāng)你以run-level 3進(jìn)入Linux之后,基本上,X-Window是完全不存在你的系統(tǒng)的記憶體中,而當(dāng)你輸入startx以啟動X-Window系統(tǒng)時,這個時候 Linux才會開始讀入X-Window的驅(qū)動程式(大概就是顯示卡驅(qū)動程式、螢?zāi)唤馕龆日{(diào)整等等的設(shè)定值)。所以,請注意啦,這個X server就是用來管理Linux主要關(guān)于顯示的一些硬體與驅(qū)動程式啰!
oX client:
大略知道了X server之后,再來我們要看一看,那么什么是X client呢?又沒有網(wǎng)路連線,怎么會有client這個名詞?其實(shí),X server主要的功能只是在管理顯示的驅(qū)動程式與硬體,但是在整個螢?zāi)磺懊骘@示給使用者,并且經(jīng)由使用者移動滑鼠也好、鍵盤也好,來啟動一些『事件』的動作,以回應(yīng)給X server,并進(jìn)一步處理一些資訊,則是需要一些X的軟體來進(jìn)行,這些關(guān)于X的軟體,我們就可以稱為是X client啰!反正,只要是關(guān)于一些視窗的行為、顯示在螢?zāi)坏男袨榈鹊龋褂谜叨际峭高^X client來告訴X server的啦!那也就是說,『當(dāng)X server死掉的時候,X client根本就無法動作!』怎么說呢?因為管理硬體的X server都不動了,利用這個server來進(jìn)行顯示與事件觸發(fā)的X client要怎么活下去?了解了嗎?
oWindow manager:
那么什么又是『視窗管理員?』說穿了,其實(shí)視窗管理員你也可以簡單的將他看做是一個X client啦!這個Window manager主要是做為你跟整個X Window系統(tǒng)的介面,所以,所有的X軟體(就是上面講到的X client)都是他管的!目前最熱門的兩個視窗管理員就是KDE與GNOME啰!
如果我們以KDE來作說明,那么您應(yīng)該不難了解,主要的硬體驅(qū)動還是得要X Window的核心,也就是XFree86這個咚咚沒有問題的驅(qū)動之后,然后我們才能進(jìn)入KDE這個視窗管理員的介面之下進(jìn)行美美的圖形介面環(huán)境工作!萬一哪一天您的X-Window死掉了,你必須要知道的是,你是怎么讓他死掉的?
o如果之前還可以進(jìn)入X-Window,也就是KDE,不過經(jīng)過當(dāng)機(jī)之后(這里指的是并沒有重新設(shè)定XFree86喔!),導(dǎo)致X-Window無法進(jìn)入,那么應(yīng)該可能就來自于KDE的問題了,這個情況之下,通常刪除自己家目錄之下的.kde這個隱藏目錄后,就可以恢復(fù)到最原始的狀態(tài)。
o但是如果一安裝完Linux就一直無法進(jìn)入X-Window的話,那么大概就是XFree86這個核心沒有設(shè)定好的問題啦!所以我們就必須要設(shè)定XFree86呢!
·XFree86 的主要設(shè)定檔案
好啦,既然如果曾經(jīng)進(jìn)入過X-Window,則可能的問題就會變成是window manager的問題,而不是XFree86的問題,那么情況應(yīng)該還容易解決,所以我們不談這個。我們底下要談的是當(dāng)你的X-Window一直無法正確且成功的啟動時,那么應(yīng)該就是硬體設(shè)定的問題啦!例如解析度調(diào)錯啦、滑鼠格式不對啦、顯示卡的驅(qū)動程式不對等等的問題!果真是這些問題的時候,我要如何來重新設(shè)定我的XFree86這個核心呢?
剛剛前面提過,我們的XFree86目前有兩個版本,分別是version 3與version 4,那么怎么知道我的Linux使用的是哪一個XFree86的版本呢?嗯!就使用:
X –version
來檢查吧!好了,那么不同版本的設(shè)定檔在哪里?這兩個版本的設(shè)定檔分別是:
o version 3: /etc/X11/XF86Config
o version 4: /etc/X11/XF86Config-4
請?zhí)貏e留意他的大小寫呢!上面的可是設(shè)定檔喔!所以呢,當(dāng)我們說『我的X-Window一直無法驅(qū)動,我要去修改我的設(shè)定檔!』通常指的就是這個檔案啦!目前我們在Linux里面大多是使用version 4了,因此底下我們將以/etc/X11/XF86Config-4這個檔案來說明呢!請注意,如果您的X-Window本來可以正確無誤的啟動時,表示這個檔案內(nèi)容是對的,這個時候,『請務(wù)必將您的這個設(shè)定檔案備份一個!』因為未來如果設(shè)定錯誤導(dǎo)致無法進(jìn)入X-Window時,只要將原本正確的備份檔案覆蓋回來,你的X-Window就救回來了!所以這個檔案真的很重要,請記得一定要備份喔!
cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.bak
底下我們就來談一談,怎么樣設(shè)定我們的XFree86呢?一般而言,如果你要重新設(shè)定XFree86的一些細(xì)項設(shè)定時,最好的步驟是:
3.如果已經(jīng)能夠進(jìn)入X-Window了,那么就直接以Window manager提供的小工具來設(shè)定你的XFree86,例如KDE提供的control center就可以進(jìn)行這個工作;
4.如果沒有辦法進(jìn)入X-Window了,那么就使用各家distribution提供的小工具來設(shè)定我們的XFree86設(shè)定檔;
5.如果各家提供的工具還沒有辦法設(shè)定好XFree86的話,那么就必須要使用到XFree86提供的小軟體工具,在指令列模式下面執(zhí)行的xf86cfg或xf86config啰!
6.如果調(diào)整的結(jié)果您還是不太滿意,那么就直接手動的來微調(diào)/etc/X11/XF86Config-4這個檔案吧!
使用設(shè)定工具:XFdrake, Xconfigurator:
好了,如果你的X-Window本來就沒有問題,那么底下的資料就可以不要看啦!但是,如果你的X-Window一直怪怪的,那么底下的設(shè)定方式就得給他瞧一瞧!目前使用上面較為方便的,還是以各家distribution提供的小工具來設(shè)定我們的/etc/X11/XF86Config-4這個檔案較為方便,而設(shè)定的內(nèi)容不外乎:
1.鍵盤的格式;
2.滑鼠的格式;
3.螢?zāi)坏母袷剑馕龆取⑺健⒋怪备骂l率等等;
4.顯示卡的主要驅(qū)動程式,也就是所謂的X server最主要的內(nèi)容啦!
5.顯示的解析度:
上面那個顯示的解析度還得要了解一下,我們在設(shè)定螢?zāi)坏慕馕龆葧r,指的是『我的螢?zāi)荒軌蜇?fù)荷的最高解析度』,而在第五項的顯示的解析度,是我們進(jìn)入X- Window并且使用Window manager來操作主機(jī)之后,那個桌面的支援的解析度啦!因此,第三項螢?zāi)坏慕馕龆犬?dāng)然就可以設(shè)定的比較高啰!
目前最流行的兩套Linux:Mandrake與Red Hat均提供不錯的軟體來設(shè)定XF86Config-4,那就是:
·Mandrake XFdake
·Red Hat Xconfigurator
這兩個套件設(shè)定的項目幾乎都是一模一樣啦。好了,請記得備份你的XF86Config-4這個檔案吧。
·Mandrake : XFdrake
直接在指令列模式中輸入XFdrake開始使用 XFdrake 的 X 設(shè)定啰!
o 偵測系統(tǒng)的硬體設(shè)定:
o進(jìn)入XFdrake之后的第一個動作即是在偵測你的主機(jī)上面的硬體啦!如果捉到硬體之后,會將你的Linux主機(jī)上面的硬體給他顯示在畫面上,如同上圖所示,而且有幾個設(shè)定值:
§Graphic Card: 這個顯示目前你的顯示卡晶片;
§Monitor: 顯示目前你的螢?zāi)粡S牌或者選擇自訂(Custom)
§Resolution: 選擇你的X-Window顯示的解析度
§Test: 立即測試你的硬體設(shè)定
§Options: 讓你選擇是否開機(jī)的時候進(jìn)入X-Window
§Quit: 離開XFdrake這個程式!
請注意,在選擇的時候,必須要使用
o顯示卡晶片組的選擇:Graphic Card
在按下了Graphic Card之后,會出現(xiàn)可以選擇晶片組的畫面來,如下圖所示,在下圖中,基本上會有三個欄位,第一個Vendor是說廠商,第二個SIS則是發(fā)展的廠商名稱,例如你的顯示卡是Nvidia的,那么就選擇Nvidia吧!第三個則是這個廠商的支援晶片組!嗯!選擇你的顯示卡吧!我這里是使用SIS的6326 啦!
好了,確定了晶片組之后,由于我們的X11目前有兩版,所以必須要先確認(rèn)一下你的X11版本為何?因為這兩個版本使用的晶片組驅(qū)動程式并不相同呀!因此,按下OK之后會出現(xiàn)下面圖示:
由于我是使用version 4,所以這里就選擇XFree 4.2.1啰!選擇了XFree 4.2.1之后,系統(tǒng)會回復(fù)到最先前的畫面喔! #p#副標(biāo)題#e#
設(shè)定螢?zāi)唬篗onitor
設(shè)定完了顯示卡之后,再來則是設(shè)定另外一個很重要的咚咚,就是顯示器,也就是螢?zāi)辉O(shè)定啦!在螢?zāi)坏脑O(shè)定當(dāng)中,首先,你可以選擇程式提供的顯示器的廠牌,如下圖所示,如果你可以找到你的螢?zāi)粡S牌的話,那么直接點(diǎn)選就可以啦!如果找不到的話,那么就直接選擇Custom吧!
如果剛剛上面選擇了廠牌的話,那么程式將會自動設(shè)定水平、垂直更新頻率;但是,如果是選擇了Custom的話,那么就會出現(xiàn)如上的圖示來要求你輸入水平、垂直的更新頻率。這里請?zhí)貏e留意呢,因為這兩個頻率設(shè)定錯誤的話(如果設(shè)定得太高了的話)很有可能會造成『螢?zāi)坏臒龤А唬ǔTO(shè)定水平31-57及垂直50-90應(yīng)該都不會有問題啦!這里設(shè)定完之后,又會回到最先前的畫面。
o設(shè)定X-Window解析度:Resolution
在按下了Resolution之后,會出現(xiàn)下圖:
在螢?zāi)坏慕馕龆壬厦妫@個就隨個人的喜好而定了,鳥哥特別喜歡字小小的,桌面大大的,所以比較偏好1024x768這樣的設(shè)定值啰!
o實(shí)地測試:Test
再來,如果按下Test之后,XFdrake就會幫我們進(jìn)行測試工作了!奇怪的是,我做了好幾次,結(jié)果都沒有辦法Test成功!真是奇怪?如果在這個畫面中當(dāng)?shù)袅耍灰艔垼聪耓Ctrl]+[Alt]+[F1]就會回到原來的畫面,基本上,不Test也沒有關(guān)系啦!
o設(shè)定run-level:Options
接著下來則是設(shè)定是否開機(jī)即啟動X-Window,也就是所謂的run-level 5啦
以我為例,因為我的Linux都是拿來當(dāng)伺服器用的,而且對于X-Window不是很有使用的時機(jī),所以我都是以run-level 3來登入Linux的,自然也就選擇No啰!
o離開XFdrake:Quit
這樣就設(shè)定完畢了!所以選擇離開,這個時候會出現(xiàn)如下的圖示:
如果確定一切都沒有問題,就給他按下『Yes』吧!這樣就完成設(shè)定了!當(dāng)然啦,你的/etc/X11/XF86Config-4就被更改囉!
Red Hat : Xconfiguration
在 Red Hat 裡面也有個 Xconfiguration 來簡單的設(shè)定我們的 X Window 的各項設(shè)定喔!
執(zhí)行 Xconfigurator :
這個時候會出現(xiàn)一個歡迎畫面,按下 OK 之後,系統(tǒng)會自動去捉顯示卡的晶片組。如果顯示卡是這一版的 XFree86 有支援的話,那系統(tǒng)就會顯示出你的顯示卡型號,如下圖所示為 S3 的 Trio64v2 晶片:
設(shè)定螢?zāi)慌c螢?zāi)唤馕龆龋?
上圖按下 OK 之后會開始去設(shè)定顯示器(螢?zāi)唬话阄覀兌加米杂喌姆椒ㄈプ轿災(zāi)唬赃x擇 Custom 手動設(shè)定(第一項),如下圖所示:
按下 OK 之后,系統(tǒng)會告訴你一些訊息,再按下 OK 后,就會出現(xiàn)如下的畫面,告訴你應(yīng)該要選擇哪一個螢?zāi)坏慕馕龆龋ǔN覀兌紩x擇『High Frequency SVGA, 1024x768 @ 70Hz 』那一個選項。
上圖按下 OK 之后,就會要求你選擇垂直解析度,通常我們都是選擇第二項,也就是 50-90 那一項即可;
o顯示卡相關(guān)設(shè)定:
再來系統(tǒng)會問你是否要讓 XFree86 自己捉顯示卡相關(guān)的資訊?這里可以按 Probe 也可以按 Don"t Probe ,只是,如果你確切的知道你的顯示卡記憶體的大小的話,這里建議選擇 Don't Probe; 上一步驟選擇 Don't Probe 之后,系統(tǒng)會要你選擇你的記憶體,請依你的顯示卡記憶體實(shí)際大小輸入,如果是 S3 Vrige 的話,通常是 1M 或者是 2M 左右吧!
選完了記憶體大小之后,過來是選擇你的記憶時脈晶片,由于我們通常不是很清楚我們的晶片是哪一個,所以這里只好讓系統(tǒng)自己捉,如下圖,直接選擇 No Clockchip Setting 即可!
色彩度的設(shè)定:
再來則是選擇畫面解析度與色彩量,如下圖所示,一般而言,如果你的 X-Window 一直有問題,這里可以選擇 8 bit,及 640x480 的最原始設(shè)定就好!如果你的 X-Window 沒有問題,可以正常的使用了,而你覺得你想要讓你的色彩最大化,則可以僅選擇 24 bit 及 1024x768 這一項即可!如此一來,你就可以以你最喜歡的解析度與色度進(jìn)入 X-Window 啦!(注意喔,在 bit 之間以 tab 鍵移動,而以 空白鍵 確定!)
·
o 接著下來系統(tǒng)告訴你要開始測試 X-Windows 啦,按下 OK 之后系統(tǒng)就開始測試 X-Window!在這個地方要注意一下,如果你的設(shè)定不完全,則系統(tǒng)將會回到第三步驟重新再設(shè)定,如果你在這一個步驟重復(fù)了三次以上仍無法設(shè)定成功,那就必須以 xf86config 這支程式設(shè)定了!
如果你可以正常的看到一個游標(biāo)及一個框框告訴你還有10秒鐘的時間可以按確定,那就表示你的 X-Window 可以用啦!這個時候請選擇 OK,然后出現(xiàn)的另一個框框告訴你:『是否要在下次開機(jī)的時候以圖形介面登入』,這一步千萬選擇『NO』,因為以 X-Window 為預(yù)設(shè)的開機(jī)介面,個人覺得并不好,因為不但占用了較多的系統(tǒng)資源,而且,并不會比較好使用!
完成設(shè)定了,跳出 Xconfigurator 后,以 startx 進(jìn)入 X-Window !
很簡單吧,這就是使用工具軟體來設(shè)定的方法。底下我們來提一提,那么正統(tǒng)的設(shè)定XFree86該怎么玩?
使用XFree86提供的工具設(shè)定:xf86cfg, xf86config
基本上,XFree86 已經(jīng)提供了兩支相當(dāng)好用的程式來幫我們設(shè)定 XF86Config-4 了!那就是 xf86cfg 及 xf86config 這兩個!
那個 xf86cfg 會自動的偵測我們的主機(jī)資訊,并且直接將新的 XF86Config.new 檔案放置在設(shè)定者的家目錄之下,相當(dāng)?shù)姆奖悖≈灰褂谜咴趩?X-Window 之前,將自己家目錄的 XF86Config.new 復(fù)制到 /etc/X11/XF86Config-4 這個檔案,那么就完成設(shè)定啦!但是,由于 xf86cfg 主要是自動幫我們捉取資料的,除非您使用 man xf86cfg 來查詢他的參數(shù),否則常常無法捉到自己喜歡的模式!使用的方法是直接在指令列模式下,下達(dá) xf86cfg 即可!


