Это функция, предоставляемая почти всеми, если не всеми Unix и Unix, такими как работа на оборудовании x86. Интересно, что виртуальные консоли были впервые представлены в Unix Microsoft Xenix в начале восьмидесятых годов, а также были доступны в параллельной версии CP / M.
Позже эта функция была интегрирована в AT & T SVR4 Unix, Solaris и заимствована BSD и Linux.
Почему UNIX / Linux предоставляет несколько эмуляторов терминала?
Когда они были впервые представлены, графической среды для машин, на которых выполнялись эти реализации Unix, не было. Хотя физический терминал, подключенный к центральному Unix-серверу через линии RS232, был стандартом, подключение нескольких терминалов к стандартному ПК, на котором работает Xenix, было излишним, если целью было только для одного пользователя запустить несколько интерактивных программ одновременно. Виртуальные терминалы предоставили элегантное и удобное решение этой проблемы.
Другие реализации Unix позже предоставили ту же функцию для удовлетворения той же потребности.
Когда графические среды, особенно X11, распространились, возможность одновременного просмотра нескольких эмуляторов терминала на одном экране была значительным улучшением. Однако функция виртуальной консоли обычно сохранялась хотя бы потому, что все еще было удобно переключаться на консоль, если графическое окружение по какой-то причине зависло или не функционировало.
Обратите внимание, что утилиты, как screen
и tmux
пришли намного позже, чем виртуальные терминалы, чтобы обобщить те же функции. Их преимущество в том, что они могут использоваться не только на локальной физической консоли, но и на любом сеансе, локальном или удаленном (например telnet
, ssh
). При использовании на физической консоли виртуальные консоли все еще полезны, поскольку они функциональны в некоторых ситуациях, когда screen
/ tmux
не может помочь, например, если X11 заморожен, или если окно захватило фокус и не отпускает его.
Виртуализация на основе контейнеров, такая как зоны Solaris или Linux LXC, также предоставляет метод подключения к консоли контейнера через zlogin -C zone
и lxc-console -t 0 -n container
соответственно.