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

Как я понимаю для текстового взаимодействия с ядром Linux, программа под названием init запускает getty (или agetty ), которая подключается к одному из устройств TTY в /dev и предлагает agetty имя пользователя. После этого запускается программа под названием login которая запрашивает пароль пользователя и, если она правильная, запускает предпочтительную оболочку пользователя (например, bash или csh ). На этом этапе bash взаимодействует с ядром через устройство TTY.

Как этот процесс входа в систему работает для X11? X11 взаимодействует с ядром над TTY?

2 Solutions collect form web for “Как X11 взаимодействует с ядром / выполняет вход в систему”

Оболочка использует устройство TTY (если оно подключено к одному), чтобы получить пользовательский ввод и произвести вывод, и не намного больше. Тот факт, что оболочка подключена к TTY, определяется getty (и сохраняется login ); в большинстве случаев оболочка не заботится о том, подключена ли она к 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.

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

  • Отключить сенсорную панель при вводе текста, а также нажать сенсорную панель для сеанса X
  • Установить диспетчер окон по умолчанию (i3) в OpenSuse
  • ssh туннелирование локального экрана на другой сервер
  • Настройка Caps Lock в качестве модификатора и переключателя компоновки
  • Отображение CapsLock для Escape для компоновки Colemak
  • Какой процесс создал это окно X11?
  • Как установить tty, на котором появляется GDM?
  • Пересылка X11 не работает от шпатлевки и XMing до centos 6.4
  • Приоритет для «всегда сверху» X-окон
  • Создать ключ не работает
  • Какова совместимость между Linux Window Managers и Android?
  • Настройки цвета Xresources
  • Interesting Posts

    touch: не может касаться «теста»: разрешение отклонено

    Проблема с разрешением DNS с помощью OpenBSD

    Установите частоту дискретизации для одного источника

    Операционная система на базе Linux, которая имеет изолированные программные установки, такие как Android

    Сортировка по 2 полям в ksh

    Не удается записать файл с разрешением на запись

    Как пользователь, не являющийся пользователем, я могу удалить файл, созданный root, с разрешениями 0444?

    Заменить 1-й с 1), 2-й с 2), … в GNU Sed

    Аутентификация клиента SSH как пользователя без root

    В midnight commander, как домен Windows указан при создании smb-соединения?

    Как обновить пакеты в Red Hat Linux?

    Тестирование правила брандмауэра – сбой telnet

    Как смонтировать этот .img-файл в Debian 7 правильно?

    Передавать параметры командной строки программе внутри сценария оболочки

    Как проверить, взаимодействуют ли два локальных процесса через сокеты или ipcs?

    Linux и Unix - лучшая ОС в мире.