Недавно я впервые столкнулся с концепцией "X Window Server". Прочитав о ней много и попытавшись понять большинство ее основных концепций - в основном потому, что я родился в "современную компьютерную эпоху", никогда не прикасаясь к "настоящему терминалу" или "компьютерам, недостаточно мощным для запуска X Client" - я запутался в чем-то:
Почему X Server — это сервер, а не библиотека с набором предопределенных функций?
Я мог бы многому научиться, ответив на некоторые вопросы, заданные здесь ранее, особенно на эти:
- Почему X Window System использует сервер?
- Каковы отношения между сервером и клиентом между [...], оконным менеджером и процессами X-сервера?
Я понял, что X Server изначально был разработан для поддержки связи через сети, так как некоторые старые компьютеры были недостаточно мощными для запуска графических элементов. Это единственная причина, по которой X Server был разработан для работы в качестве сервера? Чтобы получать «запросы» через сеть и отвечать «графическими элементами»?
Есть ли еще какая-то причина, по которой X Server действует как сервер даже локально? Возможно, я упускаю какую-то деталь, и это именно то, что я пытаюсь понять, чтобы «связать» все, что я узнал до сих пор.
Если возможно, не могли бы вы также привести мне реальный пример того, как терминалы в прошлом взаимодействовали с серверами X Window? Все, что я могу себе представить, это здание, полное терминальных компьютеров (на которых не работает ничего, кроме черного экрана терминала) и только один компьютер, способный запускать графические интерфейсы. Люди использовали этот компьютер для связи с терминальными компьютерами для выполнения тяжелых задач?
Спасибо!
решение1
Похоже, у вас большое недопонимание относительно терминалов.
Были текстовые терминалы, и были терминалы X11. Терминалы X11 запускали X-сервер. Это также называлось тонким клиентом.
У вас также может быть рабочая станция, на которой запущен X-сервер. Она будет подключена к серверу процессов. Мощная машина в подвале.
Другие преимущества:
- Это всего лишь процесс (с доступом к графическому оборудованию, клавиатуре и указывающему устройству), но всего лишь процесс. У этого есть свои преимущества. У вас может быть один процесс без доступа к графическому оборудованию, клавиатуре и указывающему устройству. Это также может быть VNC-сервер, создающий мост X11-vnc. Его можно использовать для тестирования (им должен управлять роботизированный процесс вместо человека).
- Это отдельный процесс: я обновил свой компьютер до многокодового. Он использует эти ядра, без необходимости вносить изменения в программное обеспечение (до нескольких ядер).
- Если у вас несколько мониторов, клавиатур и мышей, то архитектурно их легко выделить в отдельные места (терминалы).
- Это упрощает реализацию переключения пользователей.
- Не давая другим процессам доступ к оборудованию. Как и в случае с библиотечным подходом, это более безопасно (Примечание: X11 имеет некоторые проблемы безопасности, которые можно решить путем редизайна).
- Менеджер окон также является отдельным процессом. Это позволяет выбирать окружение рабочего стола. Так что процесс для X11-сервера, один для менеджера окон, один для менеджера отображения (служба входа), один для того и этого. Это делает его гибким, вы можете изменить окружение рабочего стола, даже не выходя из системы.
решение2
Это сервер, поскольку он предоставляет и координирует службу отображения на одном аппаратном средстве (концептуально рабочей станции), которое может иметь несколько клавиатур, других устройств ввода и несколько дисплеев.
Несколько процессов могут подключаться к нему локально или удаленно и договариваться о пространстве экрана, фокусе ввода, слотах цветовой карты и других ресурсах. Процессы не могут договариваться друг с другом напрямую или согласовывать свои разрозненные требования. Сервер X windows предоставляет услугу, которая заставляет все клиентские процессы верить, что у них есть доступ ко всем функциональным возможностям рабочей станции.