abd*_*mak 8 terminal display gnu multiplexing tmux
我试图通过 htop 测量内存和 cpu 使用情况来比较这两种运行多个 shell/进程的方法。
有人可以解释一下每种方法的功能有何差异,或者是否存在差异?
编辑:
据我现在的理解,tmux/screen和其他多路复用器是虚拟会话,即原始会话中的多个虚拟会话。这与在终端中打开新选项卡实际创建新会话形成对比。
我仍然不确定一种方法是否比另一种方法具有性能优势;也没有涉及的潜在机制。
同时,请随时贡献有关该主题的更多详细知识!
下面的这些链接帮助我理解了基本区别:
Aus*_*arn 10
最大的区别是,您可以从其他终端(终端仿真器、VT、SSH 会话,甚至真正的串行终端)重新连接到屏幕或 tmux 会话,但不能使用终端仿真器中的选项卡执行此操作。这听起来可能很简单,但它带来了使用 screen 或 tmux 的最大优势之一,尤其是在处理远程系统时:它可以在当前登录会话持续时间之外持续存在,这对于原因的数量。
但还有一些其他差异:
在这两种情况下,每个窗口/选项卡最终都有一个关联的伪终端(通常缩写为 PTY)。这里真正的区别在于实际控制输入的伪终端和显示输出的伪终端。伪终端工作的确切机制有点复杂,但网上有很多地方有详细记录。基本思想是,它为进程提供了一种假装是实际硬件终端的方法,以便它可以运行另一个期望与终端通信的进程。
就系统资源而言,这两种选择实际上都没有那么高效,而在用户体验方面哪个更高效很大程度上取决于用户自己(例如,屏幕对我来说更有效,因为我已经习惯了所有默认键绑定)。