тонкие вопросы с Х-сервером
Модераторы: Olej, adminn, vikos
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
тонкие вопросы с Х-сервером
Графическая система Х11 - она вещь достаточно капризная:
- это не есть вообще составная часть Linux (как Linux kernel), это совершенно сторонняя к Linux разработка (X11R6 потом Xorg), позже привнесенная в Linux...
- вся система X11 (оконные менеджеры, Х-сервер, его драйверы конкретных нетиповых видеокарт) работает в юзерспейс (не в ядре!), обмен с портами видеокарты производится из пространства пользователя получая привилегии I/O (а IRQ ему не нужны), Х11 вообще не подгружает модулей ядра... (есть там позже доработки сторонние - модули, но это уже сверх Х11 ... и от лукавого );
- ещё более путает картину то, что драйверы проприетарных видеокарт (NVIDIA & ATI) заружают свои модули в кернелспейс ... для использования особых возможностей (использование GPU);
- наконец то, что Х-система - это сугубо сетевая система ... что необычно для других GUI систем.
- плюс громоздкость и сложность конфигурирования системы, на которую очень сильно накладываются наслоения в виде разных вышестоящих менеджеров (xdm, gdm, kdm)...
И по ней, естественно и в связи ... - вылезает множество вопросов, часть из них обсуждена в теме виртуальный терминал (vt aka tty). Вопросы.. Но даже эти вопросы:
- там обсуждены не до конца ... только затронуты...
- эти вопросы толком и в явном виде не описаны нигде, ни в техдокументации (Xorg, GNOME, GDM, ...), ни в статьях, ни уж тем более на форумах, блогах и прочей болтологии
Поэтому имеет смысл вопросы по Х, попутно вылезшие в теме виртуальный терминал (vt aka tty). Вопросы., продолжить на дальнейшее обсуждение в новой отдельной теме ... вот эта тема - она и есть .
А вопросы, вынесенные из прошлого обсуждения:
1. можно ли? и как? запустить на едином типовом компьютере (без кучи дополнительных видеоадаптеров) несколько отдельных Х-серверов... и что это даёт?
2. как удалённо использовать Х-сервер (экран, ввод, мышь) хоста LAN A для выполнения X-приложений (клиентов), выполняющихся на LAN хосте B?... и как это наилучшим образом настроить? как использовать сетевую природу протокола Х?
А попутно сюда же добавлять другие, совсем неочевидные, вопросы относительно Х. Пример таких вопросов у меня:
3. мультиэкранные конфигурации... как сконфигурировать в Х работу N (2, 3, 4...) мониторов, так, чтобы один экран был продолжением другого (прорисовка топологий в АСУТП и SCADA, etc.)? и как управлять их (экранов) конфигурациями... потому как 4 монитора можно, по крайней мере, рассматривать в таких расположениях (геометриях):
=scr1= =scr2= =scr3= =scr4=
=scr1=
=scr2=
=scr3=
=scr4=
=scr1= =scr2=
=scr3= =scr4=
P.S. я решал такую задачу в GUI системе Photon OS QNX ... там всё совсем не так тривиально - некоторые видеоадапртеры удаётся запустить для совместной работы, другие - нет... и то - совсем другая GUI система.
4. в продолжение п.2 : а как запустить несколько Х-серверов в компьютере с несколькими физическими экранами?
- это не есть вообще составная часть Linux (как Linux kernel), это совершенно сторонняя к Linux разработка (X11R6 потом Xorg), позже привнесенная в Linux...
- вся система X11 (оконные менеджеры, Х-сервер, его драйверы конкретных нетиповых видеокарт) работает в юзерспейс (не в ядре!), обмен с портами видеокарты производится из пространства пользователя получая привилегии I/O (а IRQ ему не нужны), Х11 вообще не подгружает модулей ядра... (есть там позже доработки сторонние - модули, но это уже сверх Х11 ... и от лукавого );
- ещё более путает картину то, что драйверы проприетарных видеокарт (NVIDIA & ATI) заружают свои модули в кернелспейс ... для использования особых возможностей (использование GPU);
- наконец то, что Х-система - это сугубо сетевая система ... что необычно для других GUI систем.
- плюс громоздкость и сложность конфигурирования системы, на которую очень сильно накладываются наслоения в виде разных вышестоящих менеджеров (xdm, gdm, kdm)...
И по ней, естественно и в связи ... - вылезает множество вопросов, часть из них обсуждена в теме виртуальный терминал (vt aka tty). Вопросы.. Но даже эти вопросы:
- там обсуждены не до конца ... только затронуты...
- эти вопросы толком и в явном виде не описаны нигде, ни в техдокументации (Xorg, GNOME, GDM, ...), ни в статьях, ни уж тем более на форумах, блогах и прочей болтологии
Поэтому имеет смысл вопросы по Х, попутно вылезшие в теме виртуальный терминал (vt aka tty). Вопросы., продолжить на дальнейшее обсуждение в новой отдельной теме ... вот эта тема - она и есть .
А вопросы, вынесенные из прошлого обсуждения:
1. можно ли? и как? запустить на едином типовом компьютере (без кучи дополнительных видеоадаптеров) несколько отдельных Х-серверов... и что это даёт?
2. как удалённо использовать Х-сервер (экран, ввод, мышь) хоста LAN A для выполнения X-приложений (клиентов), выполняющихся на LAN хосте B?... и как это наилучшим образом настроить? как использовать сетевую природу протокола Х?
А попутно сюда же добавлять другие, совсем неочевидные, вопросы относительно Х. Пример таких вопросов у меня:
3. мультиэкранные конфигурации... как сконфигурировать в Х работу N (2, 3, 4...) мониторов, так, чтобы один экран был продолжением другого (прорисовка топологий в АСУТП и SCADA, etc.)? и как управлять их (экранов) конфигурациями... потому как 4 монитора можно, по крайней мере, рассматривать в таких расположениях (геометриях):
=scr1= =scr2= =scr3= =scr4=
=scr1=
=scr2=
=scr3=
=scr4=
=scr1= =scr2=
=scr3= =scr4=
P.S. я решал такую задачу в GUI системе Photon OS QNX ... там всё совсем не так тривиально - некоторые видеоадапртеры удаётся запустить для совместной работы, другие - нет... и то - совсем другая GUI система.
4. в продолжение п.2 : а как запустить несколько Х-серверов в компьютере с несколькими физическими экранами?
Последний раз редактировалось Olej 03 дек 2011, 22:45, всего редактировалось 1 раз.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: тонкие вопросы с Х-сервером
- я, возвращаясь к этому вопросу, так и буду называть его для определённости: вопрос №1.Olej писал(а): 1. можно ли? и как? запустить на едином типовом компьютере (без кучи дополнительных видеоадаптеров) несколько отдельных Х-серверов... и что это даёт?
Там, в исходной теме, я писал:
Продолжим этот эксперимент:Olej писал(а): Здесь я ошибся!
Вы можете спокойно перейти в свободную (!) N-ю консоль по <Ctrl><Alt><FN>, залогониться там (не обязательно как root?) и выполнить:Код: Выделить всё
[olej@nvidia ~]# Xorg :1
А теперь возвращайтесь в X11 и там:Очень характерный результат! :Код: Выделить всё
[olej@nvidia ~]$ ps ahx | grep Xorg 13037 tty8 Ss+ 0:13 /usr/bin/Xorg :0 -br -verbose -auth /var/run/gdm/auth-for-gdm-df5fML/database -nolisten tcp 15674 tty7 Ss+ 0:00 Xorg :1 15828 pts/9 S+ 0:00 grep --color=auto Xorg [olej@nvidia ~]$ DISPLAY=:1; xterm ...
1. вы получили новый дополнительный (:1) дислей X11 ... новый X-сервер
2. можете запускать там приложения ... в показанном xterm будут вводиться и отрабатываться консольные команды...
3. НО! в этом эксперименте у вас есть новый Х-сервер, но нет над ним никакого оконного менеджера (хотя бы простейшего twm) - ваши окна приложений (xterm) не имеют рамок, органов управления (закрыть, развернуть, свернуть...), не могут перемещаться по полю экрана - все эти функции обеспечивает оконный менеджер, который совершенно независим от X-сервера...
- в текстовой консоли (<Ctrl><Alt><F5> для определённости):
Код: Выделить всё
[olej@nvidia ~]# Xorg :3
...
- теперь возвращаемся в свой родной GNOME (<Ctrl><Alt><F1> - это Fedora 14, у вас могут быть другие консоли):
Код: Выделить всё
[olej@nvidia 01]$ who | grep tty
root tty5 2011-12-03 20:28
olej tty1 2011-12-03 17:23 (:0)
[olej@nvidia ~]$ ps ahx | grep Xorg
2024 tty1 Ss+ 2:46 /usr/bin/Xorg :0 -nr -verbose -auth /var/run/gdm/auth-for-gdm-2v9A9i/database vt1
4732 tty7 Ss+ 0:02 Xorg :3
5162 pts/2 S+ 0:00 grep --color=auto Xorg
- из графического терминала исходного GNOME командой запускаю Х-приложение для сервера :3 ... но не какое-попало приложение, а именно один из (минимальный) оконных менеджеров! :
Код: Выделить всё
[olej@nvidia init.d]$ DISPLAY=:3 twm
bash: twm: command not found...
Установить пакет 'xorg-x11-twm' предоставляющий команду 'twm'? [N/y]
* Выполнение..
* Разрешение зависимостей..
* Ожидание авторизации..
* Ожидание в очереди..
* Разрешение зависимостей..
* Загрузка пакетов..
* Проверка изменений..
* Установка пакетов..
* Сканирование приложений..
twm: warning: font for charset MICROSOFT-CP1251 is lacking.
twm: warning: font for charset MICROSOFT-CP1251 is lacking.
twm: warning: font for charset MICROSOFT-CP1251 is lacking.
twm: warning: font for charset MICROSOFT-CP1251 is lacking.
twm: warning: font for charset MICROSOFT-CP1251 is lacking.
twm: warning: font for charset MICROSOFT-CP1251 is lacking.
- а теперь я отправляюсь в ещё один виртуальный терминал (3-й по счёту ) - <Ctrl><Alt><F7> ... (почему 7? потому, что у меня сконфигурированных консолей по дефаулту - 6, а я в команде Xorg не указывал явно "на каком" ... а можно )
По нажатию левой кнопки мышки, как и положено в twm, открывается меню приложений, я выбираю xterm, а уже из xterm запускаю скринсейвер GNOME (это на картинке видно): P.S. Что я, в итоге, здесь показал?
1. работают 2 независимых Х-сервера, на виртуальных терминалах <Ctrl><Alt><F1> (:0) и <Ctrl><Alt><F7>(:3)
2. каждый из них работает со свои, различающимися оконными менеджерами: GNOME и twm, соответственно...
3. с отрисовкой понятно ... но каждый из них работает независимо с вводом: и клавиатурой и мышью: вводятся консольные команды, передвигаются окна по экрану...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: тонкие вопросы с Х-сервером
Ладно с ним, с вопросом №1 ... хотя он до конца не разобран, и к нему будет время вернуться...Olej писал(а): буду называть его для определённости: вопрос №1.
А вот вопрос №2 - ещё интереснее:
Причём вопрос не праздный, и не из пустого любопытства...Olej писал(а): 2. как удалённо использовать Х-сервер (экран, ввод, мышь) хоста LAN A для выполнения X-приложений (клиентов), выполняющихся на LAN хосте B?... и как это наилучшим образом настроить? как использовать сетевую природу протокола Х?
Потому как он, может быть, и не так жизненно важен а). конечным пользователям, для которых в контр-страйк полабать ... б). администраторам серверов и сетей, для которых поддерживать в работоспособности корпоративные сети ... но меня не сильно занимают проблемы как тинейджеров-геймеров, так и системных администраторов...
Этот вопрос сильно интересен разработчику: систем, программ, в том числе разработчику систем embdded. На этой базе можно:
- строить рабочие места (рабочие окружения, стенды) для а). написания б). компиляции в). запуска г). отладки новых приложений...
- когда программа отрабатывается для хоста В (таргет), а все результаты рассматриваются на хосте А (хост)... а В может быть:
- другой ОС: Solaris, например... (мне так приходилось отрабатывать реальный проект)
- и другой аппаратной архитектурой: SPARK
- или малой архитетурной формой : ARM, MIPS (мне такой проект приходилось консультировать и помогать)
- для которой архитектуры у вас просто нет компилятора на вашем десктоп Linux (меня удивляет, что пользователи начитавшись о многих архитектурах, поддерживаемых gcc - твёрдо верят, что их gcc может компилировать ARM, MIPS, ... - это он потенциально может, но для этого его нужно самого скомпилировать под ту архитектуру!)
- и те малые архитектуры (kit-ы) могут просто не иметь достаточно ресурсов, чтобы запустить собственную Х-систему (недавно присутствовал на таком проекте)...
- или просто не иметь видео-аппаратуры для поддержки GUI-отображения ... а всё остальное иметь.
То-есть задача удалённого Х11 - архиважная!
(куда важнее, чем, скажем, SAMBA, о которой много пишут, но которая, по большому счёту, никому и на хрен не сдалась... )
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: тонкие вопросы с Х-сервером
Я знаю 3 принципиально разных решения задачи удалённого использования Х11 (каждый хорош для своих целей). В порядке от "простого к сложному" и по мере возрастания функциональности и возможностей (за простоту всегда надо платить ) они выглядят так:Olej писал(а): А вот вопрос №2 - ещё интереснее:Olej писал(а): 2. как удалённо использовать Х-сервер (экран, ввод, мышь) хоста LAN A для выполнения X-приложений (клиентов), выполняющихся на LAN хосте B?... и как это наилучшим образом настроить? как использовать сетевую природу протокола Х?
1. это использование VNC - Virtual Network Computing.
В частности такого пакета как TeamViewer.
Я даже отдельную тему завёл, подробнее: VNC : TeamViewer - чтобы здесь не засорять...
Идея здесь состоит вообще в удалённом разделении всего экрана по специальному сетевому протоколу RFB (remote framebuffer).
Иногда это может быть достаточно:
- для обучения, например, для демонстрации через проектор всех телодвижений в компьютере;
- для демонстрации ПО (мне таким образом разработчики SCADA RealFlex под QNX из Ирландии детально знакомили с работой с их системой - водя моей мышкой )
2. использование туннелирования сетевого протокола пользовательского уровня в другой транспортный протокол ... самый известный из таких - SSH, называют ещё TELNET (но очень неуверенно называют - может брешут - нужно проверять).
3. использования нативных возможностей сетевого протокола Х (сокетного соединения Х-клиента) - без каких-либо промежуточных агентов. Это самый мощный, но и самый сложный в настройке способ.
P.S.
Если кто-то придумает способ сверх названных 3-х - давайте его сюда, хотя бы на уровне голой идеи: "давайте сделаем так..." - я вам его раскручу до реального использования и проверю
Последний раз редактировалось Olej 05 дек 2011, 22:44, всего редактировалось 1 раз.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: тонкие вопросы с Х-сервером
Об этом я писал здесь.Olej писал(а): 2. использование туннелирования сетевого протокола пользовательского уровня в другой транспортный протокол ... самый известный из таких - SSH, называют ещё TELNET (но очень неуверенно называют - может брешут - нужно проверять).
Но оно заслуживает более детального изучения.
Итак, чтобы не объясняться долго, и не играться с игрушечными приложениями, сразу берём быка за рога (это самая распространённая форма запуска Х-клиента через SSH туннель):
Код: Выделить всё
[olej@nvidia ~]$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr F4:6D:04:60:78:6F
inet addr:192.168.1.9 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::f66d:4ff:fe60:786f/64 Scope:Link
...
[olej@nvidia etc]$ ssh -nfX -l olej 192.168.1.22 /opt/oracle/solstudio12.2/bin/sunstudio
olej@192.168.1.22's password:
...
А на картинке (на ней написано ) IDE Oracle Solaris Studio ... которое ещё до недавнего времени было Sun Solaris Studio...
Что произошло?
- с хоста А (192.168.1.9) запущена интегрированная среда разработки Solaris Studio на таргете (хосте) В (192.168.1.22)...
- в этой среде по дефаулту, например, используется Sun компилятор cc, который во многих случаях генерит заметно производительней код, чем Linux-любимый gcc...
- но не в том главное дело, а в том, что В может работать, как пример, в операционной системе Solaris 11 (Open Solaris) и на процессоре RISC архитектуры SPARK на 8-ми ядрах...
- а я буду спокойно: писать + компилировать + запускать + отлаживать программы на В, работая за экраном своего Linix-привычного хоста А.
- или ... В может быть вообще малой эл. платой на процессоре архитектуры MIPS, у которого вообще может не быть видеоподсистемы, терминальный вывод которого идёт через сериальный порт RS-232...
Сильный ход?
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: тонкие вопросы с Х-сервером
Мне не очень нравится такая самая распространённая форма запуска удалённого Х-клиента (хотя в большинстве публикаций вы найдёте только такую и именно такую форму).Olej писал(а):(это самая распространённая форма запуска Х-клиента через SSH туннель):Код: Выделить всё
[olej@nvidia ~]$ ifconfig eth0 eth0 Link encap:Ethernet HWaddr F4:6D:04:60:78:6F inet addr:192.168.1.9 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::f66d:4ff:fe60:786f/64 Scope:Link ... [olej@nvidia etc]$ ssh -nfX -l olej 192.168.1.22 /opt/oracle/solstudio12.2/bin/sunstudio olej@192.168.1.22's password: ...
Почему не нравится?
Да потому, что нужно в команде "вслепую" указать (на другом компьютере):
- полный путь файла программы;
или
- полное имя файла программы, если файл лежит в каталогах поиска на путях $PATH.
(и для того, чтобы подсмотреть написание, вам нужно иметь ещё одну открытую сессию SSH).
Но есть более простая форма:
Код: Выделить всё
[olej@nvidia 01]$ ssh -X olej@192.168.1.22
olej@192.168.1.22's password:
[olej@notebook ~]$ ls $HOME/eclipse
about_files artifacts.xml dropins eclipse.ini features libcairo-swt.so p2 readme
about.html configuration eclipse epl-v10.html icon.xpm notice.html plugins
[olej@notebook ~]$ cd $HOME/eclipse
[olej@notebook eclipse]$ ./eclipse &
[1] 10314
[olej@notebook eclipse]$
Да тем, что я захожу в сессию SSH в текстовом терминале, могу там выполнять команды, искать, запустить mc ... и только потом заказать и выполнить Х-программу... Вот так выглядит IDE Eclipse ... а вот так он сам себя идентифицирует:
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: тонкие вопросы с Х-сервером
Ну и последние, чтоб смешнее было, картинки:Olej писал(а): Вот так выглядит IDE Eclipse ...
Код: Выделить всё
[olej@nvidia ~]$ ssh -X olej@192.168.1.22
olej@192.168.1.22's password:
[olej@notebook ~]$ cd $HOME/idea-IC-107.105/bin
[olej@notebook bin]$ ls
appletviewer.policy idea_CE128.png idea_CE48.png idea.vmoptions libbreakgen64.so
fsnotifier idea_CE16.png idea.properties inspect_diff.sh libbreakgen.so
fsnotifier64 idea_CE32.png idea.sh inspect.sh log.xml
[olej@notebook bin]$ ./idea.sh
OpenJDK Runtime Environment (IcedTea6 1.8.3) (fedora-43.1.8.3.fc12-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)
WARNING: You are launching IDE using OpenJDK Java runtime
THIS IS STRICTLY UNSUPPORTED DUE TO KNOWN PERFORMANCE AND GRAPHICS PROBLEMS
NOTE: If you have both Sun JDK and OpenJDK installed
please validate either IDEA_JDK or JDK_HOME environment variable points to valid Sun JDK installation
Press Enter to continue.
...
А дальше - запущенный их этой IDE симмулятор Android + запущенное в нём для проверки свеже выпеченное приложение:
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: тонкие вопросы с Х-сервером
... и вот смотрю я на эти 3 одновременно выполняющихся IDE, запущенных на удалённом таргет В, но на отдельных рабочих столах моего Linux ... и оцениваю созданное таким образом рабочее место программиста :
- а таргеты В таких нескольких Х-приложений могут быть совершенно различными хостами LAN: B1, B2, B3, ...
- а ещё интересно, что поскольку всё это крутится в одном Х-сервере, то я могу выделить фрагмент текста по <Ctrl><C> в одном Х-приложении (находящемся на хосте за 200 метров), и по <Ctrl><V> вкопировать его в окно другого Х-приложения (находящемся на хосте ещё за 200 метров, но в другую сторону), и бегать не надо ... буфер то обмена - общий
P.S. Замечание вскользь ... попутно вспомнилось: вот то, что я назвал выше "на отдельных рабочих столах моего Linux" - это то, что называется терминологически Х-терминал (ещё одно понятие из Х-технологий). В таком смысле и качестве:
- можно взять "дохлый компьютер"...
- поднять на нём минимальный Linux, но с Х11 системой...
- а дальше подключать его именно как графический терминал отображения ... скажем, к мощным серверам, для управления ними, но так, чтобы не отвлекать их от производительной работы.
(это, в общем то, идея, с которой многие-многие годы носилась фирма Sun Microsystems, откуда и их технология Java выросла ... "сетевой компьютер" в терминологии Sun; но так и не дождалась - была с потрохами куплена Oracle ... всего за год-два до того, как массово пошли в раскрутку clouds вычисления, которые грозятся похоронить и десктопы, и Linux ... и Х11 ) .
- а таргеты В таких нескольких Х-приложений могут быть совершенно различными хостами LAN: B1, B2, B3, ...
- а ещё интересно, что поскольку всё это крутится в одном Х-сервере, то я могу выделить фрагмент текста по <Ctrl><C> в одном Х-приложении (находящемся на хосте за 200 метров), и по <Ctrl><V> вкопировать его в окно другого Х-приложения (находящемся на хосте ещё за 200 метров, но в другую сторону), и бегать не надо ... буфер то обмена - общий
P.S. Замечание вскользь ... попутно вспомнилось: вот то, что я назвал выше "на отдельных рабочих столах моего Linux" - это то, что называется терминологически Х-терминал (ещё одно понятие из Х-технологий). В таком смысле и качестве:
- можно взять "дохлый компьютер"...
- поднять на нём минимальный Linux, но с Х11 системой...
- а дальше подключать его именно как графический терминал отображения ... скажем, к мощным серверам, для управления ними, но так, чтобы не отвлекать их от производительной работы.
(это, в общем то, идея, с которой многие-многие годы носилась фирма Sun Microsystems, откуда и их технология Java выросла ... "сетевой компьютер" в терминологии Sun; но так и не дождалась - была с потрохами куплена Oracle ... всего за год-два до того, как массово пошли в раскрутку clouds вычисления, которые грозятся похоронить и десктопы, и Linux ... и Х11 ) .
Последний раз редактировалось Olej 05 дек 2011, 00:40, всего редактировалось 1 раз.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: тонкие вопросы с Х-сервером
А ещё меня занимало бы (вот и вопрос №5 возник ), если мы говорим о не совсем очевидных вещах, связанных с Х11:Olej писал(а): 4. в продолжение п.2 : а как
5. если, как утверждатеся в X Window System Х11 благополучно развивается (был предложен) с 1984 года (за 7 лет ещё до придумывания только слова Linux ), то есть ли реальные альтернативные GUI-системы, идущие на смену Х11, могущие заменить Х11???
Хороший вопрос?
P.S. там же, рядом с названной ссылкой, есть отсылка к статье Графический интерфейс Linux, В.Костромин ... на этом вот сайте, который вы сейчас читаете : вполне прилично о Х11.
Но возвращаясь снова к вопросу №5 ... вот здесь есть главка Конкуренты X
Из всего здесь написанного всерьёз можно упоминать только о Apple Aqua для Mac OS X.В UNIX-подобных операционных системах для вывода графики почти повсеместно используется X Window System. Тем не менее, история знает несколько попыток создания альтернативы или замены X. Среди них: NeWS компании Sun Microsystems, не завоевавшая популярность на рынке, и Display PostScript компании NeXT, которая впоследствии превратилась в Apple Aqua для Mac OS X.
Производились и попытки решить проблемы X путём полной её замены; в том числе — проекты Berlin/Fresco и Y Window System. Однако эти проекты не получили практически никакого распространения. На данный момент имеется развивающийся проект, направленный на снижение системных требований — MicroXwin.
Другие конкуренты пытаются избежать накладных расходов, возникающих в X, путём работы непосредственно с аппаратным обеспечением. Примерами таких проектов являются DirectFB и очень маленький FBUI. Механизм Direct Rendering Infrastructure (попытка создать надёжный ядерный интерфейс к видеобуферу) может сделать эти проекты ненужными.
Есть и другие способы добиться сетевой прозрачности графических служб:
VNC (Virtual Network Computing) — очень низкоуровневая система, которая пересылает сжатые растровые изображения по сети. Реализация для UNIX включает в себя X-сервер.
Citrix MetaFrame — подобный X продукт для Microsoft Windows.
Tarantella, Inc. — компания, поставляющая Java-клиент для использования в веб-браузерах.
Технология NX NoMachine — узкополосный протокол для удалённых дисплеев.
SVG Terminal[7] — протокол для обновления SVG-содержимого в веб-браузере в почти реальном времени.
Совершенно естественно, что лёгкий GUI (не X11) нужен и в интересах разработчиков промышленного и встраиваемого оборудования.
Я сам работал с 2-мя такими GUI, разработанными для OS QNX (мало известными за пределами этой OS):
- QWindow - широко применявшаяся в системе QNX 4.X и вообще в QNX ... примерно до 2000-2004г.г.; грубоватая система низкого разрешения.
- Photon - нынешняя система лёгкого GUI под QNX - это "блестящая" система как по своей идеологии (модели отображения), так и по исполнению (объектно-ориентированный проект в "чистом" С) ... но там используются чисто QNX механизмы клиент-серверной OS, которые не перенесёшь на другие системы.
Публикации об альтернативных X11 системах GUI появляются с завидной регулярностью ... вот один из свежих переводов и здесь на сайте - http://rus-linux.net/nlib.php?name=/MyL ... indow.html: Жизнь "после X"
Но сколько мне не попадалось (за годы!) публикаций на эту тему, не оставляет ощущение, что всё это написанное - полный бредОригинал: "LPC: Life after X"
Автор: Jonathan Corbet
Дата публикации: November 5, 2010
Куда интереснее то, как это (графическая отрисовка) производится в мобильных средах, тех, которые обещают очень серьёзно потеснить десктопный Linux во многих средах приложения: мобильные планшеты с Android, E-Book ридеры с E-ink экранами ... Основой и там и там является ядро Linux.
Только 2 дня назад менял шрифты на Linux E-Book (Amazon Kindle 4), но так до сих пор и не понял как это у меня получилось!
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: тонкие вопросы с Х-сервером
... это я снова перепрыгиваю-возвращаюсь к вопросу №1 ... но на совершенно другом компьютере (где раньше с этим возникали как-то проблемы):Olej писал(а): Продолжим этот эксперимент:
- в текстовой консоли (<Ctrl><Alt><F5> для определённости):Код: Выделить всё
[olej@nvidia ~]# Xorg :3 ...
Код: Выделить всё
[olej@notebook ~]# xinit -- :3
[olej@notebook ~]$ who | grep tty
root tty5 2011-12-05 02:16
olej tty1 2011-12-04 12:55 (:0)
[olej@notebook ~]$ twm -display :3
...
- скрипту xinit можно передать больше дополнительных параметров...
- он при старте выполняет свой начальный сценарий $HOME/.xinit ... например по типу того, что прописан в man xinit:
Код: Выделить всё
xterm -g 80x24+0+0 &
xterm -g 80x24+0-0 &
twm
В целом ряде публикаций предлагают запускать дополнительный экземпляр Х-сервера командой по типу:
Код: Выделить всё
# startx -- :3
Но как раз такой запуск меня не устраивает (пока): он стартует все скрипты, установленные в моём дистрибутиве (менеджер окон, рабочего стола, запущенных программ...) - а это вовсе не то, что хотелось бы (другой менеджер, другое окружение, ...).
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя