Самое большое отличие состоит в том, что вы можете подключиться к своему экрану или сеансам tmux с других терминалов (будь то терминальные эмуляторы, VT, сеансы SSH или даже реальные последовательные терминалы), но не можете сделать это с помощью вкладок в эмуляторе терминала. Это может показаться простым, но оно дает одно из самых больших преимуществ использования screen или tmux, особенно если вы имеете дело с удаленной системой: оно может остаться вне периода текущей сессии входа в систему, что очень полезно для ряд причин.
Есть несколько других отличий:
- Использование screen или tmux означает, что вы всегда будете иметь ровно один дополнительный процесс на сеанс экрана или tmux (но не на окно / вкладку). В зависимости от используемого вами эмулятора терминала, у вас может не быть никаких дополнительных процессов, или у вас может быть более одного дополнительного.
- Использование screen или tmux дает вам некоторые дополнительные функции, которые недоступны большинству эмуляторов терминала, такие как разделенные окна и возможность отправлять BREAK в приложении на вкладке.
- Горячие клавиши, используемые для переключения окон / вкладок, различаются (хотя обычно их можно довольно легко перенастроить).
- Вы можете использовать screen и tmux из любого терминального сеанса, но можете использовать вкладки только при использовании эмулятора терминала.
- Экран (и, возможно, tmux) обеспечивает блокировку терминала. По сути, это эквивалентно блокировке экрана, которую вы видите на большинстве настольных компьютеров.
В обоих случаях каждое окно / вкладка в конечном счете имеет один связанный псевдотерминал (обычно сокращенно PTY). Реальная разница здесь состоит только в том, что фактически контролирует, к какому псевдотерминалу будет поступать ваш вход и из которого будет отображаться выход. Точная механика работы псевдотерминала немного сложна, но хорошо документирована в нескольких местах онлайн. Основная идея заключается в том, что он дает процессу способ притвориться фактическим аппаратным терминалом, чтобы он мог запустить другой процесс, который ожидает соединения с терминалом.
Ни один из этих вариантов на самом деле не намного эффективнее с точки зрения системных ресурсов, а более эффективный с точки зрения UX во многом зависит от самого пользователя (например, экран для меня более эффективен, потому что я привык ко всем привязки клавиш по умолчанию).