Как X11 взаимодействует с ядром / выполняет вход в систему

Вы можете использовать curl http://192.168.1.1 только для того, чтобы получить HTML-код страницы входа. Наверное, на этом написано.

Кроме того, вы можете использовать arp -a , чтобы получить MAC-адрес маршрутизатора, а затем найти первые 6 цифр, чтобы узнать, какой это производитель оборудования.

14
26.04.2017, 10:42
2 ответа

Оболочка использует устройство TTY (если оно подключено к одному) для получения пользовательского ввода и вывода вывода, и не более того. Тот факт, что оболочка подключена к TTY, определяется getty (и сохраняется логином ); в большинстве случаев оболочке все равно, подключен он к TTY или нет. Его взаимодействие с ядром происходит через системные вызовы .

Сервер X11 не знает о логинах (как и оболочка). Процесс входа в систему в X11 работает двумя способами:

  • либо пользователь входит в систему на терминале, а затем запускает X (обычно с использованием startx );
  • или X-сервер запускается с « диспетчер дисплеев », который запрашивает у пользователя логин и пароль (или любую другую информацию для аутентификации).

То, как серверы X11 получают ввод и выводят данные, сильно отличается от оболочки. На стороне ввода X знает об устройствах, которых нет в оболочке, начиная с мышей; он обычно управляет ими напрямую с помощью собственных драйверов. Даже для клавиатур у X есть свои собственные драйверы, которые дополняют обработку ядра (насколько я понимаю, в Linux, например, X использует драйвер TTY для чтения необработанного ввода с клавиатуры, но затем интерпретирует это, используя свой собственный драйвер). На стороне вывода X управляет устройствами отображения напрямую, с помощью ядра или без нее, и без использования устройства TTY.

Серверы X11 во многих системах действительно используют устройства TTY для синхронизации с ядром: в системах, поддерживающих виртуальные терминалы, X должен «зарезервировать» VT, на котором он работает, и обрабатывать переключение VT.На этом пути есть еще несколько тонкостей; таким образом, в Linux X настраивает TTY, чтобы отключить GPM (программу, которая позволяет использовать мыши в текстовом режиме). X также может совместно использовать VT ...

Раньше на некоторых рабочих станциях не было явной синхронизации с ядром; если вы не запустили xconsole , вы можете получить сообщения ядра, отображаемые в «текстовом режиме» поверх экрана X11.

17
27.01.2020, 19:51

Ядро не имеет абсолютно никакого понятия о логине или о том, кто вошел в систему - все, что его волнует, это то, что есть процессы, работающие под определенным идентификатором пользователя (который это также не является делом ядра!). Программа входа, будь то getty на терминале или менеджер отображения X11, запускается от имени root, а затем использует setuid() и связанные с ним вызовы для настройки любого UID, который локальный сопоставитель (NSS и libc stuff - не kernel business тоже) предложил использовать для пользователя, который только что аутентифицировался.

3
27.01.2020, 19:51

Теги

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