Ocenite etot tekst:


     Dlya  nachala  nemnogo istorii i obshchih mest. Predstavim, chto
nam  nuzhno  napisat'  programmu,  kotoraya  budet   rabotat'   v
graficheskom  rezhime.  Nam  potrebuetsya:  oprashivat' klaviaturu,
snimat' sobytiya i koordinaty myshi, risovat' na ekrane, ...  Kak
eto  delalos'  na  MS-DOSe?  Ochen'  prosto.  Pishem odnu bol'shuyu
programmu, v nej -  vse:  i  logika,  i  obrabotka  sobytij,  i
slezhenie  za  peremeshcheniyami  myshi, nu, a kogda trebuetsya chto-to
narisovat', my daem komandu na zapis' v porty EGA  kontrollera,
risuem piksel... CHerez god poyavlyaetsya kontroller VGA, eshche cherez
god SVGA 800x600, 16 cvetov, vsled za nim  UVGA  1024x768,  256
cvetov, zatem XGA 1280x1024, 16Mb cvetov...



     Imeem  dve  nezavisimyh  programmy. Odna umeet risovat' na
graficheskom monitore, i voobshche, obsluzhivat' vse eto zhelezo. Ona
nazyvaetsya  X-server.  Vtoraya  programma - nazyvaem ee klient X
Window, risovat' fizicheski  ne  umeet.  Zato  ona  znaet,  chto
imenno  nado  risovat',  i  umeet  komandovat'.  Komandy  tipa:
"narisovat' pryamougol'nik", "provesti liniyu",  "otkryt'  okno",
"vyvesti  simvol v zadannom fonte", "oprosit' koordinaty myshi",
i t.p. peredayutsya X-serveru,  a  tot  ih  ispolnyaet  -  risuet.
Format     i    specifikacii    etih    komand    opublikovany,
standartizovany, i shiroko izvestny. Vse vmeste  oni  nazyvayutsya
"Protokol X Window".

        Itak, povtorim.

     X-server.   Programma,  kotoraya  napisana  special'no  pod
konkretnoe fizicheskoe ustrojstvo (imeetsya  v  vidu  -  monitor,
grafkontroller,  mysh'  i  klaviatura), umeet na nem risovat', i
umeet ponimat' komandy risovaniya po protokolu X Window System.

     X-klient. Prikladnaya programma, obespechivayushchaya graficheskij
interfejs s pol'zovatelem.  Komandy  dlya  risovaniya  na  ekrane
peredaet X serveru po protokolu X Window System.

     X-terminal.    YAshchik    (monitor,   grafkontroller,   mysh',
klaviatura, nu i, estestvenno, processor i operativnaya pamyat'),
na  kotorom  zapushchena  programma  X-server.  X-terminalom mozhet
sluzhit' samaya obyknovennaya graficheskaya Unix-rabochaya stanciya, na
kotoroj  X  server  vypolnyaetsya,  kak odna iz mnogih prikladnyh
zadach.   Specializirovannyj  X-terminal  -  yashchik,  na   kotorom
zapuskaetsya tol'ko X server, i nichego krome. Mozhno ispol'zovat'
PC pod MS-DOSom,   na  kotorom  zapushchena  DOSovskaya  programma,
realizuyushchaya X server.

     Xlib  - biblioteka C-ishnyh funkcij, realizuyushchih protokol X
Window  System.  S  pomoshch'yu  etoj  biblioteki   mozhno   pisat'
graficheskie programmy - X-klienty.

        CHto my s etogo imeem.

My   poluchaem   universal'nyj  GAPI  -  (Graphical  Application
Programming Interface) - sredstvo programmirovaniya  graficheskih
prilozhenij.  Pol'zovatel'skie  graficheskie  programmy  pri etom
polnost'yu otvyazany ot zheleza, ot  konkretnogo  grafkontrollera.
O zheleze pust' bespokoitsya X-server.

Protokol  X Window umeet "ezdit'" po seti: naprimer po TCP/IP,
ili po  DEC-net.  Poetomu  Xserver  mozhet  krutit'sya  na  odnoj
mashine,  a  X-klient - na drugoj. To est', kartinka risuetsya na
odnoj mashine, a programma, kotoraya ee obespechivaet  -  krutitsya
na drugoj.

X-server sposoben obsluzhivat' srazu mnogo klientov, prichem vseh
- odnovremenno. Na nashem graficheskom ekrane mozhet byt'  otkryto
srazu  mnogo  okon  - kazhdoe okno porozhdaetsya ego sobstvennym X
klientom. Klienty eti mogut byt' zapushcheny i na nashej mashine  (k
kotoroj  podklyuchena graficheskaya podsistema), i na udalennyh ma-
shinah, soedinennnyh s nami po seti.

        CHego nam eto stoit.

Ponyatno chego. Resursov. X Window ochen' lyubit resursy - pamyat',
processor, disk.  Sposoben  s®est' ih v neogranichennyh koliches-
tvah. A eshche ved' nado programmirovat'. (K schast'yu,  ne vsem na-
do). Kto videl, kak vyglyadyat programmy dlya MS  Windows ili Mac,
mozhet predstavit'  sebe  vneshnij  vid  ishodnyh  tekstov X-ovoj
programmy.



Pust' v  nashej seti est' mashina  s graficheskoj podsistemoj  i X
serverom, i setevoj adres etoj mashiny pcat107.foms.msk.ru

 na pcat107 nuzhno vypolnit' komandu:

    xhost +    # razreshit' X-ovym programmam s LYUBOJ mashiny
               # risovat' na ekrane mashiny pcat107

Zapuskaem na nashem  komp'yutere  X-ovuyu programmu, tak, chtoby ee
okoshko risovalos'  na  monitore  pcat107.  Dlya   etogo na nashem
komp'yutere nuzhno vypolnit' komandu:

    xterm -display pcat107:0.0 &



Mozhno  pisat'  X-ovye  programmy,  ispol'zuya  biblioteku  Xlib.
Mnogie tak i pishut, hotya eto ves'ma tyazhelo - uzh bol'no  nevysok
uroven'  Xlib'a.  V pomoshch' programmistam bylo sozdano neskol'ko
toolkit'ov - bibliotek bolee vysokogo urovnya, v kotoryh  reali-
zovany  razlichnye  widget'y.  Widget  -  neperevodimyj termin X
Window.   Skleen   iz   dvuh   slov   -   Window   i    Gadget
(prisposoblenie),  yavlyaetsya graficheskim ob®ektom s privyazannymi
k nemu svojstvami i reakciyami na dejstviya pol'zovatelya. Primery
widgetow:  "knopka",  "menyushka",  "okoshko  s tekstom", "linejka
prokrutki",...

Izvestny sleduyushchie toolkit'y:

Xaw    -
          Anthena  Widgets.  Ochen' cherno-belyj,  ochen' ploskij,
          ves'ma nebogatyj. Zato - besplatnyj. Posmotrite,  kak
          vyglyadyat programmy xterm, xedit,  xman.  Oni sdelanny
          na Xaw.

xview  -
          Nabor bibliotek i ob®ektov, ispol'zovannyh v realiza-
          cii nabora pol'zovatel'skih  utilit Sun-ovskoj versii
          X Window  - "Open Windows". Ves'ma simpatichno. Krug-
          lye  knopki,  "shpricy-igolki" (zamechatel'naya  veshch'!),
          ochen'  horosho  produmannyj interfejs  pol'zovatelya, v
          tom chisle  aktivno ispol'zuemaya treh-knopochnaya  mysh'.
          Ishodnye teksty bibliotek xview otkryty, predostavlya-
          yutsya besplatno.  Odnako  nabor DeskSet - 15 pol'zova-
          tel'skih utilit vhodyashchih v OpenWindows, sdelannyj  na
          biblioteke xview,  SunSoft gotov predostavit'  tol'ko
          za platu. V binarnom  vide  - ves'ma deshevo ($100). V
          ishodnyh tekstah - ves'ma dorogo ($200K)

Motif -
          Biblioteka postavlyayutsya organizaciej OSF za ne sovsem
          malen'kuyu platu. Ishodnye  teksty bibliotek nedostup-
          ny, libo chrezmerno dorogi. Knopki -  kvadratnye, da i
          voobshche Motif'ovskie prilozheniya  do bezobraziya napomi-
          nayut MS  Windows (chto, IMHO, yavlyaetsya ser'eznym pres-
          tupleniem)

V bor'be BSD i Unix V pobedil, kak izvestno, System V, a v voj-
ne kruglyh i kvadratnyh knopok vyigral Motif.



V Linux ispol'zuetsya X11 v realizacii XFree86.
CHtoby ego skonfigurirovat', vypolnite komandu
xf86config



     Na  nekotoryh  mashinah  on sam zapuskaetsya. A takzhe inogda
udaetsya zapustit' ego vruchnuyu komandami: startx i/ili openwin

        Solaris:

1. Ustanovite peremennye okruzheniya:

OPENWINHOME=/usr/openwin                 export OPENWINHOME
LD_LIBRARY_PATH=/usr/openwin/lib         export LD_LIBRARY_PATH
PATH=/usr/openwin/bin:$PATH              export PATH
XAPPLERESDIR=/usr/openwin/lib/app-defaults export XAPPLERESDIR

2. Zapustite X Window komandoj

  openwin

        "Normal'nye" Unix'y:

1. Ustanovite peremennye okruzheniya:

PATH=/usr/bin/X11:$PATH
XAPPLERESDIR=/usr/lib/X11/app-defaults

2. Zapustite X Windows komandoj

   startx

        "Nenormal'nye" Unix'y (Unixware).

     Kogda  registriruete  pol'zovatelya, otvet'te Yes na vopros
"Hotite graficheskij DeskTop". Togda  posle  login'a  X  Windows
budet  zapuskat'sya avtomaticheski. Esli vy prozevali, i otvetili
No, to nikakim osmyslennym sposobom  zapustit'  X  Windows  dlya
sebya vam ne udastsya.



     Pri nalichii pol'zovatel'skih nastroechnyh fajlov, lezhashchih v
domashnem kataloge pol'zovatelya, ispol'zuyutsya oni. Esli ih  net,
ispol'zuyutsya   standartnye,   obshchestvennye,  obychno  lezhashchie  v
kataloge /usr/lib/X11 ili /usr/openwin/lib

     Personal'nye  i  obshchestvennye  pol'zovatel'skie  nastrojki
hranyatsya v fajlah:

  $HOME/.Xdefaults
  $HOME/.OWdefaults
  /usr/lib/X11/Xdefaults
  /usr/openwin/lib/Xdefaults
  /usr/openwin/lib/app-defaults/*

Posle lyubyh ispravlenij fajl s resursami neobhodimo perezachitat':"

     xrdb -merge .Xdefaults

     Okruzhenie  (desktop)  -  t.e.  programmy, kotorye startuyut
avtomaticheski pri zapuske X Windows nahoditsya v fajlah:

     Solaris:

  $HOME/.openwin-init
  /usr/openwin/lib/openwin-init

    "Normal'nnye" X windows:

  $HOME/.xinitrc
  /usr/lib/X11/xinit/xinitrc

     Nastrojki   window-manager'a  -  t.e.  -  povedenie  okon,
menyushki pol'zovatelya, raskladka komand na klavishi myshki, ...

     Solaris:

  $HOME/.openwin-menu
  $HOME/.openwin-menu-*

  /usr/openwin/lib/openwin-menu
  /usr/openwin/lib/openwin-menu-*

     Linux

  $HOME/.fvwmrc
  /usr/lib/X11/fvwm/system.fvwmrc


Last-modified: Mon, 08 Aug 2005 07:23:58 GMT
Ocenite etot tekst: