Kiến Thức Cơ Bản Slackware Linux
4.3Hệ thống X Window
Hệ thống X Window được coi là hệ thống đồ hoạ tiêu chuẩn
cho người sử dụng(GUI) dưới tất cả các phiên bản Unix
và Linux.Khác với Windows,MacOS,trong Linux và Unix
thì GUI không có gì chung với Nhân của
hệ thống.Nó là phần không phụ thuộc.Điều này
làm cho hệ thống bền hơn.
Một vấn đề duy nhất của X Window là khó khăn trong
công việc xây dựng cấu hình.Chính thế
mà trong Slackware 7 đã không xây dựng cho
X mà sử dụng framebuffer drivers.Có nghĩa là
bạn không cần phải trải qua giai đoạn soạn thảo cấu hình ở
phần xf86config và XF86Setup,framebuffer sẽ làm việc
trên tất cả VESA 2.0 - Tương thích videocard.Có
nghĩa là trong tương lai thì tất cả các video-card
sẽ làm việc ở X.Tuy nhiên framebuffer làm việc chậm
hơn so với khi xây dựng đúng câu hình
video-card của bạn.
Nếu như bạn quyết định sử dụng framebuffer thì hãy
cài đặt package xxfb.tgz từ khu vực chương trình X.Bạn cần
phải chọn một trong các cỡ của console trong quá
trình cài đặt.Tuy nhiên chúng tôi
khuyên các bạn lên cấu hình cho X.
Nếu bạn sử dụng X trên hệ thống thì cần xem ở phần 4.3.1
và 4.3.2.Phần đầu miêu tả cách sử dụng xf86config(1)-chương trình ở
dạng dòng lệnh.Còn phần hai là liên quan đến XF86Setup(1) - Chương trinh hoạt động
ở chế độ đồ họa.
4.3.1 xf86config
xf86config là một trong
hai chương trình dùng để xây dựng cấu hình X
cho hệ thống.Ý tưởng của qúa trình rất đơn giản -
Bạn chỉ cần trả lời các câu hỏi một cách
chính xác.Sau đó chương trình
tạo ra tệp tin cấu hình: /etc/XF86Config(5).Bấy
giờ bạn hãy chuẩn bị khởi động X.Nếu nhầm lẫn thì bạn cần
phải ngừng lại quá trình,bằng tổ hợp ctrl+c và lập
lại công việc từ ban đầu.
Một việc đáng làm là bạn phải chuẩn bị kĩ lưỡng
các thông tin về video-card cùng monitor(màn
hình).Bạn có thể nhận được thông tin về video-card
với chương trình:
#SuperProbe
Chương trình khi chay sẽ nhắc nhở bạn về khả năng nhấp
nháy của hệ thống.Nếu bạn sợ thì sau khoảng 5s mà
vẫn chưa kết thúc thì hãy nhấn ctrl+c.Tuy
nhiên bất chấp,bạn vẫn tiếp tục và tất nhiên bạn sẽ
nhận được thông tin về video-cars của bạn như sau:
First
video: Super-VGA
Chipset: ATI 264GT3 (3D Rage Pro)
(Port Probed)
Memory: 4096 Kbytes
RAMDAC: ATI Mach64 integrated
15/16/24/32-bit
DAC w/ clock
(WITH 8-BIT WIDE Lookup
tables)
(programmable for 6/8-bit
wide lookup tables)
Attached graphics coprocessor:
Chipset: ATI Mach64
Memory: 4096 Kbytes
Đây là thông tin về ATI Rage Pro
video-card.Hãy ghi nhớ những thông tin trên và
chuyển sang một VT(virtual terminal) để làm việc(sử dụng tổ hợp
phím Alt+F2,,,hoặc Alt+F6),tại đây bạn sử dụng xf86config để tiến hành
công việc.Thông tin về video-card sử dụng sau
này.xf86config cần phải được chạy dưới root,bởi vì
nó sẽ tạo ra các tệp tin cũng với links vào những
vị trí mà chỉ có root mới có quền kiểm
soát.
#xf86config
Sau khi chạy chương trình thì bạn sẽ nhìn thấy
thấy một màn hình đầy thông báo nói sơ
lược về công việc mà bạn đang định làm.Nhớ rằng bạn
không thể quay trở lại mục trước nếu khai báo
sai,chính vì thế hãy trả lời thật chính
xác.Ngược lại bạn sẽ phải làm lại rất nhiều lần.
Mouse Protocol
Bạn sẽ nhìn thấy danh sách các dạng chuột
thông dụng.Hãy chọn dạng của mình.Thông thường
là PS/2 hoặc Microsoft Intellimouse.Những loại cổ điển có
lẽ cần những protocol khác(cổ điển).
Emulate3Buttons
Nếu chuột của bạn có hai nút,nhưng bạn vẫn có thể
chọn ở chế độ ba nút.Hãy nhấn hai nut đồng thời sẽ như
là sử dụng nút thứ ba.Bởi vì có nhiều chương
trình cần nó cho nên khuyến khích các
bạn sử dụng tính năng này.Tuy nhiên nếu bạn
đã có ba nút trên chuột rồi thì
câu trả lời sẽ không quan trọng.
Mouse device name
Thông thường theo mặc định là /dev/mouse.Nếu chuột
của bạn kết nối với cổng lạ thường thì bạn phải nhập vào
một cái khác.
XKEYBOARD extension
Nếu như bạn không chọn mục này thì dẫn đến một
cái gi đó rất lạ cho các phím backspace
và delete.Việc chọn lựa này làm cho chúng
làm việc một cách bình thường.
Bindings for alt keys
Nếu như bạn biết sử dụng các ngôn ngữ khác nhau
thì bạn hãy lên chọn chức năng này.Nếu bạn
chỉ sử dụng tiếng anh thì không cần bật nó lên.
Horizontal sync range
Câu hỏi đầu tiên về màn hình của
bạn.Nó rất là quan trọng khi chọn lựa.Đừng chọn chiều
ngang vượt quá giới hạn cho phép của màn
hình.Tuy nhiên nó không nguy hiểm với
các màn hình hiện đại bởi vì chúng
có bộ phận bảo vệ,không cho phép vượt quá
giới hạn.Những màn hình cổ xưa có thể bị hư hại khi
vượt quá mức độ cho phép của màn hình.Sẽ rất
là có lợi nếu bạn có trong tay tài liệu về
màn hình.Thông thường với các màn
hình đương thời có thể chọn 31.5-48.5 hoặc 31.5-57.0.Nếu
ai đó có màn hình chất lượng cao hơn
thì có thể chọn chiều ngang nhiều hơn.Hoặc bạn có
thể nhập vào thông số của mình nếu chúng
không có trong danh sách.
Vertical sync range
Lại làm lại hệt như thế.Bạn lên dựa vào tài
liệu để trả lời chính xác câu hỏi.Tuy nhiên
không có gì lạ nếu bạn chọn trong khoảng nhỏ.Một
chọn lựa an toàn là trong khoảng 50-90 hoặc 50-100.Ngược
lại bạn có thể tự điền vào thông số của mình.
Identification strings
Bây giờ sẽ là câu hỏi về sự ăn khớp với màn
hình của bạn.Câu này không quan trọng lắm.Bạn
có thể bỏ trống không trả lời.Bạn có thể điền
tên mà bạn thấy là đúng.Nó chỉ
dùng trong têp tin cấu hình để tương hợp.
Video card database
Đây là một phần lớn khi xây dựng cấu hình
X,nó quan hệ đến video-card của bạn.Những thông tin về
video-card khi sử dụng SuperProbe sẽ giúp bạn.Có lẽ bạn
thích tham khảo thử cơ sở video-card của hệ thống.Hãy nhấn
'y" và Enter.Bạn sẽ nhìn thấy một hệ thống video-card
khoảng 800-card.Bên tay trái là tên và
số của mỗi card.Ở bên phải là thông tin về chipset
được sử dụng trên card này.Để tiếp tục hãy nhấn
Enter,nếu như chưa tìm thấy video-card của mình.Khi bạn
tìm thấy nó hãy điền số của nó vào
và nhấn Enter.Nếu bạn không biết dạng video-card của bạn
là gì thì có thể có các
cách sau:
Bạn có thể xem dòng
"Chipset" ở kết quả thu được nhờ SuperProbe,và tìm loại
chipset như thế trong bảng dữ liệu trên.
Đơn giản hơn bạn có thể sử dụng chipset "generic SVGA" cho
video-card.Có rất nhiều card không có mặt trong dữ
liệu của X server tuy nhiên chúng vẫn làm việc dưới
SVGA server.Dù thế nào đi nữa bạn cũng vẫn phải chọn
card-video.Đó là sự chọn lựa của bạn.Sau đó bạn
nhận được các thông tin chi tiết hơn.Để tiếp tục bạn sẽ
có thông báo sau:(chúng ta vẫn dùng
ví dụ là ATI Rage Pro)
Your
selected card definition:
Identifier: ATI Mach64
Chipset: ATI-Mach64
Server: XF86_Mach64
Do NOT probe clocks or use any Clocks
line
Bây giờ bạn phải kiểm tra xem bạn đã cài đặt
packages server chưa.XF86-Mach64 server nằm ở packages xma64.tgz.
Video memory
Hãy chọn dung lượng bộ nhớ mà có trong video-card
của bạn(Bạn có thể sử dụng SuperProbe để lấy được thêm
thông tin).Nếu như chúng không có trong danh
sách thì bạn có thể chọn "Other" và
điền bằng tay.Chú ý thông tin nhập vào
tính theo Kb.
Video modes
Có thể hình dung nó như sau:
"640x480" "800x600" "1024x768" "1280x1024" for 8bpp |
"640x480" "800x600" "1024x768" "1280x1024" for 16bpp |
"640x480" "800x600" "1024x768" "1280x1024" for 24bpp |
"640x480" "800x600" "1024x768" for 32bpp |
Bạn phải chọn chế độ kích thước cho môi trường làm
việc X.Chắc hẳn bạn sẽ nhìn thấy bốn dòng trên đại
diện cho bốn loại mầu sắc:
8bpp, 16bpp,24bpp и 32bpp.Ứng với mỗi loại mầu sắc có các
loại chế độ kích thước môi trường làm việc
khác nhau của X.Khi chạy X thì nó sẽ sử dụng
mầu sắc theo ngầm định và với một chế độ kích cỡ
cho phép(đã được bạn chọn ).Nếu bạn muốn thay đổi chế độ
kích cỡ môi trường làm việc của X thì
hãy làm việc đó ngay bây giờ.
Nếu bạn muốn X chạy trên một chế độ kích cỡ khác
theo mặc định thì đầu tiên hãy chọn mầu sẵc cho hệ
thống(mà bạn muốn thay đổi),còn sau đó hãy
đọc những chỉ dẫn của chương trình.Nó sẽ yêu cầu
bạn nhập vào con số tương ứng với kích thức của môi
trường làm việc trong các thứ tự trên.Nếu bạn chỉ
đơn giản muốn thay đổi thứ tự chế độ kích thước của môi
trường làm việc thì có lẽ chỉ cần điền vào
như sau:
Which modes? 5432
Và bạn cũng có thể xóa bỏ đi chế độ
kích cớ làm việc của môi trường mà bạn
muốn.Nếu như video-card của bạn không thể làm việc ở chế
độ 1280x1024 thì tất nhiêu chẳng cần thử nó
làm gì cả.Bạn có thể xóa nó bằng
cách trả lời
Which modes? 432
Sau khi chọn chế độ kích cỡ làm việc cho môi
trường,chương trình sẽ hỏi bạn có muốn sử dụng màn
hình ảo mà có kích thước to hơn màn
hình thực tế của bạn.Sử dụng màn hình
ảo:"có nghĩa là khi bạn di chuyển con trỏ đế các
góc giới hạn của màn hình thì không
gian sẽ chuyển động lùi lại đẩy con trỏ đi xa hơn tới góc
giới hạn ảo của màn hình.Mặc dù màn
hình to hơn nhưng hạn chế là bạn không thể
nhìn thấy hết toàn bộ màn hình cũng
lúc,nó sẽ phân tán bạn.Tuy nhiên
hãy thử với nó.Sẽ rất là hấp dẫn.Như vậy đấy,nếu
bạn muốn thì hãy tiếp tục sau đó ban sẽ quay trở
lại danh sách chế độ video.
Sau khi thay đổi cho 24bpp mầu sắc bạn sẽ nhìn thấy như
sau:
"640x480" "800x600" "1024x768" "1280x1024" for 8bpp |
"640x480" "800x600" "1024x768" "1280x1024" for 16bpp |
"1280x1024" "1024x768" "800x600" "640x480" for 24bpp |
"640x480" "800x600" "1024x768" for 32bpp |
Bạn hãy tiếp tục biến đổi đối với các mầu
còn lại nếu bạn muốn.
Write the config file
Vậy là xf86config đã hoàn thành việc thiết
lập cấu hình X.Chương trình sẽ hỏi bạn sẽ ghi vào
tập tin /etc/X11/XF86Config
hay không. Tất nhiên sẽ là có vì bạn
muốn sử dụng X,bạn hãy trả lời "y".Đây chính
là tập tin cấu hình mà khi X khởi động sẽ
tìm đến nó.
Nếu bạn trả lời đúng các câu hỏi và
đã cài đặt X server thì ngay lúc này
có thể chạy X được rồi.
$ startx
Nếu bạn cài KDE hoặc GNOME thì một trong chúng sẽ
được thực thi.Ngược lại bạn phải chạy xwmconfig để chọn
lựa trình điều khiển cửa sổ nào mà bạn
thích và nó sẽ được chạy theo mặc định.xwmconfigdùng
để xác định trình điều khiển cửa sổ cho các
tài khoản.Nếu trên hệ thống có nhiều tài
khoản thì mỗi người từ họ phại chạy xwmconfig để
xác địng cho một trình điều khiển cửa sổ riêng.
Tồn tại một vài tổ hợp phím rất có lợi khi sử dụng
X.Nếu bạn muốn thoát khỏi X mà không thể làm
đúng theo quy tắc thì bạn có thể sử dụng control-alt-backspace,dùng
để tiêu diệt X và đưa bạn vào vỏ lệnh.Bạn có
thể chuyển từ X vào terminal bằng tổ hợp phím
Ctrl+Alt+Fx(x=1,,6). X đang chạy trên terminal thứ 7,và
bạn muốn quay trở lại X thì có thể làm như sau:
nhấn phím Alt+F7.
4.3.2 XF86Setup
Phương pháp thứ hai cho X - chương trình XF86Setup,sử
dụng ở chế độ đồ họa.Bạn hãy cài đặt package xset.tgz
và đừng quên xvg.tgz.
Để chạy XF86Setup,hẵy đăng nhập như root sau đó nhập lệnh:
#XF86Setup
Nếu như bạn đã có tệp tin /etc/XF86Config(bạn đã
xây dựng X)thì chương trình sẽ hỏi bạn có sử
dụng tệp tin nay hay không.Ngược lại chương trình sẽ bắt
đầu làm việc(ở chế độ đồ hoạ).
XF86Setup về bản chất giống như xf86config,nó sẽ hỏi bạn một
loạt các câu hỏi về hệ thống của ban.Hãy nhớ những
thông tin bạn có để xây dựng X.Bản thân
XF86Setup chứa rất nhiều thông tin sẽ giúp đỡ bạn thiết lập
cấu hình hệ thống.
4.3.3 xinitrc
xinit(1) - có thể
nói là một chương trình khởi động X.Nó thực
hiện từ startx(1),điều
này có thể bạn không nhận thấy(Tuy nhiên
có thể cần và cũng có thể không).Tuy
nhiên nó sử dụng để quyết định chương trình
nào sẽ chạy khi khởi động X(bao gồm trình điều khiển cửa
sổ).xinit đầu tiên kiểm tra có hay không ở catalog
home của bạn tệp tin .xinitrc.Nếu
như có thì sẽ thực hiện,còn nếu không
thì sẽ thực hiện ở /var/X11R6/lib/xinit/xinitrc(theo
mặc định).Đây là ví dụ về tệp tin xinitrc:
#
!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4
91/08/22 11:41:34 rws Exp $
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge
$sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
xrdb -merge
$userresources
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
# start some nice programs
twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name
login
Tất cả từ những block "if" được sử dụng để kết nối những tập
tinChúng ta sẽ nhanh chóng xem xét đến tập tin
.Xresources, còn tập tin .Xmodmap chúng ta không
làm gì cả.Tuy nhiên phần mà hấp dẫn nhất
chính là ở phần cuối cùng(nơi mà chạy những
chương trình khác nhau).X-session bắt đầu với
twm(1)-trình điều khiển cửa sổ,với đồng hồ,với ba terminal.Bạn
chú ý đến dòng exec ở dòng cuối cùng
của terminal.Lệnh này nói rằng terminal
này(xterm(1)) sẽ thế chỗ cho vỏ lệnh hiện hành(cái
mà dung để chạy script xinit).Khi mà người dùng
thoát khỏi xterm này thì X-session cũng kết
thúc.Nếu bạn thích xác định xem chương trình
nào sẽ chạy trong X session thì hãy sao
chép /etc/X11R6/lib/xinit/xinit.rc vào ~/.xinitrc
và soạn thảo lại nó,đừng quên bổ sung vào
nó dòng lệnh để chạy các chương trình
mà bạn muốn.Nó sẽ tương tự như sau:
#
Start the window manager:
exec startkde
Chú ý rằng có một vài xinitrc.* tập tin ở
catalog /var/X11R6/lib/xinit mà tương ứng với những trình
điều khiển cửa sổ và GUI.,bạn có thể sử dụng nó
tùy thích.
.Xresources và .Xdefaults
Có rất nhiều thứ từ X mà gây được sức hấp dẫn với
người sử dụng(mầu sắc,fonts..) khi sử dụng Xresource Database.Nó
là cơ sở dữ liệu được làm việc bằng xrdb(1),tuy
nhiên bạn sẽ không bao giờ sử dụng đến chúng.Trong
Slackware nó tự động bật lên từ .xinitrc.Tệp tin mà
xinit chỉ định xrdb khởi động là /.Xresources,và xrdb cũng
khởi động /.Xdefaults.
Cấu hình nhỏ nhất của tập tin
.Xresources có dạng sau:
xterm*background: black
xterm*foreground: gray
xterm*scrollBar: true
xterm*font:
-*-lucidatypewriter-*-r-*-*-15-*-*-*-*-*-*-*
Bốn dòng trên xác định cấu hình cho
xterm.còn Xresource có dạng sau:
program*option: setting/value
Như vậy nội dung của .Xresources cần
phải đủ để cho nó tự hiểu.Đừng sợ về cách ghi phông
chữ.Các phông chữ của X thường ghi ở dạng như thế.
Server và trình điều khiển
Đầu tiên X được sử dụng qua mạng.Một server rất lớn để chạy
các chương trình X.Chúng được hiển thị
trên màn hình của các máy clients tất
nhiên thuộc mạng. Khả năng sử dụng các chương trình
trên các máy ở xa có thể có nhiều tiềm
năng tuy nhiên hạn chế của nó là vấn đề an
toàn.Các chương trình khi thực thi sẽ kém
phần an toàn hơn là so với thực hiện trên bản
thân máy.Và đừng quên nó cũng
đòi hỏi về tài nguyên mạng.Bạn có thể
tìm thấy những nhận xét về mục này ở phần 4.3.5
Thậm chí ngay cả khi bạn chạy X trên máy cá
nhân,bạn cũng phải có một cấu trúc
server-client.Server là phần mà xác định
video-card.Khi bạn xây dựng X thì bạn đã thông
báo cho nó rằng bạn có video-card nào,loại
gì mà X sẽ sử dụng.Client - là phần còn
lại(chương trình...) mà bạn thực hiện trong X.Trong
đó client đặc biệt là trình điểu khiển cửa
sổ.Có lẽ đó là một chương trình khó
nhưng nhờ có nó bạn có thể làm mọi thứ.Trong
nó có các tham biến đi kèm mà
có thể làm cho hình dạng desktop của bạn
khác hẳn với của những người khác.
Hầu như số lượng các trình điều khiển cửa sổ của Linux
khác với Windows.Trong Windows thì bạn có một
môi trường làm việc chính,còn trong Linux
có thể sử dụng một trong một tập hợp các trình điều
khiển.Mỗi trình khác nhau ở bề ngoài và cấu
trúc bên trong.Một số người cho rằng đó là
một vấn đề thiếu sót,không co dạng chuẩn chung.Tuy
nhiên các nhà sử dụng Linux thì lại coi
đó là một phong cách mới,có thể xây
dựng hệ thống của mình theo ý muốn.
4.3.4 Chọn lựa môi trường
làm việc
Rất lâu rồi Unix được sử dụng một cách đặc biệt như một
Server là bởi vì nó là một trạm làm
việc năng suất và chuyên nghiệp.Chỉ những người có
kiến thức kĩ thuật không chuẩn mới sử dụng Unix như một HĐH,
và interface của nó cũng tương ứng với điều này.GUI
được sử dụng cốt chỉ để làm việc với những chương trình
cần thiết như CAD và image render.Việc điều khiển hệ thống được
sử dụng bằng câu lệnh từ vỏ lệnh.Những hãng sản xuất như
Sun Microsoft,Silicon Graphic...bán những trạm làm việc
của mình với các thử nghiệm như "look" và
"feel",tuy nhiên tất cả các dạng khác nhau của GUI
đều dẫn tới làm mất đi dạng truyền thống môi trường
làm việc.Các thanh cuộn có các hình
dáng khác nhau trong các trình khác
nhau.Menu có thể nằm ở các vị trí khác nhau
trên cửa sổ.Trong chương trình có thể bắt gặp nhiều
nút điều khiển...cho đến khi bạn chở thành chuyên
nghiệp thì điều đó không quan trọng nữa.
Cùng với sự xuất hiện các phiên bản Unix tưc do
và sự tăng trưởng các chương trình ứng dụng đồ
họa(graphic) thì X đã trở thành môi trường
làm việc chính.Hầu như có thể nói bề
ngoài giống như Windows và MacOS,hạn chế của nó
là nhằm vào các ứng dụng cho X và đã
có cạnh tranh để chiếm ưu thế sử dụng.Đó chính việc
xuất hiện hai kế hoạch lớn với mã mở là KDE và
GNOME.Cả hai đều có những chiều hướng phát triển mạnh
mẽ.Từ trình điều khiển các tiến trình,cũng như
trình điều khiển hệ thống tập tin,openoffice,..và cả games
nữa...tất cả đều hướng tới để đạt được một môi trường làm
việc hoàn thiện.
Giữa KDE và GNOME có sự khác nhau rất
lớn.Chúng đi theo các chiều hướng khác nhau bởi
vì được lập trình trên các GUI toolkit
khác nhau.KDE dựa trên thư viện Qt từ Troll Tech AS
còn khi đó GNOME dựa chủ yếu vào GTK
và tổ hợp các công cụ khác mà được tạo
ra cho GNU image Manipulation Program(GIMP).Nguyên nhân
là các bản thiết kế được tạo ra không phụ thuộc
vào nhau,và được cải thiện bởi các nhà lập
trình khác nhau,các phong cách và
ý tưởng khác nhau.Tuy nhiên kết quả của cả hai
là một nền tảng vững chắc và đầy đủ cho một môi
trường làm việc cũng như tập hợp các chương trình
ứng dụng.
Một trong những điều đáng giá là chúng miễn
phí.Bạn có thể nhận được một trong số chúng thậm
chí cả hai trên cùng một máy tính.
Cùng với KDE và GNOME thì trên Slackware
còn được trang bị một khối lượng lớn các trình điều
khiển cửa sổ.Một vài trong số chúng làm việc như
emulator(mô phỏng) trên cá OS khác,còn
một số được cấu hình để tăng tốc độ cho hệ thống.Sự chọn lựa rất
lớn.Bạn có thể cài đặt bao nhiêu tùy
ý,có thể làm việc với chúng và chọn
cái nào mà bạn thích nhất.
Để mà chọn môi trường làm việc thì
chúng tôi khuyên bạn nên sử dụng
xwmconfig.Nó giúp bạn chọn trình quản lý cửa
sổ nào hợp lý cho bạn.
$xwmconfig
Như vậy bạn sẽ nhìn thấy danh sách tất cả các
màn hình và các trình điều khiển cửa
sổ trên hệ thống của bạn.Chỉ đơn giản,hãy chọn một trong số
chúng.Mỗi một tài khoản sử dụng một trình
riêng,tuy nhiên các tài khoản khác nhau
có thể sử dụng các trình khác nhau.Có
thể bạn không thích cái nào cả thì
có thể đơn giản gọi X ra như sau:
$startx
4.35. Dùng chung màn
hình
Như chúng ta đã nhận thấy có khả năng chạy X
trên một máy tính và thông tin được
hiện trên máy khác.Có lẽ nó sẽ ảnh
hưởng đến tốc độ khi truyền qua mạng.Tất nhiên bạn sẽ không
làm điều đó qua modem hoặc khoảng cách qúa
xa,đấy không kể là không an toàn trên
quãng đường truyền tải thông tin.Việc dùng chung
màn hình cho phép các máy khác
có thể quan sát được các hoạt động trên
máy bạn.Điều đó có lợi nếu bạn ở trong mạng nội bộ.
Ở đây cần xác định client và server.Khi bạn
phân chia màn hình thì bạn sẽ xác định
đâu là server đâu là client.Máy
mà chạy X và gửi hình ảnh qua mạng gọi là
Server.Còn máy mà nhận hình ảnh(hình
ảnh được hiển thị trên đó) gọi là client.
Ở trong ví dụ này chúng ta sử dụng hai
máy:golf - là một server tốc độ cao,đặt trên
bàn trong một mạng lưới phân chia kiểu hình
tròn bởi một số người và các thiết bị phần
cứng.Trên nó có nhiều bộ nhớ và một processor
tốc độ cao.Trên nó có đầy đủ các chương
trình của X nhưng không có màn hình
.Trong lúc đấy tại một điểm khác trên mạng là
một máy couch - đời cổ,bộ nhớ ít,đĩa cứng không
lớn,processor tốc độ không cao,có màn
hình.Trên nó không có đủ tài
nguyên để chạy các chương trình như là
Netscape.Bạn không cần phải cố gắng để sử dụng nó bởi
vì nó đã qua cổ rồi.Hãy đi đến giải
pháp dùng chung màn hình.
Hãy vào couch và bật X,hãy khởi động
terminal của bạn(xterm,rxvt,eterm,aterm..).Chú ý rằng bước
đầu tiên xây dựng sử dụng màn hình từ xa
là xây dựng client(có nghĩa là cấu
hình để các máy khác có thể hiển thị
các kết quả của chương trình).Để thực hiện điều này
hãy dùng xhost.Nó kiểm soát quá
trình truy cập.Nếu bạn ở trong một hệ thống mạng an toàn
thì bạn có thể yên tâm nếu như có ai
đó thấy các công việc mà bạn đang
làm.Trong trường hợp này bạn chỉ cần cho phép mọi
người trong mạng hiển thị những thông tin này trên
màn hình.
couch $ xhost +
Nếu bạn không muốn mọi người nhìn thấy các hoạt
động của bạn thì xhost có thể giúp bạn cho
phép ai có quền theo dõi các hoạt động của
bạn.Bạn có thể làm như sau:
couch $ xhost + golf.foc
Như vậy là bây giờ thì chỉ có golf.foc mới
có quyền truy cập các thông tin trên
màn hình của couch.Bạn có thể kiểm tra xem ai
có quyền hiển thị các thông tin trên
màn hình của chính mình bằng cách
chạy xhost không có tham biến đi kèm.
couch $ xhost
access control enabled, only
authorized clients can connect
INET:golf.foc
INET:localhost
INET:couch.foc
LOCAL:
Như vậy là đã kết thúc một bước.Tiếp theo
là xây dựng server để nó biết nó sẽ hiển thị
thông tin đi đâu.Bởi vì server không có
màn hình có nghĩa là X trên nó
không chạy được.Nó nhất định cần phải biết thông tin
sẽ hiển thị đi đâu.
Cấu hình của Server không khó lắm.Sau đó,khi
mà bạn đã liên kết với server song thì bạn
cần phải thay đổi biến $DISPLAY.Theo ngầm định thì nó sẽ
rỗng.Bạn cần gán biến này một giá trị bằng remote
host(host từ xa) cộng với số mà thông tin sẽ hiển thị
trên X session tương ứng.Tuy nhiên bạn chỉ có duy
nhất một X session cho nên sẽ không nảy sinh vấn đề
gì cả.
Đây là cách cần phải cài biến $DISPLAY trong
ví dụ trên(nếu trên server sử dụng bash thì
nó sẽ như sau:)
golf $ export DISPLAY=couch.foc:0.0
Đó là tất cả điều cần thiết để xây dựng
server.Bây giờ bạn có thể ngắt liên kết và
chạy X từ đấy.Tât cả các thông tin sẽ được gửi qua
mạng cho bạn.
golf $ netscape &
Lệnh trên sẽ chạy netscape từ server những biến $DISPLAY chỉ sang
couch cho nên tất cả sẽ hiển thị trên couch.Bạn sẽ
không phải vứt bỏ vì nó quá cổ điển.Một điều
quan trọng là trên server phải cài đặt hết tất cả
các thư viện X và các tập tin khác cần thiết
cho thực hiện các chương trình.Và tuy nhiên
bạn cũng sẽ không cần tệp tin /etc/XF86Config
bởi vì không có cái gì sẽ hiển thị
trên màn hình Server.
Sau đó nếu bạn muốn ngắt,không muốn sử dụng chung
màn hình nữa thì hãy xóa server từ
danh sách cho phép trên client.
couch $ xhost - golf.foc
golf.foc being removed from access
control list
couch $
Như bạn thấy có thể phân chia tài nguyên
trên máy tính.Nhưng hãy cẩn thận bởi
vì bạn có thể trở thành host của nhiều chương
trình X cho các máy ở xa mà bạn không
biết.
Biên dịch: Vũ
Dũng(vudung@mail.ru)
website:http://khigiacmoquayve.narod.ru
1-9-2005 Voronezh Russian