/ dev / console указывает на tty0?

Я пытался понять устройство / dev / console, но есть несколько вещей, о которых я не понимаю:

  1. Какова цель этого устройства? Из того, что я могу собрать, это просто место, где ядро ​​отображает сообщения, верно?

  2. Виртуальному терминалу, который назначен в качестве консоли, не разрешено управлять заданиями. Зачем? Это только потому, что ядро ​​пытается остановить вас от запуска чего-либо еще в том месте, где ему нужно печатать системные сообщения?

  3. Для меня / dev / console, похоже, указывает на tty0, текущую виртуальную консоль. Я нашел это на основе простого тестирования, и, похоже, это довольно распространенная конфигурация. Однако для меня это указывает на то, что tty0 должен отключить управление заданиями, что означает, что все консоли должны отключить управление заданиями, что было бы плохо. Это дает мне головную боль, просто думая об этом. Кроме того, если tty0 является консолью, то не следует ли получать сообщения ядра на текущем терминале, а не только на tty1?

3 Solutions collect form web for “/ dev / console указывает на tty0?”

Это в значительной степени исторический период ожидания, когда операционная консоль была фактическим телетайпом, который напечатал (сделал неизгладимые метки) на листе бумаги (тонкий гибкий материал из древесного волокна, часто белый). Со временем они в значительной степени были направлены на средства syslog и dmesg, так как очень немногие системы теперь имеют реальную консоль, но информация по-прежнему необходима.

Я не знаю, откуда у вас возникла идея, что / dev / console – tty0; на моем ящике Linux 3 / dev / console, tty и ttyprintk у всех есть устройство с большим количеством 5, а tty0, а все остальные псевдо-ttys являются основным устройством 4. Это означает, что они используют разные драйверы (или радикально разные режимы одного и того же драйвера).

Эта книга дает хорошее представление о Linux ttys и fgrep ing для register_console в drivers/char/*.c ядра Linux drivers/char/*.c показывает, что происходит с консолью Linux. В ядре Linux реализовано множество реализаций системной консоли. Конкретная установка Linux может решить, какое именно устройство должно служить консолью. Он может быть указан путем передачи параметров ядра при загрузке или, возможно, существуют другие методы. Реализация tty является стандартной по умолчанию и, возможно, стандартом де-факто , но другие существуют, например, serial-console .

/dev/console имеет собственный выделенный майор: minor. Зачем? Потому что ядро является основным пользователем устройства ядра, когда там отправляются сообщения о чрезвычайной ситуации. Существует struct tty_driver *console_driver указывающий на необходимые процедуры. Тогда почему бы не предоставить ему интерфейс для программ пользовательских программ? Не знаю, является ли /dev/console , для настройки по умолчанию, действительно эквивалентной /dev/tty0 , или есть некоторые отличия.

Теперь о контроле работы в tty0 . Как это возможно, если tty0 действительно не эмулирует терминал, а указывает только на tty который в настоящее время активен ? Ядро Linux не позволяет процессам присоединяться к tty0 , «устройству», которое периодически сталкивается с tty1 , … tty7 и так далее. Поскольку tty0 не может управлять процессами, нет возможности управления заданиями (кстати, для чего законная цель может tty0 кормить оболочку вообще?). Но это не имеет ничего общего с возможностью управления заданиями, выполняемыми на определенных виртуальных консолях. Другие пронумерованные tty s являются, по сути, законными терминалами для любых целей консольного приложения.

Консоль / dev / – это абстракция локальной консоли сеанса – консоли, связанной с подключенным к компьютеру монитором.

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

  • Команда ls работает по-разному в зависимости от получателя
  • Определить владельца сеанса процесса
  • Несколько терминалов одновременно без сервера X
  • Как запустить плазменный стол с SSH-консоли на настольной сессии?
  • Как распечатать текущие ключевые слова в Linux / Debian?
  • Есть ли способ reptyr процесса make или любого процесса с подпроцессами?
  • Почему бы не отобразить символы, которые я напечатал в tty?
  • Запустить скрипт heredoc через su, прикрепленный к текущему tty
  • Изменение шрифта TTY на шрифт, отличный от стандартного
  • Почему приложение не запускается с экрана без задержки?
  • Что такое TTY для вашего Unix?
  • Linux и Unix - лучшая ОС в мире.