Linux的进程管理

一、Linux的tty

从图中可以看出(标准输入的fd是0,标准输出的fd是1,标准错误输出的fd是2)

在个人计算机上,只有一个实际的控制台,没有终端,所以终端都是在控制台上用软件模拟的。

历史上,console指主机本身的屏幕和键盘,而tty指用电缆连接的其它位置的控制台。

这是计算机的概念:/dev/console是系统控制台,是与操作系统交互的设备。平时我们看到的PC只有一个屏幕和键盘,它其实就是控制台。

这是应用程序的概念:/dev/tty指的是当前的控制台。/dev/tty如果当前进程有控制终端,那么/dev/tty就是当前进程控制台的设备文件。

控制终端可以是伪终端也可以是虚拟控制台终端。

当打开一个终端时:这个bash进程的控制终端就是/dev/tty,而且在该终端启动的所有程序的控制终端都是/dev/tty。这个终端就是这些进程的控制终端。

每一个前台进程都会有一个控制终端。

虚拟终端:

  1、虚拟控制台终端:

    Linux启动的时候会创建63个本地虚拟终端,tty1~tty63

    tty0指的是当前虚拟终端

    /dev/consule是与操作系统硬件的键盘和显示器相关联的,谁是当前虚拟终端,/dev/consule就指向谁。

  2、伪终端:

1、键盘显示器直连

2、ssh(tmux)远程访问

3、ssh(tmux)本地访问

参考文献:

https://blog.csdn.net/yazhouren/article/details/78793367

https://www.cnblogs.com/zzdyyy/p/7538077.html

原文地址:https://www.cnblogs.com/erdanyang/p/10918473.html