X-Window的架构
在Unix-Like包括Linux等作业底下的图形界面通常被我们简称为X-Window啰,这个X- Window怎么来的?他目前的版本是怎样?还有,X-Window主要是主从架构的(Server, Client),那么这些主从架构是怎么回事呢?我们底下就来谈一谈这些东西吧!
·XFree86 的历史演进与版本
基本上,X-Window的核心就是 XFree86 这个玩意儿啰,他怎么来的呢?在早期的Unix世界中,并没有所谓的图形界面,所以在一些图形展示上面有点困扰就是了,后来经过麻省理工学院(MIT)的发展,终于在 1986 年开发出在 Unix 系统上面的 X Window System!并且组织了 XFree86 这个计画组织来发展这个图形介面!从此之后,人们才可以在 Unix 作业系统中看到这个美美的图形化介面(Graphical User Interface, 简称GUI)呢!那么这个 XFree86 组织继续发展这个介面,到了 1987 年释出第一版的X11版本,而后陆续发展出更新的版本,在第二版释出被称为X11R2,目前的版本则是第六次释出,称为X11R6啰!而目前的X11R6 版本中,主要依照新旧又被分为较旧的第三版(version 3),以及较新的第四版(version 4)。(注: XFree86 的命名基本上为 X 系统 + Free 软体 + x86 系统架构 的简写啰!)
那么在 Linux 针对 XFree86 的使用上面情况是怎样呢,呵呵,在 1994 年第一个 Linux kernel 1.0 的版本当中,就已经支援 XFree86 啰!至于目前在 2002 年之后出版的 Linux distribution 通常都已经换为了version 4了,例如 Mandrake 9.0 及Red Hat 7.2以后版本,这一版支援的显示卡驱动程式较多,而且也较新啦!不过,在 2001 年以前的Linux版本则主要还是以 version 3 为主呢!
·X server, X client 与 Window manager
大概了解一下X-Window的历史与版本之后,接着下来我们要来谈一谈,那么什么是X server, X client这些个东西,怎么一个X-Window有这么多的奇怪的介面,什么KDE啦还有GNOME啦等等的!
oX server:
基本上,XFree86的主要功能是什么呢?嗯!那就是管理整个Linux主机上面的关于显示的硬体配备啦!例如显示卡、萤幕解析度、键盘形式、滑鼠形式等等,咦!那我们在安装Linux的时候,不是都已经可以将这些资讯设定好了吗?这里必须说明的是,X-Window在Linux里面只是『一个软体』而已,所以,你在安装Linux的时候,选择的键盘也好,滑鼠形式也好,都是给Linux这个系统用的,跟X-Window可没有绝对的关系呢!所以这也就说明啦,你的X-Window要在Linux上面启动时,还需要载入X-Window需要的驱动程式才行!所以呢,当你以run-level 3进入Linux之后,基本上,X-Window是完全不存在你的系统的记忆体中,而当你输入startx以启动X-Window系统时,这个时候 Linux才会开始读入X-Window的驱动程式(大概就是显示卡驱动程式、萤幕解析度调整等等的设定值)。所以,请注意啦,这个X server就是用来管理Linux主要关于显示的一些硬体与驱动程式啰!
oX client:
大略知道了X server之后,再来我们要看一看,那么什么是X client呢?又没有网路连线,怎么会有client这个名词?其实,X server主要的功能只是在管理显示的驱动程式与硬体,但是在整个萤幕前面显示给使用者,并且经由使用者移动滑鼠也好、键盘也好,来启动一些『事件』的动作,以回应给X server,并进一步处理一些资讯,则是需要一些X的软体来进行,这些关于X的软体,我们就可以称为是X client啰!反正,只要是关于一些视窗的行为、显示在萤幕的行为等等,使用者都是透过X client来告诉X server的啦!那也就是说,『当X server死掉的时候,X client根本就无法动作!』怎么说呢?因为管理硬体的X server都不动了,利用这个server来进行显示与事件触发的X client要怎么活下去?了解了吗?
oWindow manager:
那么什么又是『视窗管理员?』说穿了,其实视窗管理员你也可以简单的将他看做是一个X client啦!这个Window manager主要是做为你跟整个X Window系统的介面,所以,所有的X软体(就是上面讲到的X client)都是他管的!目前最热门的两个视窗管理员就是KDE与GNOME啰!
如果我们以KDE来作说明,那么您应该不难了解,主要的硬体驱动还是得要X Window的核心,也就是XFree86这个咚咚没有问题的驱动之后,然后我们才能进入KDE这个视窗管理员的介面之下进行美美的图形介面环境工作!万一哪一天您的X-Window死掉了,你必须要知道的是,你是怎么让他死掉的?
o如果之前还可以进入X-Window,也就是KDE,不过经过当机之后(这里指的是并没有重新设定XFree86喔!),导致X-Window无法进入,那么应该可能就来自于KDE的问题了,这个情况之下,通常删除自己家目录之下的.kde这个隐藏目录后,就可以恢复到最原始的状态。
o但是如果一安装完Linux就一直无法进入X-Window的话,那么大概就是XFree86这个核心没有设定好的问题啦!所以我们就必须要设定XFree86呢!
·XFree86 的主要设定档案
好啦,既然如果曾经进入过X-Window,则可能的问题就会变成是window manager的问题,而不是XFree86的问题,那么情况应该还容易解决,所以我们不谈这个。我们底下要谈的是当你的X-Window一直无法正确且成功的启动时,那么应该就是硬体设定的问题啦!例如解析度调错啦、滑鼠格式不对啦、显示卡的驱动程式不对等等的问题!果真是这些问题的时候,我要如何来重新设定我的XFree86这个核心呢?
刚刚前面提过,我们的XFree86目前有两个版本,分别是version 3与version 4,那么怎么知道我的Linux使用的是哪一个XFree86的版本呢?嗯!就使用:
X –version
来检查吧!好了,那么不同版本的设定档在哪里?这两个版本的设定档分别是:
o version 3: /etc/X11/XF86Config
o version 4: /etc/X11/XF86Config-4
请特别留意他的大小写呢!上面的可是设定档喔!所以呢,当我们说『我的X-Window一直无法驱动,我要去修改我的设定档!』通常指的就是这个档案啦!目前我们在Linux里面大多是使用version 4了,因此底下我们将以/etc/X11/XF86Config-4这个档案来说明呢!请注意,如果您的X-Window本来可以正确无误的启动时,表示这个档案内容是对的,这个时候,『请务必将您的这个设定档案备份一个!』因为未来如果设定错误导致无法进入X-Window时,只要将原本正确的备份档案覆盖回来,你的X-Window就救回来了!所以这个档案真的很重要,请记得一定要备份喔!
cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.bak
底下我们就来谈一谈,怎么样设定我们的XFree86呢?一般而言,如果你要重新设定XFree86的一些细项设定时,最好的步骤是:
3.如果已经能够进入X-Window了,那么就直接以Window manager提供的小工具来设定你的XFree86,例如KDE提供的control center就可以进行这个工作;
4.如果没有办法进入X-Window了,那么就使用各家distribution提供的小工具来设定我们的XFree86设定档;
5.如果各家提供的工具还没有办法设定好XFree86的话,那么就必须要使用到XFree86提供的小软体工具,在指令列模式下面执行的xf86cfg或xf86config啰!
6.如果调整的结果您还是不太满意,那么就直接手动的来微调/etc/X11/XF86Config-4这个档案吧!
使用设定工具:XFdrake, Xconfigurator:
好了,如果你的X-Window本来就没有问题,那么底下的资料就可以不要看啦!但是,如果你的X-Window一直怪怪的,那么底下的设定方式就得给他瞧一瞧!目前使用上面较为方便的,还是以各家distribution提供的小工具来设定我们的/etc/X11/XF86Config-4这个档案较为方便,而设定的内容不外乎:
1.键盘的格式;
2.滑鼠的格式;
3.萤幕的格式,包含解析度、水平、垂直更新频率等等;
4.显示卡的主要驱动程式,也就是所谓的X server最主要的内容啦!
5.显示的解析度:
上面那个显示的解析度还得要了解一下,我们在设定萤幕的解析度时,指的是『我的萤幕能够负荷的最高解析度』,而在第五项的显示的解析度,是我们进入X- Window并且使用Window manager来操作主机之后,那个桌面的支援的解析度啦!因此,第三项萤幕的解析度当然就可以设定的比较高啰!
目前最流行的两套Linux:Mandrake与Red Hat均提供不错的软体来设定XF86Config-4,那就是:
·Mandrake XFdake
·Red Hat Xconfigurator
这两个套件设定的项目几乎都是一模一样啦。好了,请记得备份你的XF86Config-4这个档案吧。
·Mandrake : XFdrake
直接在指令列模式中输入XFdrake开始使用 XFdrake 的 X 设定啰!
o 侦测系统的硬体设定:
o进入XFdrake之后的第一个动作即是在侦测你的主机上面的硬体啦!如果捉到硬体之后,会将你的Linux主机上面的硬体给他显示在画面上,如同上图所示,而且有几个设定值:
§Graphic Card: 这个显示目前你的显示卡晶片;
§Monitor: 显示目前你的萤幕厂牌或者选择自订(Custom)
§Resolution: 选择你的X-Window显示的解析度
§Test: 立即测试你的硬体设定
§Options: 让你选择是否开机的时候进入X-Window
§Quit: 离开XFdrake这个程式!
请注意,在选择的时候,必须要使用
o显示卡晶片组的选择:Graphic Card
在按下了Graphic Card之后,会出现可以选择晶片组的画面来,如下图所示,在下图中,基本上会有三个栏位,第一个Vendor是说厂商,第二个SIS则是发展的厂商名称,例如你的显示卡是Nvidia的,那么就选择Nvidia吧!第三个则是这个厂商的支援晶片组!嗯!选择你的显示卡吧!我这里是使用SIS的6326 啦!
好了,确定了晶片组之后,由于我们的X11目前有两版,所以必须要先确认一下你的X11版本为何?因为这两个版本使用的晶片组驱动程式并不相同呀!因此,按下OK之后会出现下面图示:
由于我是使用version 4,所以这里就选择XFree 4.2.1啰!选择了XFree 4.2.1之后,系统会回复到最先前的画面喔! #p#副标题#e#
设定萤幕:Monitor
设定完了显示卡之后,再来则是设定另外一个很重要的咚咚,就是显示器,也就是萤幕设定啦!在萤幕的设定当中,首先,你可以选择程式提供的显示器的厂牌,如下图所示,如果你可以找到你的萤幕厂牌的话,那么直接点选就可以啦!如果找不到的话,那么就直接选择Custom吧!
如果刚刚上面选择了厂牌的话,那么程式将会自动设定水平、垂直更新频率;但是,如果是选择了Custom的话,那么就会出现如上的图示来要求你输入水平、垂直的更新频率。这里请特别留意呢,因为这两个频率设定错误的话(如果设定得太高了的话)很有可能会造成『萤幕的烧毁』,通常设定水平31-57及垂直50-90应该都不会有问题啦!这里设定完之后,又会回到最先前的画面。
o设定X-Window解析度:Resolution
在按下了Resolution之后,会出现下图:
在萤幕的解析度上面,这个就随个人的喜好而定了,鸟哥特别喜欢字小小的,桌面大大的,所以比较偏好1024x768这样的设定值啰!
o实地测试:Test
再来,如果按下Test之后,XFdrake就会帮我们进行测试工作了!奇怪的是,我做了好几次,结果都没有办法Test成功!真是奇怪?如果在这个画面中当掉了,不要慌张,按下[Ctrl]+[Alt]+[F1]就会回到原来的画面,基本上,不Test也没有关系啦!
o设定run-level:Options
接着下来则是设定是否开机即启动X-Window,也就是所谓的run-level 5啦
以我为例,因为我的Linux都是拿来当伺服器用的,而且对于X-Window不是很有使用的时机,所以我都是以run-level 3来登入Linux的,自然也就选择No啰!
o离开XFdrake:Quit
这样就设定完毕了!所以选择离开,这个时候会出现如下的图示:
如果確定一切都沒有問題,就給他按下『Yes』吧!這樣就完成設定了!當然啦,你的/etc/X11/XF86Config-4就被更改囉!
Red Hat : Xconfiguration
在 Red Hat 裡面也有個 Xconfiguration 來簡單的設定我們的 X Window 的各項設定喔!
執行 Xconfigurator :
這個時候會出現一個歡迎畫面,按下 OK 之後,系統會自動去捉顯示卡的晶片組。如果顯示卡是這一版的 XFree86 有支援的話,那系統就會顯示出你的顯示卡型號,如下圖所示為 S3 的 Trio64v2 晶片:
设定萤幕与萤幕解析度:
上图按下 OK 之后会开始去设定显示器(萤幕),一般我们都用自订的方法去捉萤幕,所以选择 Custom 手动设定(第一项),如下图所示:
按下 OK 之后,系统会告诉你一些讯息,再按下 OK 后,就会出现如下的画面,告诉你应该要选择哪一个萤幕的解析度,通常我们都会选择『High Frequency SVGA, 1024x768 @ 70Hz 』那一个选项。
上图按下 OK 之后,就会要求你选择垂直解析度,通常我们都是选择第二项,也就是 50-90 那一项即可;
o显示卡相关设定:
再来系统会问你是否要让 XFree86 自己捉显示卡相关的资讯?这里可以按 Probe 也可以按 Don"t Probe ,只是,如果你确切的知道你的显示卡记忆体的大小的话,这里建议选择 Don't Probe; 上一步骤选择 Don't Probe 之后,系统会要你选择你的记忆体,请依你的显示卡记忆体实际大小输入,如果是 S3 Vrige 的话,通常是 1M 或者是 2M 左右吧!
选完了记忆体大小之后,过来是选择你的记忆时脉晶片,由于我们通常不是很清楚我们的晶片是哪一个,所以这里只好让系统自己捉,如下图,直接选择 No Clockchip Setting 即可!
色彩度的设定:
再来则是选择画面解析度与色彩量,如下图所示,一般而言,如果你的 X-Window 一直有问题,这里可以选择 8 bit,及 640x480 的最原始设定就好!如果你的 X-Window 没有问题,可以正常的使用了,而你觉得你想要让你的色彩最大化,则可以仅选择 24 bit 及 1024x768 这一项即可!如此一来,你就可以以你最喜欢的解析度与色度进入 X-Window 啦!(注意喔,在 bit 之间以 tab 键移动,而以 空白键 确定!)
·
o 接着下来系统告诉你要开始测试 X-Windows 啦,按下 OK 之后系统就开始测试 X-Window!在这个地方要注意一下,如果你的设定不完全,则系统将会回到第三步骤重新再设定,如果你在这一个步骤重复了三次以上仍无法设定成功,那就必须以 xf86config 这支程式设定了!
如果你可以正常的看到一个游标及一个框框告诉你还有10秒钟的时间可以按确定,那就表示你的 X-Window 可以用啦!这个时候请选择 OK,然后出现的另一个框框告诉你:『是否要在下次开机的时候以图形介面登入』,这一步千万选择『NO』,因为以 X-Window 为预设的开机介面,个人觉得并不好,因为不但占用了较多的系统资源,而且,并不会比较好使用!
完成设定了,跳出 Xconfigurator 后,以 startx 进入 X-Window !
很简单吧,这就是使用工具软体来设定的方法。底下我们来提一提,那么正统的设定XFree86该怎么玩?
使用XFree86提供的工具设定:xf86cfg, xf86config
基本上,XFree86 已经提供了两支相当好用的程式来帮我们设定 XF86Config-4 了!那就是 xf86cfg 及 xf86config 这两个!
那个 xf86cfg 会自动的侦测我们的主机资讯,并且直接将新的 XF86Config.new 档案放置在设定者的家目录之下,相当的方便!只要使用者在启动 X-Window 之前,将自己家目录的 XF86Config.new 复制到 /etc/X11/XF86Config-4 这个档案,那么就完成设定啦!但是,由于 xf86cfg 主要是自动帮我们捉取资料的,除非您使用 man xf86cfg 来查询他的参数,否则常常无法捉到自己喜欢的模式!使用的方法是直接在指令列模式下,下达 xf86cfg 即可!