在 Windows 中,使用 CLI 时,只使用一个程序 ( cmd.exe
)。您将输入发送到cmd.exe
,cmd.exe
然后将输出发送给您(在屏幕上显示输出):
但是在 Linux 中,使用了两个程序:终端和外壳。
您发送的输入端子(例如:gnome-terminal
),并gnome-terminal
依次发送该输入壳牌(例如:bash
),然后bash
将输出发送到gnome-terminal
,并gnome-terminal
反过来发送你的输出。
我的问题是:为什么终端和 Shell 在 Linux 中是两个独立的程序,而不是像 Windows 中的一个程序?
你的前提是不正确的。Windows 中“终端”的角色或多或少由 conhost.exe 扮演 - 控制台子系统的设计方式并非像 Linux 中的终端那样可互换(还有其他差异,例如,当您启动控制台模式进程(例如 cmd.exe 尚未附加到控制台时,启动该进程的系统库将负责为您创建一个),但它是由单独进程管理的单独层。
归档时间: |
|
查看次数: |
187 次 |
最近记录: |