LINUX.ORG.RU

Статья «Графический интерфейс Linux»


0

0

На сайте http://rus-linux.net (в разделе "Статьи и переводы") выложена статья "Графический интерфейс Linux", которая была опубликована в спецвыпуске журнала "CHIP", посвященном Linux (май 2003 г.). В статье кратко и популярно рассказано об устройстве системе X Window.

Предупреждение: статья в кодировке Unicode (UTF-8).

>>> Подробности

★★★

Проверено: maxcom

>Предупреждение: статья в кодировке Unicode (UTF-8).
Что бы это значило?

P.S. Статью следовало бы назвать "Запуск системы X Window в RedHat для чайников".

Cantor ★★
()

После этих у#$%@ных картинок ни один юзверь не пойдет на лялих. Особенно 2 и 3. Это называется "Linux обладает и графическим интерфейсом, не уступающим, а во многом и превосходящим возможности, предоставляемые известной всем оконной системой фирмы Microsoft."
Ужасть...

anonymous
()

да, со скриншотами автор перестарался :-))) да и статья не особо точная по моему, особенно там где рассказано о функция оконного менеджера

anonymous
()

Ну люди будьте терпимее - что вы хотите от статьи из журанала CHIP?
Даже не стоило ссылку сюда кидать. Дешевый такой весь журнальчик.
Особенно статейки про Linux - мне иногда приносят почитать - полчаса
здорового смеха.

ivoronin
()

Статья говно, а костромин старый пердун.

anonymous
()

хорошая статья для решивших разобраться с GUI в Linux.

CyberCoder
()

мда, скриншот с кривыми кодировками в kicker)

anonymous
()

Вы внизу ссылки на литературу поглядите :) источники мля :) я плакаль

anonymous
()

2anonymous (*) (2003-09-09 19:14:09.962379)
еще один slackбаум?

Skolotovich ★★★
()

Статья по стилю напоминает плохой перевод, про содержание лучше вообще промолчать, похоже автор сам не до конца разобрался о чем пишет.

anonymous
()

Вообще, хаять проше всего. Попробуйте сами статью написать - хрен у вас выйдет.

CyberCoder
()

Интересное наблюдение: зарегистрированные ЛОРовцы НЕ находят статью плохой/безграмотной/не нужной. А анонимусы дружно обкакивают ее, как стадо павианов.

ИМХО вполне себе нормальная статья, полезная для неглупого пользователя средней руки.

Die-Hard ★★★★★
()

Увы, статья слабая, схема 1 ошибочная. Да и комментарии неверны (например про motif). Не для опытного пользователя (слишком много ляпов), ни для начинающего (заумно). Как тут заметили, часть статьи просто перевод man-ов (в частности кусок xinit точно).

Ёжи

anonymous
()

берусь поспорить,что автор не понимает более половины написанного.Всё что он сделал - это поставил какой-нибудь redhat по-дефолту.В редакции сказали - нужна статья про линукс,завели мы такой раздел.Забацай-ка нам что-нить про графическую подсистему.Он взял IE(именно его! :) ) в руки,нарыл ссылок на старые статьи с сделал на их основе компиляцию.Да ещё вставил каких-то тухлых скриншотов,сделанных им самим,уж лучше бы на лоре поискал какие-нить реальные,с бабой - вот бы народ попёр на линукс :)

anonymous
()

Статью не читал, но первая же картинка - неправильная.

anonymous
()

Роль Xlib в иерархии описана неверно - как в тексте, так и на схеме.

anonymous
()

Да че вы до картинки докопались! Она ПОЧТИ верная - нужно еще стрелки от "приложения" пустить на сервер и библиотеки.

Думайте о ней как об "упрощенной". Статья же не для X - программистов написана!

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

Не, картинка явно никуда не годится (статью проглядел по диагонали, текст обсуждать не готов). Т.е. ниоткуда не следует, что оконный менагер - это просто еще одно приложение (только со спец. _с_т.зр_пользователя_ функциями). Xlib висит в воздухе - и никак не связан с x protocol, c которым оконный менагер почему-то напрямую работает (прямо в сокеты пишет-читает?), а приложение - вообще "выше" всей этой возни.

Картинка, при всей любви к dia - просто никуда не годится. Могу нарисовать лучше (не художественно лучше - художник из меня ... - концептуально).

svu ★★★★★
()
Ответ на: комментарий от svu

2svu (*) (2003-09-09 23:59:17.954518):

Ну, не знаю... ИМХО все это - мелкие придирки.

В некотором смысле картинка верна с точки зрения не программиста но пользователя - она верно отражает суть компонент, которые пользователь должен запустить/проинсталлировать: X - сервер, window manager и сверху аппликухи. Чтобы все заработало, надо иметь Xlib и, возможно, Xt и далее.

ИМХО картинка полезная. Она, конечно, вводит в заблуждение - но при малейшей попытке разобраться в топике любой интересующийся сразу все поймет, в том числе и упрощения, сделанные на картинке.

Die-Hard ★★★★★
()

2Die-Hard: Полностью поддерживаю! Нормальная статья, чтобы заинтересовать. Только шрифты у текста статьи на последнем скриншоте немного подкачали.

c0ff
()

> Можете конкретно указать, где, что
> и почему неправильно написано?

Автор неточно представляет себе роль оконного менеджера, приписывая ему всякие магические свойства. Я здесь процитирую:

"Одна из основных функций, которые выполняет любой менеджер окон – это обеспечение возможности запуска других приложений. Кроме того, менеджер окон обеспечивает выполнение всех операций с окнами: прорисовку рамок, меню, иконок, полос прокрутки и других элементов окна, предоставляет возможность изменять вид и положение окна в процессе работы в соответствии с потребностями пользователя, а также обеспечивает вывод информации от приложения в соответствующее окно. Можно запустить X-сервер без оконного менеджера, но не наоборот. Именно с менеджером окон взаимодействует пользователь при работе в графическом режиме. Менеджер окон вызывает соответствующие функции для программ-клиентов в тех случаях, когда пользователь работает с приложением с помощью клавиатуры и мыши."

Вышеприведенный абзац содержит массу неточностей:

1. "Обеспечение возможности запуска других приложений" не является функцией WM.

2. "Прорисовку полос прокрутки" выполняет та программа, которая обеспечивает прокрутку контента (т.е. та же самая, которая его и выводит), но никак не WM.

3. "Меню, иконки" и т.п. -- если это меню/иконы WM, то рисует их WM. Если это меню/иконы программы-не-WM, то рисует их эта программа. Например, менюшка в верхней части mozill-ы рисуется самой mozill-ой, потому что FVWM ничего не знает про "File,Edit,Go,Bookmarks" и т.д.

4. "Обеспечивает вывод информации от приложения в соответствующее окно" сам Х сервер, а не WM.

5. "Именно с менеджером окон взаимодействует пользователь при работе в графическом режиме" -- это как понимать? Юзер взаимодействует со всеми программами, с которыми он работает, а не только с WM.

6. "Менеджер окон вызывает соответствующие функции для программ-клиентов в тех случаях, когда пользователь работает с приложением с помощью клавиатуры и мыши" -- извини, но это фраза -- просто шедевр. Ну во-первых, "с помощью клавиатуры и мыши" -- а что, можно по-другому? И тогда "соответствующие функции" вызываться не будут? Во-вторых, об этих самых функциях. "Функции для программ-клиентов" -- откуда они вызываются-то? Ну и в-третьих: когда юзер кликает крысой в окне программы, Х сервер отправляет этой программе уведомление о клике, а WM здесь абсолютно сбоку. Единственное, что он может сделать -- это сказать Х серверу, что данное окно теперь имеет фокус ввода. Когда юзер работает с клавой, Х сервер отправляет уведомление о клавишах той программе, чье окно имеет фокус ввода. Если никакое окно специально не назначено на фокус ввода, клавиши отдаются тому, которое под крысой. Может быть, это и имелось в виду, но тогда оно должно быть сформулировано иначе. Например: "Именно WM решает, какому окну в данный момент отдается ввод с клавиатуры".

Вот еще цитата (из следующего абзаца): "Менеджер окон вызывает функции из X-Lib для управления дисплеем и выполнения любых преобразований изображений в окнах." Опять несчастному WM'у приписываются всякие магические свойства. WM не занимается "преобразованием изображений в окнах". Он может только Colormap проинсталлить, что, в свою очередь, может исказить цвета в некоторых окнах. Если имелось в виду именно это, то термин "любые преобразования изображений" -- IMHO, неудачен.

Еще цитата (из двух абзацев сразу): "Если 6 разных приложений используют 6 разных библиотек графических элементов, то мы вынуждены как хранить эти 6 библиотек на диске, так и загружать их в память, хотя Linux (и UNIX вообще) поддерживают возможность использования динамически разделяемых библиотек. Эти недостатки отсутствуют в так называемых интегрированных графических средах или оболочках." Вах-вах, оказывается, KDE-то легче чем FVWM+xterm+emacs? Ну нельзя же так явно лгать. Все эти "интегрированные графические среды" -- это дикие тормоза и огромные объемы на HDD. И с каких это пор "UNIX вообще" поддерживает шаренные либы? Далеко не каждый UNIX, AFAIK.

А что касается "Рис.1. Архитектура системы X Window", то взаимодействие клиентов с сервером нарисовано неправильно. Создается ощущение, что клиенты общаются с WM, а тот -- с сервером. На самом деле все клиенты (и WM в том числе) общаются с сервером напрямую. Через Xlib или как-то по-другому -- это уже детали. Но если уж рисовать Xlib, то между сервером и приложением, а не сбоку. Также как и "дополнительные графические библиотеки".

nobody ★★
()
Ответ на: комментарий от Die-Hard

Нет, это концептуальное введение пользователя в заблуждение. Пользователь думает, что для работы приложений нужен WM (который совсем не обязателен - вполне можно запускать игрушки в голых иксах на полный экран и не тратить ресурсы на WM). Вообще игнорируется такая вещь как widget set. Получается - набор прямоугольников неполный, связи между ними перевраны страшно. А в остальном - все верно:) Если бы нужен был список компонент - его можно было перечислить через запятую. А уж если человек берется отображать характер взаимодействия между ними - пусть делает это правильно.

Методически такие статьи нужны. Но, судя по всему, данную статью еще причесывать и причесывать.

svu ★★★★★
()
Ответ на: комментарий от svu

Да, в тексте про widget set есть. Чего ж на картинке его нет? Запихали бы между приложением и WM...%)))

Вообще, действительно - ощущение такое, что автор как-то очень неровно дышит к оконным менагерам и всяко преувеличивает их роль. Есть предложение назвать это wm-поклонничеством:)

svu ★★★★★
()

статья хорошая хотябы самим фактом своего сушествования - это еще
одна попытка дать русскоязычное видение Linux.
одновременно с этим автор наносит огромный вред подрастающему поколению пользователей Linux потому что дает крайне не верное
представление об архитектуре и функционировании графических
приложений в среде X11.
Сухой остаток: автор должен исправить ошибки и откровенные ляпы
дабы сделать данный документ полезным. В противном случае
это принесет больше вреда чем пользы.

anonymous
()

slackодаун

anonymous
()

to nobody:

В общем, все правильно и верно, но есть некоторые частности, с которыми я не согласен:

> 1. "Обеспечение возможности запуска других приложений" не является функцией WM.

Хм, а как же быть с такой фразой из "X Window System Architecture Overview HOWTO":

However one piece of functionality that seems to be present in most window managers is a way to launch applications.

> 4. "Обеспечивает вывод информации от приложения в соответствующее окно" сам Х сервер, а не WM.

Здесь я с вами не согласен. Обычно, WM не использует оконную систему самого X, т.е. он открывает одно рутовое окно во весь экран и сам создает в нем оконную среду. Так что, именно WM обычно знает все про окна и действительно выводит информацию в соотвествующее окно.

"Typically you can move and arrange them; change size, maximize or minimize windows. How, then, does the X server handle these tasks? The answer is: it doesn't."

nl.

anonymous
()

X Window System - классная вещь. Если только в качестве оконного манагера Window Maker юзать.

Window Maker forever!

anonymous
()
Ответ на: комментарий от anonymous

1. Эта функция (с т.зр. пользователя!) действительно присутствует в оконных менагерах. Но wm только предоставлят пользовательский интерфейс - не более. А "обеспечение возможности запуска приложений" - это дело самой ОС. Не надо пудрить пользователям мозги. Либо просто убрать это утверждение - либо уточнить, что менагер обеспечивает "способ" (a way), но не "возможность" - разница в данном случае существенна.

2. Оконный менагер вовсю использует оконную систему самих иксов. Он знает не про все окна, а про те, которые имеют WM_STATE - отдельные виджеты его не колышат. И root он, вроде, не обязан создавать (ни по ICCCM, ни по реализации) - во многих менагерах можно отключить управление самим десктопом. Не говоря уже о том, что в окно инфу выводит ПРИЛОЖЕНИЕ - оконный менагер только рамочку к окну пририсовывает и управляет положением-размером-состоянием. Повторяю - самим приложениями в 99% случаев ПЛЕВАТЬ, есть ли вокруг них оконные менагер (и его рамочка). Даже session manager (в смысле ICCCM) для приложения иногда важнее window manager.

Все с ног на голову!

svu ★★★★★
()

2nobody:

>2. "Прорисовку полос прокрутки" выполняет та программа, которая обеспечивает прокрутку контента (т.е. та же самая, которая его и выводит), но никак не WM.

я не знаю, откуда взялось это заблуждение -- но оно достаточно распространено. оно мне встречалось и в переводе книги Кевина Рейчарда и Патрика Фолкердинга ``Linux in plain English'' -- перевод, по-моему, принадлежит А. Выскубову и имеет название вроде ``Linux: справочник''.

---vk

anonymous
()
Ответ на: комментарий от anonymous

Если быть совскм точным, то fvwm2, например, имеет модуль способный генерировать свои, дополнительные окна прокрутки.

anonymous
()

> Хм, а как же быть с такой фразой из "X Window System Architecture Overview HOWTO"

HOWTO пишутся чайниками для чайников. По-моему это общепризнанный факт.

anonymous
()

Статья мне понравилась, автору - спасибо. Если кому что не нравится - пишите свою статью, с исправлениями и добавлениями. Сюда дайте линк, прочту с удовольствием.

anonymous
()
Ответ на: комментарий от Die-Hard

2Die-Hard
>Да че вы до картинки докопались! Она ПОЧТИ верная - нужно еще стрелки от "приложения" пустить на сервер и библиотеки.

Ну ничего себе "всего". Лучше уж вообще никаких
стрелок не ставить чем ТАК как автор изобразил
место Xlib ;)

sS ★★★★★
()

> 2nobody:
>
> >2. "Прорисовку полос прокрутки" выполняет
> та программа, которая обеспечивает
> прокрутку контента (т.е. та же самая,
> которая его и выводит), но никак не WM.
>
> я не знаю, откуда взялось это заблуждение --
> но оно достаточно распространено. оно мне
> встречалось и в переводе книги Кевина Рейчарда
> и Патрика Фолкердинга ``Linux in plain English''
> -- перевод, по-моему, принадлежит А. Выскубову
> и имеет название вроде ``Linux: справочник''.
>
> ---vk

Ага, заблуждение, значит. Ну давай подумаем. Чтобы изобразить полосу прокрутки, надо знать 3 вещи:

1. Размер области отображения контента в единицах прокручивания.
2. Размер контента в единицах прокручивания.
3. Номер первого видимого элемента.

Вопрос: откуда эту информацию получит WM? Предположим, что есть окно текстового редактора. Откуда WM'у знать, что загруженный в редактор файл содержит именно 128 строк? Что первой видимой в данный момент является строка #8? Что область вывода текста имеет высоту 32 строки?

Ничего этого WM не знает сейчас, не узнает в будущем, и, более того, авторы WM'ов узнать это не стремятся. Каждая программа должна решать свою задачу. Задачей WM является управление положением окон на экране, их видимостью и визуальным отделением друг от друга.

IMHO, ты спутал X Window System c Windows. В Windows -- да, полосы прокрутки, меню, иконы и т.п. рисует GDI, являющийся частью Windows. Задача программы -- лишь дать команду GDI: что, где и как рисовать.

nobody ★★
()

2nobody: по-моему, он (vk) немного неправильно выразился. Мне кажется, он назвал заблуждением именно утверждение, что полосу прокрутки рисует WM.

anonymous
()
Ответ на: комментарий от nobody

2nobody

>>1. "Обеспечение возможности запуска других приложений" не является
>> функцией WM.

А кто тогда execve() делает?

IMHO оконный менеджер в данном контексте исполняет роль шелла -- именно дает тебе "кнопку" чтобы запустить какую-то программу.

Попробуй запустить голый Х и поработай в нем не выходя в консоль, что у тебя получиться?

ioannes
()
Ответ на: комментарий от ioannes

Очевидно, что execve напрямую вызывает оконный менеджер. Который далее через Xlib запускает приложение. Это же очевидно!

А голый X не может запускать приложения, потому что в нем не запущен оконный менеджер. Это тоже очевидно. А вот X + WM уже вполне может запустить любое приложение - там через динамические библиотеки появляется функция execve.

Вот до чего дошло - люди таких элементарных вещей про оконные менеджеры не знают!

;)

svu ★★★★★
()

2svu
>А голый X не может запускать приложения, потому что в нем не запущен оконный менеджер.

Ну на самом деле WM для этого не _обязателен_ что и изображено на рис 2

Првильней было бы сказать "потому что это не его дело" ;)



sS ★★★★★
()
Ответ на: комментарий от svu

2svu

Это был риторический вопрос ;) к тому, что:
>>1. "Обеспечение возможности запуска других приложений" не является
>> функцией WM.

2sS
>>Ну на самом деле WM для этого не _обязателен_ что и изображено на рис 2

Можно конечно все приложения запускать их xterm'a но как запустить xterm (не из консоли, конечно же)?

Да, WM не обязателен для запуска приложений и мне приходилось работать "в чистом Х", но я не знаю ни одного WM, который бы не выполнял таких функций!

Но вернее было бы написать "Запуск приложений является одной из функций WM"




ioannes
()
Ответ на: комментарий от ioannes

"Практически каждый WM предоставляет пользовательский интерфейс для запуска приложений."

svu ★★★★★
()
Ответ на: комментарий от ioannes

2ioannes
>Можно конечно все приложения запускать их xterm'a но как запустить xterm (не из консоли, конечно же)?

Ну я как раз удаленные X-овые приложения пускаю как раз в основном
из консоли через ssh

А пускать приложения кроме того можно так же как пускается и сам WM (xinit-ом например )

Если интересно посмотреть как это у тебя реально запущено
посмотри вывод ps ax --forest


>Но вернее было бы написать "Запуск приложений является одной из функций WM"

только не WM а DM ImHO - у WM строго говоря более другие задачи
просто в современных графических оболочках WM и DM порой очень сильно взаимопереплетены

sS ★★★★★
()

>Роль Xlib в иерархии описана неверно - как в тексте, так и на схеме.
Рядовому пользователю это по барабану.

CyberCoder
()

> Рядовому пользователю это по барабану.

"Рядовых пользователей" и "простых советских людей" не бывает. Наказание за использование этих выражений - интуитивно понятный расстрел.

anonymous
()
Ответ на: комментарий от sS

2sS

Согласен с тобой совершенно, но именно в этом развёрнутом варианте. Однако тот, для кого писалась эта книга, запустит KDE (тоже ведь WM!) на локальном компе, при старте и при помощи этого KDE запустит мозиллу (т.е. KDE выполнит execve() через библиотеки).

Так что на фоне того количества неточностей которое есть в этой статье, этой можно пренебречь.

ioannes
()

Рядовые пользователи - это такие люди, которым не важна АРХИТЕКТУРА
X Window and stuff. Они, прочитав эту статью, забудут эту схему
начисто. Ну есть X Server, есть WM, есть Xlib, а есть веб браузер Mozilla, который благодаря всему работает - какая к черту разница, где
там Xlib нарисован и какие ф-ции у WM, статья-то не для админов/программеров написана. Пункт "1. Устройство системы X Window."
можно вообще не читать - суть статьи от этого не меняется.
"В этой небольшой статье мы попытаемся рассмотреть, как устроен
графический интерфейс в Linux, и как настроить процедуры его запуска.
". Ключевая фраза: "как настроить процедуры его запуска". IMHO это объяснено хорошо.

CyberCoder
()

>"Рядовых пользователей" и "простых советских людей" не бывает. >Наказание за использование этих выражений - интуитивно понятный >расстрел.

"ананимусов" не бывает. Наказание за использование этого псевдонима - интуитивно понятный расстрел.



CyberCoder
()
Ответ на: комментарий от CyberCoder

Лучше быть "ананимусом", чем представляться "CyberCoder'ом".

anonymous
()
Ответ на: комментарий от CyberCoder

Значит так. Либо этот документ что-то объясняет - и тогда он должен это делать правильно, либо он только инструкция по настройке, которая просто указывает, что делать и не утруждает себя объяснениями - почему. И не важно, на уровне сисадмина или простого пользователя идет объяснение - не нужно врать с умным видом. Та часть, которая посвящена объяснениям - просто неправильна (и текст, и картинка). Кстати, замечу, что картинки имеют свойство отпечатываться в памяти глубже и сильнее, чем просто текст, поэтому ответственность на неправильной картинке лежит даже бОльшая, чем на неправильном тексте.

Очень хотелось бы узнать, как автор позиционирует свой документ.

Да, на призыв "show me the code" я могу ответить, что примерно год назад выходил тот же CHIP с моей статьей про настройку xkb (в принципе, даже сейчас большей частью актуальная). Если кто недоволен - можно ругать.

svu ★★★★★
()
Ответ на: комментарий от svu

svu (*) (2003-09-11 18:39:45.934273):

> Либо этот документ что-то объясняет - и тогда он должен это делать правильно, либо он только инструкция по настройке, которая просто указывает, что делать и не утруждает себя объяснениями.

Это утверждение спорно.

IMHO часто бывают полезны инструкции, просто указывающие,что делать и попутно УПРОЩЕННО объясняющие основы - для превращения механического набора неосознанных труднозапоминаемых действий в логически связанную конструкцию.

IMHO обсуждаемая статья - как раз этот случай.

> ...не нужно врать с умным видом.

BTW, Кнут в The TeXbook вовсю прибегает к подобному "вранью" (он САМ об этом так пишет; IMHO, там он слегка перебащивает). Надеюсь, никто не усомнится в компетентности Кнута в вопросах TeX'а?

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.