5.2. Да разберем X

Използването на X за първи път може да подейства донякъде като шок за някой свикнал с други графични обкръжения, като Microsoft® Windows® или Mac OS®.

Не е необходимо да се разбират всички детайли на различните X компоненти и как те си взаимодействат; все пак някои начални познания правят възможно използването на някои предимства на X системата.

5.2.1. Защо X?

X не е първата window (прозоречна) система за UNIX®, но е най-популярната. Оригиналния екип разработчици са работили и по други системи преди X. Името на предишната система е било ``W'' (за ``Window (прозорец)''). X е просто следващата буква в латинската азбука.

X може да бъде наричана ``X'', ``X Window System'', ``X11'' както и с други имена. Наричането на X11 ``X Windows'' може да засегне някои хора; вижте X(7) за малко повече светлина по темата.

5.2.2. X Клиент/Сървър модел

От самото начало X беше с проектирана да бъде мрежово-центрична система и прие ``клиент-сървър'' модела. В X модела ``X сървър'' се стартира на компютър с клавиатура монитор и мишка. Сървърът е отговорен за управлението на монитора, въвеждането от клавиатурата и мишката и т.н. Всяко X приложение (като XTerm, или Netscape®) е ``клиент''. Клиента изпраща съобщения до сървъра като ``Моля изчертай прозорец на тези координати'', а сървъра изпраща обратно съобщения от типа на ``Потребителя натисна бутона OK''.

Ако в този процес участва само един компютър, като например в домашен или малък офис, X сървърът и клиентите ще са стартирани само на него. Все пак напълно е възможно X сървърът да се стартира на по-слаба машина а X приложенията (клиентите) да се се изпълняват на да кажем на по-мощни и скъпи машини в офиса. В този сценарии X клиентите и сървъра комуникират чрез мрежата в офиса.

Това е объркващо за някои хора защото X терминологията е точно обратната на очакваната от тях. Те биха очаквали ``X сървър '' да е мощната машина а ``X клиент'' не толкова мощен десктоп компютър.

Не забравяйте, че X сървър е машината с монитор и клавиатура и X клиентите са програмите които показват прозорци.

Няма нищо в протоколите което да принуждава клиентските и сървърските машини да са стартирани на една и съща операционна система или дори на един и същ тип компютри. Напълно възможно е да се стартира X сървър на Microsoft Windows или Apple's Mac OS, и дори има различни безплатни и комерсиални приложения които правят точно това.

X сървърът който се разпространява със FreeBSD се нарича XFree86 и и достъпен без заплащане под лиценз доста подобен на FreeBSD лиценза. Достъпни са и различни комерсиални X сървъри за FreeBSD.

5.2.3. Window Manager (Мениджър на прозорци)

Философията в дизайна на X е точно каквато е и UNIX философията ``инструменти, не политика''. Това означава, че X не се опитва да диктува как трябва да се изпълни дадена задача. Вместо това на потребителя се предоставят инструменти и е отговорност на потребителя да реши как да ги използва за да извърши задачата.

Тази философия означава, че X не диктува как трябва да изглеждат прозорците на екрана, как да се местят с мишката как да се преминава от един прозорец в друг с помощта на клавишни комбинации ( т.е., Alt+Tab, в случая на Microsoft Windows), как да изглежда заглавната лента на всеки от прозорците, дали да имат бутон за затваряне и т.н.

Вместо това X предоставя отговорността за това на приложение наречено ``Window Manager (мениджър на прозорци)''. Има десетки мениджъри за X: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window Maker, и още много други. Всеки от тези мениджъри предоставя различен изглед и чувство; някои от тях поддържат ``виртуални десктопи''; някои позволяват различни клавишни комбинации; някои имат ``Start'' бутон или подобен; някои допускат ``теми'', позволяващи пълна промяна на цветове и изглед-и-чувство чрез прилагането на нова тема. Тези window мениджъри а и много други са достъпни чрез x11-wm категория в колекцията от портове.

В допълнение KDE а и GNOME десктоп обкръжения имат собствени интегрирани мениджъри.

Всеки прозоречен мениджър има различни механизми за конфигуриране; някои очакват конфигурационния файл да се напише на ръка, други имат графична среда за конфигуриране; поне един (sawfish) използва конфигурационен файл написан на диалект на езика Lisp.

Фокус политика: Another feature the window manager is responsible for is the mouse ``focus policy''. Every windowing system needs some means of choosing a window to be actively receiving keystrokes, and should visibly indicate which window is active as well.

A familiar focus policy is called ``click-to-focus''. This is the model utilized by Microsoft Windows, in which a window becomes active upon receiving a mouse click.

X does not support any particular focus policy. Instead, the window manager controls which window has the focus at any one time. Different window managers will support different focus methods. All of them support click to focus, and the majority of them support several others.

The most popular focus policies are:

focus-follows-mouse

The window that is under the mouse pointer is the window that has the focus. This may not necessarily be the window that is on top of all the other windows. The focus is changed by pointing at another window, there is no need to click in it as well.

sloppy-focus

This policy is a small extension to focus-follows-mouse. With focus-follows-mouse, if the mouse is moved over the root window (or background) then no window has the focus, and keystrokes are simply lost. With sloppy-focus, focus is only changed when the cursor enters a new window, and not when exiting the current window.

click-to-focus

The active window is selected by mouse click. The window may then be ``raised'', and appear in front of all other windows. All keystrokes will now be directed to this window, even if the cursor is moved to another window.

Many window managers support other policies, as well as variations on these. Be sure to consult the documentation for the window manager itself.

5.2.4. Widgets

The X approach of providing tools and not policy extends to the widgets seen on screen in each application.

``Widget'' is a term for all the items in the user interface that can be clicked or manipulated in some way; buttons, check boxes, radio buttons, icons, lists, and so on. Microsoft Windows calls these ``controls''.

Microsoft Windows and Apple's Mac OS both have a very rigid widget policy. Application developers are supposed to ensure that their applications share a common look and feel. With X, it was not considered sensible to mandate a particular graphical style, or set of widgets to adhere to.

As a result, do not expect X applications to have a common look and feel. There are several popular widget sets and variations, including the original Athena widget set from MIT, Motif® (on which the widget set in Microsoft Windows was modeled, all bevelled edges and three shades of grey), OpenLook, and others.

Most newer X applications today will use a modern-looking widget set, either Qt, used by KDE, or GTK, used by the GNOME project. In this respect, there is some convergence in look-and-feel of the UNIX desktop, which certainly makes things easier for the novice user.

Този и други документи можете да намерите в ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

За въпроси относно FreeBSD, прочетете документацията преди да попитате в <questions@FreeBSD.org>.
За въпроси относно този документ, e-mail <doc@FreeBSD.org>.