1

Я пытаюсь сравнить эти два метода запуска нескольких оболочек / процессов путем измерения использования памяти и процессора через htop.

Может кто-нибудь объяснить различия в том, как функционирует каждый метод, или если они есть?

РЕДАКТИРОВАТЬ:

Из того, что я понимаю сейчас, tmux/screen и другие мультиплексоры - это виртуальные сессии, то есть несколько виртуальных сессий в исходной сессии. Это в отличие от открытия новых вкладок в терминале, которые фактически создают новые сессии.

Я до сих пор не определил, есть ли преимущества производительности одного метода над другим; ни основные механизмы, участвующие.

В то же время, не стесняйтесь вносить более подробные знания по этой теме!

Эти ссылки ниже помогли мне понять основные различия:

Какая связь между мультиплексором и терминалом?

Каковы преимущества использования терминального мультиплексора

2 ответа2

2

Самое большое отличие состоит в том, что вы можете подключиться к своему экрану или сеансам tmux с других терминалов (будь то терминальные эмуляторы, VT, сеансы SSH или даже реальные последовательные терминалы), но не можете сделать это с помощью вкладок в эмуляторе терминала. Это может показаться простым, но оно дает одно из самых больших преимуществ использования screen или tmux, особенно если вы имеете дело с удаленной системой: оно может остаться вне периода текущей сессии входа в систему, что очень полезно для ряд причин.

Есть несколько других отличий:

  • Использование screen или tmux означает, что вы всегда будете иметь ровно один дополнительный процесс на сеанс экрана или tmux (но не на окно / вкладку). В зависимости от используемого вами эмулятора терминала, у вас может не быть никаких дополнительных процессов, или у вас может быть более одного дополнительного.
  • Использование screen или tmux дает вам некоторые дополнительные функции, которые недоступны большинству эмуляторов терминала, такие как разделенные окна и возможность отправлять BREAK в приложении на вкладке.
  • Горячие клавиши, используемые для переключения окон / вкладок, различаются (хотя обычно их можно довольно легко перенастроить).
  • Вы можете использовать screen и tmux из любого терминального сеанса, но можете использовать вкладки только при использовании эмулятора терминала.
  • Экран (и, возможно, tmux) обеспечивает блокировку терминала. По сути, это эквивалентно блокировке экрана, которую вы видите на большинстве настольных компьютеров.

В обоих случаях каждое окно / вкладка в конечном счете имеет один связанный псевдотерминал (обычно сокращенно PTY). Реальная разница здесь состоит только в том, что фактически контролирует, к какому псевдотерминалу будет поступать ваш вход и из которого будет отображаться выход. Точная механика работы псевдотерминала немного сложна, но хорошо документирована в нескольких местах онлайн. Основная идея заключается в том, что он дает процессу способ притвориться фактическим аппаратным терминалом, чтобы он мог запустить другой процесс, который ожидает соединения с терминалом.

Ни один из этих вариантов на самом деле не намного эффективнее с точки зрения системных ресурсов, а более эффективный с точки зрения UX во многом зависит от самого пользователя (например, экран для меня более эффективен, потому что я привык ко всем привязки клавиш по умолчанию).

1

Оба типа программного обеспечения на самом деле используют один и тот же тип псевдо-tys, и оба инициализируют среду практически одинаково.

Основное отличие состоит в том, что мультиплексоры действуют как «прокси» - они действуют как эмуляторы терминала для программы внутри, но как обычные программы (клиенты) для эмулятора основного терминала.

Это означает, что каждый символ или управляющий код интерпретируется дважды при прохождении через слои. И tmux, и gnome-терминал поддерживают свое собственное состояние; у них есть собственное представление о том, как должен выглядеть экранный буфер (и иногда он может не синхронизироваться).

Это также означает примерно вдвое больше оперативной памяти для основного и альтернативного буферов. Прокрутка может также дублироваться, но редко (внешний терминал не обновляет прокрутку, потому что tmux переключил ее на «альтернативный буфер»).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .