Что точно происходит в Linux внутренне, когда кабель Ethernet соединен?

Я думаю, вы уже заметили, что необходим какой-то «сервер». Каждый клиент (среда рабочего стола, оконный менеджер или оконная программа) должен предоставить доступ к экрану всем остальным, и он должен иметь возможность отображать вещи, не зная деталей оборудования или не зная, кто еще использует дисплей. Таким образом, сервер X11 обеспечивает уровень абстракции и совместного использования, который вы упомянули, предоставляя интерфейс IPC.

Вероятно, X11 можно сделать, чтобы запустить именованные трубы, но есть две большие вещи, которые именованные трубы не могут сделать.

  • Именованные каналы взаимодействуют только в одном направлении.
  • Если два процесса начинают вставлять данные в «отправляющий» конец именованного канала, данные будут смешиваться.

На самом деле большинство клиентов X разговаривают с сервером, используя «новый и усовершенствованный» именованный канал, называемый сокетом домена UNIX. Это очень похоже на именную трубу, за исключением того, что она позволяет процессам говорить в обоих направлениях, и она отслеживает, кто что сказал. Это те же самые вещи, которые приходится делать сети, и поэтому сокеты UNIX-домена используют тот же интерфейс программирования, что и сокеты TCP/IP, которые обеспечивают сетевой коммуникационный.

Но оттуда действительно легко сказать «Что если я запустил сервер на другом хосте, чем клиент?» Просто используйте TCP сокет вместо UNIX сокета, и voila: протокол удаленного рабочего стола, который предшествовал Windows RDP на десятилетия. Я могу ssh на четыре различных удаленных хоста и запустить synaptic (графический менеджер пакетов) на каждом из них, и все четыре окна появятся на дисплее моего локального компьютера.

-121--17730-

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

Именованные каналы не дают вам автоматического преимущества в том, что они могут работать по сети, как это делает реализация TCP. Но именованные каналы были, например, недоступны на DOS, с DosExtender под управлением Desqview/X (1992), и AFAIK также не на VMS. Для этих реализаций проблема была бы связана со специфической связью Unix.

TCP не является специфичным для Unix, и клиент может работать под управлением VAX/VMS (разработка X началась в 1984 году) и обслуживать выходные данные на локальной графической рабочей станции UNIX. В окне "X Window System: Полная ссылка на Xlib, X Протоколов, ICCCM, XLFD» ¹:

Во время осени 1986 года, Цифровой, решил основывать ее всю стратегию настольной рабочей станции для ULTRIX, VMS и MS-DOS на X. Хотя это было отрадно для нас, оно также значит, у нас было еще больше людей, с которыми можно было поговорить.Это привело к некоторой задержке, но, в конце концов, это также привело к улучшению конструкции. Ральф Свик из Digital присоединился к Project Athena во время этот период и сыграл жизненно важную роль в разработке версии 11. Последняя вер- Релиз sion 10 был выпущен в декабре 1986 года.

Из «X Protocol Reference Manual» ²:

Разделение обязанностей

В процессе того , чтобы намереваться протокола X много внимания уделялось разделению возможностей между сервером и клиентом, это определяет, какая информация должна передаваться туда и обратно через запросы, ответы и события. Отличным источником информации о причинах определенных решений, сделанных при том , чтобы намереваться протокола, является статья X Window System, Роберт В. Шейфлер и Джим Геттис, опубликованные в журнале Ассоциации вычислительной техники Transaction on Graphics, Vol 5, № 2, апрель 1986 В конечном итоге принятые решения основывались на переносимости клиентских программ, простоте программирования клиентов и производительности.

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

Я помню, что статья в TOG была интересной читкой. Это, безусловно, вызвало мой интерес к X и (это было до WorldWeyWeb) трудности, с которыми мы связывали руки с дополнительной информацией, пока О'Райлли не начал публиковать свои книги серии X.

start X Version 11, Release 4, page 2-X, PDF доступен онлайн здесь
² Это со страницы 9 во 2-м издании, изданном O'Reilly, которое я купил в 1990. Есть более новые издания, но я никогда не удосужился купить их, и они AFAIK доступны только в бумаге. Я не думаю, что они изменили обоснование разделения обязанностей.

-121--17731-

Убедитесь, что repo CentOS 6,5 yum действительно настроено как одно из репо в каталоге /etc/yum.repos.d . В противном случае вы просто продолжите обновление по сравнению с репо 6.3, в котором не будет пакетов 6.5.

Например, у вас может быть что-то подобное

[centos-6.3-updates-x86_64]
name=centos-6.3-updates-x86_64
baseurl=http://x.x.x.x/cobbler/repo_mirror/centos-6.3-updates-x86_64
enabled=1
priority=99
gpgcheck=1

Но вы можете пропустить это:

[centos-6.5-updates-x86_64]
name=centos-6.5-updates-x86_64
baseurl=http://x.x.x.x/cobbler/repo_mirror/centos-6.5-updates-x86_64
enabled=1
priority=99
gpgcheck=1

(Базовые элементы будут отличаться от моих, которые указывают на внутреннее зеркало.)

В моем случае моя организация использует Cobbler/Puppet, поэтому мне пришлось обновить конфигурацию core-0 , чтобы указать на CentOS 6,5 repo

1
25.04.2015, 02:26
2 ответа

У ядра есть драйвер для того, чтобы потус был включен (PCI, USB, PCMCIA - на самом деле это более сложный, и никто больше не использует, так что забудьте PCMCIA). Этот драйвер сопоставил регистры в этом шине (это отличается от регистра ЦП) в память и сохраняет на них часы.

Когда кабель подключен, аппаратное обеспечение Ethernet меняет свои регистры и уведомления шин. Сообщения шины UDEV, которая отображает идентификатор шины в соответствующий драйвер (это также может произойти в ядре; зависит от того, как он настроен). УДЕВ также может проснуться в пользовательском процессе, такому как насос или сетевойmanager, вероятно, через DBUS, хотя это становится в пути «зависит от того, как он создан« территория ».

Вообще, UDEV уже создал отображение для таких вещей, как символическое имя порта «eth1» или что-то еще, а также какой водитель использует, и он делает эту информацию доступной для остальной части пользователей (и в некоторых случаях ядро). Он расположен вокруг прослушивания программного обеспечения на автобусе в ядре для изменений в устройствах на автобусе - это в значительной степени так точно так же, как USB-палка получает автоматически: автобусные переговоры в Удева, Удев разговаривает с пользовательским языком.

TL; DR: Аппаратное обеспечение на порту Ethernet связывается с шиной (PCI или USB или что у вас), которые затем связываются с UDEV, которые связываются с остальными участниками.

0
28.01.2020, 01:41

Я могу только ответить на «дополнительный вопрос». «Как обнаружить сигнал, когда подключен кабель». Таким образом, предполагая 10 * / base-t, существует своего рода сигнал несущей, который устройство обнаруживает и делает эту информацию доступной для драйвера устройства. Драйвер устройства обычно отправит сообщение через регистратор ядра, который «Ethx: обнаружена ссылка». Эта информация также становится доступной (в относительно недавних версиях Linux) в иерархии / SYS. См. https://stackoverflow.com/a/808599/3849157 .

Я верю, что правила UDEV могут быть настроены на Tirgger действие, когда состояние устройства было изменено. Но я не знаю, наверняка, если это так здесь.

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

0
28.01.2020, 01:41

Теги

Похожие вопросы