Протокол x windows mac

Протокол x windows mac

Для начала немного истории и общих мест. Представим, что нам нужно написать программу, которая будет работать в графическом режиме. Нам потребуется: опрашивать клавиатуру, снимать события и координаты мыши, рисовать на экране, . Как это делалось на 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 нужно выполнить команду:

Запускаем на нашем компьютере X-овую программу, так, чтобы ее окошко рисовалось на мониторе pcat107. Для этого на нашем компьютере нужно выполнить команду:

Библиотеки, Motif, и война круглых и квадратных кнопок.

Можно писать X-овые программы, используя библиотеку Xlib. Многие так и пишут, хотя это весьма тяжело — уж больно невысок уровень Xlib’а. В помощь программистам было создано несколько toolkit’ов — библиотек более высокого уровня, в которых реализованы различные widget’ы. Widget — непереводимый термин X Windows. Склеен из двух слов — Window и Gadget (приспособление), является графическим объектом с привязанными к нему свойствами и реакциями на действия пользователя. Примеры widgetow: «кнопка», «менюшка», «окошко с текстом», «линейка прокрутки».

Читайте также:  Delete user folders in windows

Известны следующие 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:

  1. Установите переменные окружения:
  2. Запустите X Windows командой

«Нормальные» Unix’ы:

  1. Установите переменные окружения:
  2. Запустите X Windows командой

«Ненормальные» Unix’ы (Unixware).

Когда регистрируете пользователя, ответьте Yes на вопрос «Хотите графический DeskTop». Тогда после login’а X Windows будет запускаться автоматически. Если вы прозевали, и ответили No, то никаким осмысленным способом запустить X Windows для себя вам не удастся.

Настройки пользовательского окружения X Windows

При наличии пользовательских настроечных файлов, лежащих в домашнем каталоге пользователя, используются они. Если их нет, используются стандартные, общественные, обычно лежащие в каталоге /usr/lib/X11 или /usr/openwin/lib

Персональные и общественные пользовательские настройки хранятся в файлах: Окружение (desktop) — т.е. программы, которые стартуют автоматически при запуске X Windows находится в файлах:

«Нормальнные» X windows:

Настройки window-manager’a — т.е. — поведение окон, менюшки пользователя, раскладка команд на клавиши мышки, .

: Программирование в среде X Window на основе библиотеки Xlib :

С о д е р ж а н и е

Базовые понятия X Windows.

В этом разделе учебника описываются основные понятия, которые лежат в основе программирования X Window System. Если вы относитесь к типу программистов, которые сразу переходят к просмотру кода программ, то рискуете зайти в тупик при программировании из-за неправильного подхода к процессу. Системы масштаба X Window не поддаются изучению «наскоком» и, следовательно, многим кажутся неоправданно сложными. И сложности начинаются с того, что принято при изучении любой сложной системы — терминологии.

Итак, главные понятия X Window

Модель клиент-сервер

Имеем две независимые программы. Одна умеет рисовать на экране, а также знает особенности конкретной аппаратуры, знает, что нужно делать, чтобы нарисовать линию или другой графический объект, умеет обрабатывать сигналы, приходящие от клавиатуры и мыши. Она называется X-сервер. Вторая программа — называется X-клиент, рисовать физически не умеет, но знает что надо рисовать, и умеет командовать. Команды типа: «провести линию», «открыть окно», «опросить координаты мыши», и т.п. передаются X-серверу, а тот их исполняет. Один X-сервер может быть подключен ко многим клиентам и всех обслуживать одновременно. На графическом экране может быть открыто сразу много окон — каждое окно порождается его собственным клиентом.

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

Состав пакетов и их последовательность определяются специальным протоколом, он называется «X протокол». Для программирования под X, совсем не обязательно знать детали реализации сервера и протокола обмена. Система предоставляет библиотеку процедур, с помощью которых программы осуществляют доступ к услугам X на высоком уровне. Так для того, чтобы вывести на экран точку, достаточно вызвать процедуру XDrawPoint() , передав ей соответствующие параметры, и выполняет всю черновую работу по подготовке и передачи пакетов данных серверу. Библиотека Xlib находиться в файле lX11.a (libX11.so) , который, как правило, находится в каталоге /usr/X11R6/lib . Прототипы функций библиотеки, используемые структуры данных, типы и прочее определяется в файлах-заголовках из директории /usr/include/X11 .

Рис. 1.1. Общая схема общения клиентов и X-сервера

Использование буфера

Посылка порций данных, к тому же если она осуществляется по сети, операция достаточно медленная. Для повышения производительности системы, Xlib буферизует их в памяти машины, на которой выполняется программа-клиент, большинство запросов не требует немедленного выполнения. В буфер кладутся запросы как клиента к серверу, так и события от сервера находятся в буфере пока клиент не прочитает их. Передача выполняется в тот момент, когда клиент вызывает процедуру, ожидающую получения событий от сервера, например XNextEvent() . Программа может явно инициировать отправку пакетов, обратившись к функциям XFlush() или XSync() .

Ресурсы

Сетевой характер системы, требует очень бережного отношения к трафику — пропускная способность сетей хоть и растет, но остается ограничивающим ресурсом. B даже прямоугольная область отображаемой растровой памяти — окно, требует минимальной передачи его положения в системе координат родительского окна, размеров по горизонтали и вертикали и весьма обширной дополнительной информации. Если учесть, что окна — наиболее простой (по вычислительной мощности и объемов памяти для описаний) ресурс, и современные пользовательские интерфейсы построены именно на основе множества окон (все кнопочки, ниспадающие меню, строки ввода и даже обрамления вокруг окон реализованы с помощью окон), передача описаний окон по сети может превратить требования к пропускной способности в нереальные. А ведь кроме окон, существует еще ряд абстракций, без реализации которых ценность графической подсистемы равна нулю.

Разработчики X Window нашли эффектное решение этой проблемы с помощью создания двух обобщающих понятий — «ресурса» и «идентификатора ресурса». Всякий раз, когда необходимо выполнить какое-либо действие, вместо полной структуры данных, посылаемых по сети с запросом, посылается лишь его идентификатор. Использование указателей невозможно, так как клиент и сервер находятся на разных машинах. Если любой клиент знает ID ресурса, то тот клиент может управлять тем ресурсом, даже если другой клиент создавал ресурс. Это означает, более одного клиента можно вовлечь то же самое окно, хотя это не часто желательно. Менеджеры окон могут перемещать и изменять размеры прикладных окон, зная их ID.

Как правило, программы имеют набор конфигурационных параметров — ресурсов . Это может быть цвет окна, тип шрифта, которым рисуется текст, курсор, графический контекст и многое другое. Система стандартизует способ задания ресурсов приложений и содержит ряд процедур для работы с ними. Эта совокупность функций называется менеджером ресурсов (X recource manager или сокращенно Xrm). «Хранилище» параметров программы называется базой данных ресурсов .

Общая идея повышения эффективности за счет применения ресурсов — снижение требований к пропускной способности за счет одноразовой процедуры передачи значения ресурса по сети от программы-клиента к X-серверу (регистрация ресурса), получение клиентом от X-сервера уникального компактного идентификатора ресурса и последующее многократное использование этого идентификатора в процессе «общения». Естественно, что «зарегистрированные» ресурсы хранятся X-сервером — эту процедуру принято называть «кэшированием ресурсов». Сразу следует отметить — все, что кэшируется X-сервером, потенциально может быть доступно всем программам-клиентам, работающим с этим сервером.

X протокол

X протокол определяет и составляет каждый пакет информации, который будет передан между сервером и Xlib в обоих направлениях. Даже когда сервер и Xlib находятся на одной машине, в этом случае протокол используется для связи, через внутренний канал вместо внешней сети. Это весьма скромный как по количеству понятий, так и по требованиям к пропускной способности сети протокол. В нем всего 4 базовых типа сообщений с простейшими форматами которые могут быть переданы через протокол: запрос, ответ, оповещение о событии, сообщение об ошибке.

Главная особенность X-протокола, революционно отличавшая самую первую реализацию X Window от своей предшественницы системы W, — асинхронный характер взаимодействия клиента с X-сервером. Это означает, что ни клиент, ни X-сервер не должны ожидать завершения/подтверждения какой-либо атомарной операции для выполнения других действий. Вторая особенность X-протокола заключается в неспособности X Window «сохранять состояние» протокола — при потере связи между клиентом и X-сервером, состояние последних на момент потери связи не сохраняется. Такая особенность, с одной стороны, ограничивает применение базовой X Window в беспроводных системах (где замирания и пропадания сигналов не редкость), с другой это стимулирует создание многочисленных расширений системы, ликвидирующих этот недостаток.

Как мы подключаемся из Windows 10 по протоколу AFP на сетевой жесткий диск или Mac

Я видел много пользователей, которых они интересуют как подключиться через протокол AFP, The Windows 10).

Для тех, кто не знает, APF — это протокол разрешение доступа из Mac, некоторых местоположений в локальной сети. Apple Файловый протокол (APF) используется, когда мы хотим получить доступ к одному Жесткий диск альфат в ЛВС, компьютер, который имеет этот протокол обмена открытые или совместимые. Например, если у нас есть один подключенный жесткий диск к беспроводному маршрутизатору Apple Базовая станция AirPort Extreme, связь на Mac / MacBook на этом жестком диске это будет сделано по протоколу AFP. В основном этот протокол также используется Время MacХайнсистема резервного копирования macOS.

Подключение через AFP от Mac на устройстве / компьютере в сети это очень просто, используя функцию «Подключиться к серверу»Доступно в Finder и при вводе IP-адреса устройства.

Если в тех же локальных сетях, о которых я упоминал в приведенном выше сценарии, есть альфа и один Windows PC / ноутбук с Windows 7, Windows 8 или Windows 10, из которого мы хотим подключиться через AFP на жесткий диск роутера Apple, у нас нет шансов. Windows 10 не поддерживает подключение через Apple Файловый протокол (AFP), но у нас есть почти аналогичный протокол, разработанный Microsoft для наших собственных операционных систем.

Серверный блок сообщений (SMB) это протокол, разработанный Microsoft для операционных систем Windows. Вообще говоря, роль SMB в Windows то же самое, что AFP на Mac, разрешать отправка и получение данных в локальной сети, В качестве короткой скобки o уязвимость от SMB была основой для распространения Криптографический вирус WannaCry в десятках тысяч компьютеров по всему миру.

Как мы подключаемся из Windows 10 к одному Mac или на жесткий диск, подключенный к беспроводному маршрутизатору Apple

Прежде всего, мы убеждаемся в том, что обслуживание / Протокол SMB активен на Windows. Как только он будет выпущен Windows Обновление 10 Fall Creators Update, Microsoft намерена прекратить использование этой функции Windows 10 активировано по умолчанию. Проверяем включен SMB или нет Windows Особенности. Тастам в Запустить > «Windows Особенности«И мы открываем панель»башня Windows функции вкл или выкл».

Поддержка совместного использования файлов SMB / CIFS должен быть включен / проверен.

Убедившись, что протокол активен на Windows 10 мы идентифицируем локальный IP-адрес устройствак которому мы хотим подключиться и получить к нему доступ. В нашем сценарии у нас есть один прикреплен внешний жесткий диск ООН Беспроводной маршрутизатор AirPortс IPместный КПК: 192.168.0.220.
Открываем «Беги…» на Windows (команда Win + R) и введите в диалоговом окне: \\ 192.168.0.220

Enter«Или нажмите»OK”И введите данные аутентификация устройства.

После ввода пользователя и пароля нажмите OK, чтобы подключиться к устройству.

В нашем случае мы установили соединение на Windows 10 на резервный жесткий диск, который используется Время MacХайн для резервного копирования файлов на Mac.

Если вы не можете установить этот тип соединения, не стесняйтесь оставлять свои комментарии.

Читайте также:  Очистка кэша windows update
Оцените статью