Графическая оболочка X-Windows System.
В начале немного истории . Представим, что нам нужно написать программу, которая будет работать в графическом режиме. Нам потребуется: опрашивать клавиатуру, снимать события и координаты мыши, рисовать на экране.
Как это делалось на MS-DOSе? Очень просто. Пишем одну большую программу, в ней — все: и логика, и обработка событий, и слежение за перемещениями мыши, ну а когда требуется что-то нарисовать, мы даем команду на запись в порты EGA контроллера, рисуем пиксель… Через год появляется контроллер VGA, еще через год SVGA 800×600, 16 цветов, вслед за ним UVGA 1024×768, 256 цветов, затем XGA 1280×1024, 16Мб цветов…
Основная идея X Windows.
Есть две независимые программы. Одна из них ,умеет рисовать на графическом мониторе, и обслуживать все это железо. И называется она X-сервер. Вторая программа — клиент X Windows, рисовать физически не умеет. Но она знает, что именно надо рисовать, и умеет командовать. Команды типа: «нарисовать прямоугольник», «провести линию», «открыть окно», «вывести символ в заданном фонте», «опросить координаты мыши», и т.п. передаются X-серверу, а тот их исполняет — рисует. Формат и спецификации этих команд опубликованы,стандартизованы, и широко известны. Все вместе они называются «Протокол X Windows«.
Итак :
X-сервер. Программа, которая написана специально под конкретное физическое устройство (имеется в виду — монитор, графконтроллер, мышь и клавиатура), умеет на нем рисовать, и умеет понимать команды рисования по протоколу X Windows System.
X-клиент . Прикладная программа, обеспечивающая графический интерфейс с пользователем. Команды для рисования на экране передает X серверу по протоколу X Windows System.
X-терминал . Ящик (монитор, графконтроллер, мышь, клавиатура, ну и, естественно, процессор и оперативная память), на котором запущена программа X-сервер.
X-терминалом может служить самая обыкновенная графическая Unix-рабочая станция, на которой X сервер выполняется, как одна из многих прикладных задач.
Специализированный X-terminal — ящик, на котором запускается только X сервер, и ничего кроме. Можно использовать PC под MS-DOSом, на котором запущена DOSовская программа, реализующая X сервер.
Xlib — библиотека C-ишных функций, реализующих протокол X Windows System. С помощью этой библиотеки можно писать графические программы — X-клиенты.
Что из этого получаеться.
Мы получаем универсальный GAPI — (Graphical Application Programming Interface) — средство программирования графических приложений. Пользовательские графические программы при этом полностью отвязаны от железа, от конкретного графконтроллера.О железе пусть беспокоится X-сервер. Протокол X Windows умеет «ездить» по сети: например по TCP/IP, или по DEC-net. Поэтому X сервер может крутиться на одной машине, а X-клиент — на другой. То есть, картинка рисуется на одной машине, а программа, которая ее обеспечивает — крутится на другой.
X-сервер способен обслуживать сразу много клиентов, причем всех — одновременно.
На нашем графическом экране может быть открыто сразу много окон — каждое окно порождается его собственным X клиентом. Клиенты эти могут быть запущены и на нашей машине (к которой подключена графическая подсистема), и на удаленных машинах, соединенных с нами по сети.
Чего нам это стоит .
Понятно чего. Ресурсов. X Windows очень любит ресурсы — память, процессор, диск.Способен съесть их в неограниченных количествах. А еще ведь надо программировать. (К счастью, не всем надо). Кто видел, как выглядят программы для MS Windows или Mac, может представить себе внешний вид исходных текстов X-овой программы.
Как это запускается.
Пусть в нашей сети есть машина с графической подсистемой и X сервером, и сетевой адрес этой машины pcat107.foms.msk.ru на pcat107 нужно выполнить команду:
xhost + # разрешить X-овым программам с ЛЮБОЙ машины # рисовать на экране машины pcat107Запускаем на нашем компьютере X-овую программу, так, чтобы ее окошко рисовалось на мониторе pcat107. Для этого на нашем компьютере нужно выполнить команду:
xterm -display pcat107:0.0 &Библиотеки, Motif, и война круглых и квадратных кнопок.
Можно писать X-овые программы, используя библиотеку Xlib. Многие так и пишут, хотя это весьма тяжело — уж больно невысок уровень Xlib’а. В помощь программистам было создано несколько toolkit’ов — библиотек более высокого уровня, в которых реализованы различные widget’ы. Widget — непереводимый термин X Windows. Склеен из двух слов — Window и Gadget (приспособление), является графическим объектом с привязанными к нему свойствами и реакциями на действия пользователя. Примеры widgetow: «кнопка», «менюшка», «окошко с текстом»,
«линейка прокрутки»,…
Известны следующие toolkit’ы:
Xaw — Anthena Widgets. Очень черно-белый, очень плоский, весьма небогатый.
Зато — бесплатный. Посмотрите, как выглядят программы xterm, xedit, xman.
Они сделаны на Xaw.
xview — Набор библиотек и объектов, использованных в реализации набора пользовательских утилит Sun-овской версии X Windows — «Open Windows».
Весьма симпатично.Круглые кнопки, «шприцы-иголки» (замечательная вещь!),очень хорошо продуманный интерфейс пользователя, в том числе активно используемая трех-кнопочная мышь. Исходные тексты библиотек xview открыты, предоставляются бесплатно. Однако набор DeskSet — 15 пользовательских утилит входящих в OpenWindows, сделанный на библиотеке xview, SunSoft готов предоставить только за плату. В бинарном виде — весьма дешево ($100). В исходных текстах — весьма дорого ($200K)
Motif — Библиотека поставляются организацией OSF за не совсем маленькую плату. Исходные тексты библиотек недоступны, либо чрезмерно дороги. Кнопки — квадратные, да и вообще Motif’овские приложения до безобразия напоминают MS Windows (что, IMHO, является серьезным преступлением)
В борьбе BSD и Unix V победил, как известно, System V, а в войне круглых и квадратных кнопок выиграл Motif.
Конфигурирование X Windows
В Linux используется X11 в реализации XFree86. Чтобы его сконфигурировать,выполните команду xf86config
Запуск X Windows.
На некоторых машинах он сам запускается. А также иногда удается запустить его вручную командами: startx и/или openwin Solaris:
Установите переменные окружения:
2.OPENWINHOME=/usr/openwin export OPENWINHOME3. LD_LIBRARY_PATH=/usr/openwin/lib export LD_LIBRARY_PATH4. PATH=/usr/openwin/bin:$PATH export PATH5. XAPPLERESDIR=/usr/openwin/lib/app-defaults export XAPPLERESDIRЗапустите X Windows командой openwin
«Нормальные» Unix’ы:
Установите переменные окружения:
2.PATH=/usr/bin/X11:$PATH3. XAPPLERESDIR=/usr/lib/X11/app-defaultsЗапустите X Windows командой startx
«Ненормальные» Unix’ы (Unixware).
Когда регистрируете пользователя, ответьте Yes на вопрос «Хотите графический DeskTop». Тогда после login’а X Windows будет запускаться автоматически. Если вы прозевали, и ответили No, то никаким осмысленным способом запустить X Windows для себя вам не удастся.
Настройки пользовательского окружения X Windows
При наличии пользовательских настроечных файлов, лежащих в домашнем каталоге пользователя, используются они. Если их нет, используются стандартные,общественные, обычно лежащие в каталоге /usr/lib/X11 или /usr/openwin/lib .
Запуск графической оболочки Linux Bash в Windows 10
В первую очередь необходимо установить Linux Bash в Windows 10. Инструкция по установке Linux Bash описана в следующей статье:
Для установки Ubuntu из Microsoft Store предлагаем выбрать версию Ubuntu 18.04 LTS в операционной системе Windows 10 May 2019 Update (версия 1903).
Параметры установленного дистрибутива Linux расположены в меню Windows Параметры > Приложения > Приложения и возможности. Из списка установленных программ выберите Ubuntu 18.04 и нажмите на Дополнительные параметры.
Так же открыть параметры Ubuntu 18.04 можно нажав правой кнопкой мыши по значку Ubuntu 18.04 в меню Пуск, в открывшемся меню выбираем Дополнительно > Параметры приложения.
Параметры установленного Линукс дистрибутива в Windows 10 (версия 1903):
Расположена файловая система Ubuntu на локальном диске С по следующему адресу:
Таким образом можно получить доступ к нужным файлам и папкам Linux.
После установки и первоначальной настройки системы нужно обновить систему и установить рабочее окружение.
Обновление системы и установленных пакетов:
Установка рабочего окружения и пакета программ Ubuntu (Gnome):
Меняем права доступа к папке кэша:
Далее в систему Windows 10 нам нужно установить приложение для обеспечения оконной системы Linux, которая отвечает за построение и отображение графического интерфейса.
VcXsrv Windows X Server
Таких программ несколько. Предлагаем выбрать активно развивающуюся программу VcXsrv Windows X Server. Устанавливаем с настройками по умолчанию.
После запуска программы VcXsrv Windows X Server в окне Display Settings есть выбор отображения интерфейса оконной системы Linux. В нашем случае отлично работал вариант с большим оконным режимом (One large window). Там же в настройках Display number выставляем значение 0 (если возникнут проблем с запуском интерфейса, то значение нужно изменить, кроме того нужно будет изменить и значение в команде запуска).
Далее оставляем настройки по умолчанию. По окончанию настройки у нас запустится пустое окно.
Переходим в запущенную Linux систему, у нас она открыта в виде командной строки и вводим следующие команды:
Для дальнейших запусков графического окружения нужно вводить команду выше, при этом программа VcXsrv Windows X Server должна быть предварительно открыта.
Также создайте сценарий оболочки start-ubuntu (имя файла необязательно):
Сделайте скрипт оболочки исполняемым:
Запустить скрипт оболочки:
Известные проблемы и их решения
Из недостатков, с которыми столкнулись, отметим следующие: проблема с правами доступа различных приложений и системных функций. В качестве решения можно систему запустить с правами root. В целях безопасности не рекомендуется запускать систему с полными правами администратора, но если есть в этом необходимость, то запустить можно следующим образом: после того как открыли приложение VcXsrv и Linux систему, которая открылась в виде командной строки, нужно ввести команду: sudo su , затем вводим команду для запуска графического окружения:
Теперь нам будут доступны ранее неработающие функции системы, например, русификация и работа некоторых расширений Gnome.
Так же мы столкнулись с тем, что предустановленный браузер Firefox не устанавливает дополнения. Можно воспользоваться другим браузером, например, браузером Opera. В режиме суперпользователя запускать его нужно с помощью терминала командой: opera --no-sandbox.
Система установится на английском языке, установка другого языка доступна только под системой с правами администратора (sudo su). Установить русский язык в систему можно следующими командами:
После этого в настройках системы Ubuntu нужно выбрать и активировать установленный русский язык.
Концепция альтернативной оболочки Windows. Часть 1.
Предположим, Вы приобрели новый компьютер с предустановленной ОС Windows. После загрузки системы и входа в профиль пользователя Вас приветствует Рабочий стол с несколькими иконками и полоска Панели Задач в нижней части экрана — там тоже несколько иконок. После настройки Интернета Вы начинаете скачивать программки — большие и маленькие. После запуска инсталляторов для каждой из них на Рабочем столе (а иногда и на Панели Быстрого запуска) появляются новые ярлычки. Вы начинаете работать с программами, и, возможно, часть созданных документов сохраняете на Рабочий стол.
реклама
На Рабочем столе становится всё больше и больше иконок, и уже глаза начинают разбегаться.
При сильной захламленности Рабочего стола Вас подстерегает ещё одна неприятность. Для создания нового документа нужно активировать ярлык приложения, а для изменения документа нужно дважды кликнуть по иконке документа. Но ярлыки приложений и иконки документов на Рабочем столе перемешаны, и поиск нужного объекта требует некоторого напряжения. Можно, конечно, перетащить все ярлыки приложений в левую (правую, верхнюю или нижнюю) часть Рабочего стола, но не факт, что при очередной перезагрузке этот порядок сохранится.
Положение усугубляется тем, что текст подписей под значками усекается, и не всегда понятно, какой документ где находится — ведь у документов могут быть одинаковые иконки и часть имени может совпадать.
Рассмотрим типовые решения проблемы нехватки места на Рабочем столе.
реклама
Можно всегда сохранять документы в библиотеку «Документы», раскладывая их по папкам, или периодически перемещать туда документы с Рабочего стола.
Можно поступить более радикально — удалить часть объектов в корзину.
Можно так же добавлять ярлыки приложений на Панель Быстрого запуска (в Windows 10 она срослась в единое целое с Панелью Задач). Постепенно там тоже накапливается приличное количество иконок. Иконки начинают занимать несколько рядов, и рабочее пространство для окон приложений сокращается.
Как временное решение, с помощью контекстного меню Рабочего стола можно изменить размер значков с обычных на маленькие.
реклама
Ещё можно купить монитор большего размера или расширить Рабочий стол на несколько мониторов . .
Это, пожалуй, все варианты, которые предлагает ОС.
Что могло бы облегчить работу на компьютере в данной ситуации?
Если бы на Рабочем столе была полоса прокрутки, то часть иконок можно было бы поместить в невидимую область экрана.
реклама
Или, скажем, если бы ОС предоставляла возможность иметь в своём распоряжении несколько полноценных Рабочих столов, то можно было бы перераспределить иконки между ними.
Кнопочки на Панели Быстрого Запуска надо тоже как-то поделить. Скажем, иметь несколько Панелей Быстрого Запуска — по одной на каждый Рабочий стол.
Итак, обозначим список наших пожеланий.
- Мы хотим, чтобы было много Рабочих столов.
- Мы хотим, чтобы на каждом Рабочем столе при необходимости была прокрутка.
- Мы хотим, чтобы ярлыки приложений располагались отдельно от иконок документов и папок с документами.
- Мы хотим, чтобы для каждого Рабочего стола была своя Панель Быстрого Запуска.
- Мы хотим, чтобы текст подписи под значками не усекался, а отображался полностью, в удобоваримом виде.
Как эти требования выполняются в Программном комплексе «Пользовательская оболочка» (в дальнейшем — ПКПО)?
В ПКПО есть аналог Рабочего стола, называемый Составным проектом. Пользователь может создать практически неограниченное количество Составных проектов. Все Составные проекты образуют древовидную структуру и, естественно, у каждого Составного проекта есть имя. Кроме того, Вы можете сразу переходить из одного Составного проекта в другой сразу, вне зависимости от места в Дереве Проектов, если создадите объект «Родственный проект».
Составной проект, с которым в данное время работает пользователь, отображается в специальной панели — Окне Просмотра. Слева от Окна просмотра располагается Панель Кэша Приложений, куда пользователь помещает ярлыки приложений, которые могут понадобиться в текущем Составном проекте. Если в любой из панелей содержится много объектов, автоматически появляется прокрутка. Граница между панелью Кэша Приложений и Окном просмотра изменяемая. Объекты в Окне Просмотра сортируются по одному из выбранных критериев, но сначала отображаются папки, т. е. вложенные Составные проекты (см. Рисунок 1).
В каждой из панелей «Пользовательской оболочки» есть несколько вариантов отображения иконок и подписей к ним, в том числе, без усечения текста.
Рисунок 1. Окно Просмотра и Кэш Приложений
А как насчёт Панели Быстрого Запуска?
Этот элемент интерфейса формируется с помощью другого приложения ПКПО — Пользовательской панели, аналога Панели Задач Windows (см. Рисунок 2). Панель Кэша Приложений (см. Рисунок 2) — это и есть аналог Панели Быстрого Запуска Windows.
Рисунок 2: Пользовательская панель
Таким образом, во время работы над текущим Составным проектом мы можем запустить нужное приложение, нажав кнопку на Панели Кэша Приложений.
Если с помощью средств навигации Окна Просмотра мы переходим в другой Составной проект, содержимое панелей Кэша Приложений обоих приложений полностью обновляется.
Поскольку Кэш Приложений отображается сразу в двух приложениях, Вы можете скрыть панель Кэша Приложений в «Пользовательской оболочке», тем самым увеличивая размер Окна Просмотра (см. Рисунок 1).
У некоторых пользователей может возникнуть возражение — некоторые приложения нужны в нескольких, или даже во всех Составных проектах, например, веб-браузер или пакет офисных программ. Что делать?
Эта проблема так же легко решается с помощью ПКПО.
Для ярлыков приложений, которые нужны во всех Составных проектах, выделяется специальная папка — Список Приложений, формируемая пользователем вручную, по собственному усмотрению. Ярлыки можно группировать в папки. В приложении «Пользовательская оболочка» Список Приложений при необходимости отображается в Правой панели (см. Рисунок 3).
Рисунок 3. Список Приложений в Правой панели
В приложении «Пользовательская панель» Список Приложений отображается в виде панели с кнопками — по одной кнопке на каждый ярлык приложения и каждую папку в корне Списка Приложений. Вложенные в папки Списка Приложений объекты отображаются в виде меню (см. Рисунок 2).
- Если иконки не помещаются на какой-либо панели приложения «Пользовательская панель», появляются кнопки для прокрутки (см. кнопку прокрутки Списка Приложений на Рисунке 2).
- Панель Кэша Приложений «Пользовательской оболочки» может работать и в режиме отображения Дерева папок (режим по умолчанию), подобно окну Проводника:
Рисунок 4: Панель Кэша Приложений в виде дерева
Дополнительную информацию по ПКПО можно найти на странице программы.