近年來拜硬體技術日新月異所賜,使得顯示卡 2D 與 3D 功能越來越強大,幾年前原先只應用在繪圖、電玩遊戲技術方面的 3D 功能,也漸漸走入最基礎的作業系統,促使各家作業系統廠商紛紛提出 3D 桌面系統,這其中又以 Windows Vista 名氣最大,而 Linux 在這方面則提出 Xgl 技術來吸引大眾目光,Linux Distribution 廠商 Novell SuSE、Ubuntu、Gentoo 與 Mandriva 也都率先將 Xgl 應用在其新版本上,可見 3D 桌面系統是未來趨勢。
今年(2006 年)在 SuSE Linux Enterprise 10 產品發表會上,不只看到 Linux 在伺服器端的進步,像是「Xen 虛擬機器」、「iSCSI 與儲存設備方面支援」,同時也看到 Linux 在桌上型部份的成長,像是「絢麗 3D 桌面效果」、「更人性化的使用者介面」、「更方便的整合搜尋工具 Beagle」等等,其中最明顯的就是『Xgl 3D 桌面效果』,使得 Linux 搶先在 Windows Vista 還未正式上市前,在桌上型作業系統的戰場,投下了一顆震撼彈。
底下先行簡介 Xgl 後,接著筆者就以 SLED 10(SuSE Linux Enterprise Desktop 10)配合 Nvidia GeForce 6600 PCIe 顯示卡,來介紹如何在 Linux 玩 3D 桌面效果,內容包括手動安裝 Nvidia 顯示卡驅動程式的整個流程。
Xgl 是以 OpenGL 為基礎的 X Server,使用 OpenGL 的 Library 來配合顯示卡硬體 3D 加速功能,可以做到像是「3D 旋轉桌面」、「多個視窗縮圖」、「快速放大縮小圖形畫面」、「視窗果凍效果與變形」、「快速變換視窗透明度」與「水波與漣漪」等等圖形特效,使得我們在應用桌面系統的時候,更加的有效率,並且也包含部份的趣味性。
以下分別是來自中文與英文的維基百科上 Xgl 圖片快照,可粗略看出「視窗透明效果」、「視窗變形效果」與「3D 旋轉桌面效果」,我們也可以在各大搜尋引擎(像是 YAHOO 或 Google)找到 Xgl 相關的圖片。
快照自 http://en.wikipedia.org/wiki/Image:Compiz_quinn_09-14-2006.png

快照自 http://zh.wikipedia.org/wiki/Image:Movie-cube.jpg

硬體部份所要準備的,最重要就是一張要能夠支援 Xgl 的顯示卡,筆者手邊這款顯示卡詳細資訊如下:製造商 nVidia 型號 GeForce 6600 採用 PCIe 介面、代號 NV43,實際運行 Xgl 的狀況還算可以,只是比較會耗用 CPU 資源,這張卡其實對 Xgl 的支援並不算是很好,但還算堪用。
該如何得知手邊的顯示卡是否支援 Xgl,比較笨的方法就是實際測試,雖然比較花費時間但也是最實際的方法,筆者比較建議先行上網查詢一下,這會是較聰明省時的方法,但網路上說得其實不一定準確,還有就是新舊版本的 Xgl 或 Linux Distribution 也有可能支援不同的顯示卡,截至筆者截稿前(2006年10月)拿捏出一個概念如下:
廠商大概就是 Intel(整合式晶片)、Nvidia 與 ATI(ATI 於 2006 年為 AMD 所併購),其他廠商的機會就比較低了,還有待大夥的努力;至於型號以較新、較高階的機會較大(低階也不一定說是完全不行,但太舊的顯示卡的機會就屬於渺茫)。
筆者測試過的顯示卡,可以使用 Xgl 的除了現在本文談到的這一張 GeForce 6600 之外,還有 Intel 945G 整合式顯示卡(只要使用指令 sax2 設定介面,開啟 3D 功能即可),失敗的有 nVidia 較舊的 TNT2 系列顯示卡(分別為 8M 與 16M 顯示卡記憶體,代號 vanta、RIVA TNT2 各一),至於 ATI 的顯示卡,剛好沒有測試到。以上純粹是經驗談,實際情況則需要試了才知道。
網址 http://en.opensuse.org/Xgl 所列出的硬體建議列表

使用指令「less /etc/X11/xgl-hardware-list」觀看列表的情形(第8行到第31行),底下列表中 G 開頭的代表支援良好、B 開頭代表不工作、S 代表勉強可用但是較慢、U 則是無法辨識型號
#
# The match is not anchored at the end, so, eg, putting just a
# vendor and device will match any revision, subvendor, and
# subdevice of that card.
#
# The status code is one of:
#
# G ("Good"): The card is known to work with Xgl.
#
# B ("Bad"): The card does not work with Xgl.
#
# S ("Slow"): The card sort of works with Xgl, but we don't
# recommend you use it. (It is either too slow,
# or slightly buggy.)
#
# U ("Unknown"): The card wasn't recognized, but the vendor
# was, in which case the suggested packages and
# setup script may still be useful.
#
# There are also variables, which specify things about the cards that
# follow them:
#
# DRIVER indicates the X driver to be used. (This is so that we don't
# get tricked into using a driver with only software support for 3D.)
/etc/X11/xgl-hardware-list lines 8-31/436 7%
「less /etc/X11/xgl-hardware-list」觀看第66行到第89行的情形,可看出現階段支援 nVidia 顯示卡型號,支援程度好的(G 開頭)有 GeForce 6600 GT,筆者的雖然不是高階 GT 版本,但實際跑起來勉強可用。
## ## NVIDIA cards ## DRIVER = nvidia PACKAGES = x11-video-nvidia nvidia-gfx-kmp SETUP = XGL_OPTS = -accel glx:pbuffer -accel xv # Supported NVIDIA cards G 10de:0092 # GeForce 7800 GT G 10de:0140 # NV43 [GeForce 6600 GT] G 10de:0161 # GeForce 6200 TurboCache(TM) G 10de:0326 # NV34 [GeForce FX 5500] # Unsupported-but-partially-working NVIDIA cards S 10de:00ce # NV41GL [Quadro FX 1400] S 10de:0179 # NV17 [GeForce4 420 Go 32M] S 10de:0185 # NV18 [GeForce4 MX 4000 AGP 8x] S 10de:0286 # NV28 [GeForce4 Ti 4200 Go AGP 8x] # Unrecognized NVIDIA cards U 10de:0040 # GeForce 6800 Ultra U 10de:0041 # GeForce 6800 U 10de:0043 # GeForce 6800 XE /etc/X11/xgl-hardware-list lines 66-89/436 18%
準備的軟體主要就是一個有 Xgl 桌面 Linux Distribution,筆者準備的是 SLED 10,至於如何取得 SLED 10 的方式,筆者是因為參加 Novell 產品發表會而得到試用版,或是您可以直接向「台灣網威」洽詢,關於「台灣網威」可在網址 http://www.novell.com.tw/ 有詳細介紹,或是直接到 Novell 原廠英文網站 http://www.novell.com/ 下載試用版。
下載 SUSE Linux Enterprise Desktop 10 網頁畫面,網址 http://download.novell.com/Download?buildid=N1YveG_t53Y~

筆者安裝 SLED 10 方式,大多採用預設值(按「Enter」或「下一步」),有些可能不是使用預設值的部份,介紹如下:
來到選取「語言/語系」畫面,既然要使用桌上型 Linux,那就選「繁體中文」吧!

選擇使用中文後,到調整「時間與時區」畫面,選擇「亞洲 / 台北」的「本地時間」

筆者經常遠端管理 Linux,所以會開啟「ssh」與「vnc」功能

現在裝新版的 Linux 很少遇到網路卡不能驅動的,所以筆者選擇「跳過測試」

建立一個帳號當普通帳戶用,筆者使用帳戶名稱 al

至於其他沒提到的部份,大多是按下「下一步」即可,大致上整個安裝流程相當順暢,只要有裝過作業系統的讀者朋友應該就沒有問題,跟安裝 Windows 差不了多少,從光碟機安裝大約 4GB 的資料到硬碟一般需要 1 個多小時左右的時間。
在裝好以後的首次登入,會給您一個耳目一新的感覺,美觀程度直逼 Mac OS X,並且整個開始功能表的操作更加人性化,可依照您不同的使用習慣來顯示(我的最愛應用程式、最近使用應用程式、最近使用的文件)。
SLED 10 開始功能表的畫面

SLED 10 的畫面,可以發現大多數的硬體已經於安裝完畢後就統統都支援(像是網路與音效,顯示在桌面右下角),不需額外安裝驅動程式。

在開始功能表內「控制中心」,呼叫出來是一個很像 Windows 控制台的畫面,比較值得一提的是,畫面上除了提供分類(群組)外,在左邊的中間還有「一般常用工具」,最特別的是,上方提供的「搜尋功能」(過濾)給愛用搜尋的使用者或管理者來應用。

搜尋不只好用,並且可以順便趁這個機會來測試 Linux 在「中文輸入」方面也是相當實用的(筆者正使用「新酷音」輸入法,類似微軟新注音)

一般若是顯示卡比較好的,經常會造成預設顯示出來的字太小,此時就會需要調整桌面解析度,也是相當直覺化的在控制中心-硬體分類「螢幕解析度」,使用完後還會很貼心的保留在桌面右下方「快速啟動區」(若是以後不常常調整,也可以從快速啟動區移除)

接下來說到我們的重點-『Xgl 桌面特效』也是在控制中心-外觀分類「桌面特效」,這張顯示卡在還沒自行安裝原廠驅動程式前,還不能使用 3D 特效。
還無法使用 3D 桌面的 Xgl 控制畫面

打開 Firefox 瀏覽器來到 nVidia 官方網站 http://www.nvidia.com/ 依網頁指示連接到下載 Linux 版 nVidia 顯示卡驅動程式,Firefox 預設會將檔案下載至桌面,筆者下載到的檔名為 NVIDIA-Linux-x86-1.0-8774-pkg1.run。

安裝這個驅動程式需要用到指令模式,GNOME 圖形介面使用 gnome-terminal 當作預設「終端機模擬器」,在呼叫程式後,因為 gnome-terminal 預設字型在螢幕解析度 1024 x 768 時看起來就很小造成不舒服,所以請先調大一點。
在 gnome-terminal 下拉『編輯』選單找到「目前的設定組合」來更改字型,請記得先去掉「使用系統指定的終端機字型」,這樣才能更改下方的字型設定。

至於更改 gnome-terminal 終端機顏色成「淺黃底黑字」、「黑底綠字」與「白底黑字」等等,也是在同一個地方的第三個分頁『色彩』,也請記得先去掉「使用系統佈景主題指定的色彩」,這樣才能更改下方的「內置色彩組合」。

下載到 NVIDIA-Linux-x86-1.0-8774-pkg1.run 該怎麼用呢?這個 .run 檔並沒有辦法使用滑鼠點一點就搞定,需使用指令「sh NVIDIA-Linux-x86-1.0-8774-pkg1.run」使用文字模式下的選單來安裝,筆者於安裝驅動程式期間遇到三部小插曲,需先解決這些小插曲,才有辦法繼續安裝,一個是「需使用 root 權限安裝,不能用一般使用者身份安裝」第二是「要先停用 X Window 進到文字模式(Runlevel 3)安裝」最後一個是「需先行安裝 gcc 套件(用於編譯)與 kernel-source 套件」
插曲一錯誤畫面

解決方法:使用指令「su -」取得 root 身份後,再執行「sh NVIDIA-Linux-x86-1.0-8774-pkg1.run」(記得先使用 cd 指令切換到 .run 檔放置的路徑下)
插曲二錯誤畫面

解決方法:使用指令「init 3」切換到 runlevel 3 ,使用 root 登入後,再度執行「sh NVIDIA-Linux-x86-1.0-8774-pkg1.run」(一樣要記得先使用 cd 指令切換到 .run 檔放置的路徑下)
插曲三錯誤畫面-缺少 kernel-source

插曲三錯誤畫面-缺少 gcc

解決方法:就是把缺少的「gcc」、「kernel-source」套件裝起來,您可以使用指令「yast2 -i gcc」、「yast2 -i kernel-source」或是從『開始功能表』的「軟體安裝程式」來解決這個問題。
使用 yast2 來安裝軟體的快照

軟體安裝程式搜尋並選取 gcc 畫面,接著再點選右下方『安裝』即可。

軟體安裝程式搜尋並選取 kernel-source 畫面,接著再點選右下方『安裝』即可。

正確處理以上三部插曲後,成功安裝、正在編譯顯示卡驅動程式的快照。編譯完成後,請利用指令「init 5」切換到圖形模式,就可以開始享用您的 Linux 3D 桌面囉!

安裝完成 nVidia 驅動程式後,迫不及待的來到「桌面特效」控制畫面,當按下「啟用桌面特效」按鈕後,會立即登出、再次登入後「桌面特效」控制畫面就可以完全控制了(共四個分頁)
我們立即感受到特效的部份,視窗的部份像是「視窗結束時淡出」、「視窗搖擺(果凍效果)」、「按下 Alt+Tab 切換視窗時會呈現縮圖」
分頁一

分頁二

桌面立方體的部份像是「使用 Ctrl+Alt+← →旋轉桌面」、「使用滑鼠拖曳桌面立方體」、「視窗遇到桌面邊緣是否要翻轉」等等
最後一個分頁『其他功能』:包括「視窗選擇器」、「放大鏡功能」「水波、下雨」 特效。
分頁三

分頁四

「並排視窗且產生縮圖效果」快照自網址 http://www.novell.com/products/desktop/img/preview_screenshots/apps3.png

在當紅的 YouTube 網站,搜尋關鍵字「Xgl」會找到許許多多展示 Xgl 3D 桌面效果的影片,下圖快照是使用兩個螢幕正在展示『桌面局部放大』效果

Linux 在桌上型電腦的應用,其實已經有相當久的一段時間,漸漸的一些常用軟體也變得更加人性化,像是瀏覽器 FireFox、收電子郵件的 evolution、即時通訊 gaim、文書軟體 OpenOffice、PDF瀏覽器 evince 與 acroread 等等,甚至一些商用軟體也是相當活躍,像是 Skype、Realplay 等等,這回 Xgl 3D 桌面特效,為 Linux 桌上型電腦應用,再度往前跨一大步。
對於一些正在學習 Linux 或是想試著使用 Linux 當作桌上型作業環境的讀者朋友們,其實筆者的建議是您不需要急著脫離 Windows 操控環境,怎麼說呢?畢竟學習 Linux 並不是為了不使用 Windows 為目的,而應該是先以原先 Windows 操控為基礎,來漸漸習慣 Linux 的操作環境,像是使用 putty.exe 透過 ssh 使用文字模式下的 Linux 指令列,或是使用 vnc 來使用 Linux 圖形桌面環境,當然若是可以直接面對面操作 Linux 更好(像是使用 KVM 切換器或是使用兩組電腦),而對於 Linux 上的一些桌面應用程式,像是 FireFox、OpenOffice、ThunderBird、Gaim 有些都有出 Windows 的版本,事實上可以先行下載到 Windows 來安裝執行使用看看,久而久之您就會習慣許多 Linux 上桌面所使用的軟體,到後來就會是一個 Windows / Linux 兩棲甚至遇到 Mac OS X 也一下子就能夠適應囉!
Linux 有許多好用的地方與長處優勢,想當然爾 Linux 也有其缺點與弱項,通常建議剛剛接觸 Linux 新朋友,多去使用 Linux 長處、好用的地方,先行避開 Linux 比較不足之處,這樣才不會一下子就自我阻斷了學習 Linux 之路,底下簡單列出一些 Linux 現階段常遇到的強弱項目,提供您作參考:也許您也可以像 http://distrowatch.com/ 網站所說得一樣『重拾使用電腦的樂趣,使用 Linux』(Put the fun back into computing, Use Linux, BSD.)

| 強項 | 例如 | 弱項 | 例如 |
| 各類伺服器架設 | 一般網頁伺服器 Web-Based AP 伺服器 郵件伺服器 資料庫伺服器 即時通訊伺服器 | 常見於 Windows 的電玩遊戲 | 在各類遊戲的支援度不高,但至少還有一些內建的益智遊戲 (像是:華容道、貪食蛇) |
| 嵌入式系統應用 (Embedded Linux) | 路由器、NAT、防火牆 網路負載平衡主機 防垃圾信與病毒信主機 入侵偵測防禦系統 VOIP 語音主機 影音傳遞或接收主機 | 部份的中文使用與應用 | 安裝無蝦米輸入法(步驟較繁瑣) |
| 程式開發 | C 與 C++ 開發環境 JAVA 與 .Net(Mono) PHP、Perl 與 Python 幾乎各種程式語言皆可 | 同樣也是關於程式開發 | 整合式開發環境介面(IDE) 許多都處於發展中階段 有多套可用可選擇但卻不見得穩定好用 |
| 磁碟管理 | 軟體磁碟陣列 (Software RAID) Linux Volume Manager(LVM) | 專門給桌上型使用的硬體 支援程度不若 Windows 齊全 | 對於沒有 PostScript 功能的印表機支援度較低 |
| 與大型系統銜接相關應用 | SAN(Storage Area Network) Cluster 與 Cluster File System iSCSI 與 Fibre Channel | 專門寫給 Internet Explorer 使用的網頁 或是只能在 Windows 執行的程式 | IE-Based 的 Web-Based 應用程式 只發行 Windows 版的應用程式 (像是某些會計系統或 ERP 系統) |
| 虛擬機器 | Xen 與 VMWare | 圖形方式的使用介面與管理介面 不像 Windows 那般統一 | 各家 Distribution 做出來的管理介面都不太一樣 (這個情況對於 Linux 的發展其實有好有壞) |