终端设备
终端历史
计算机设备总需要输入设备,输出设备:
输入设备用于控制计算机;输出设备用于计算机输出结果
1、终端之初
早期计算机终端是一种独立的硬件设备,终端和计算机之间使用双工或者半双工方式通信
笔者可以想象的一种场景是:在一个实验室中只有一台计算机,这台计算机背板上有好多好多的插口,每一个插口通过独立的线缆连接到一个一个的小盒子上,每个小盒子前坐着一位同学,在着急的调试自己的程序…
注:上世纪70 年代计算机价格十分昂贵,计算机资源自然也就很紧张
2、图形终端
早期的计算机分为企业计算机和个人计算机,都贼贵;
丰厚的利润自然引来计算机厂商之间的激烈竞争,苹果公司独树一帜率先在个人计算机领域使用图形终端,极大的简化了计算机的使用难度
这个时候的图形终端由输出设备显示器和输入设备鼠标/键盘构成
值得一提的是那时候的显示器控制卡可能支持两种模式:一种是字符模式,一种是窗口模式。字符模式向前兼容了命令行使用方式,窗口模式使用像素的方法表示图像
2.1 图形字符终端
需要注意:
下图虽然有tty1 tty2 tty3三个终端符号,其实他们代表了一个硬件设备,即显示器
一个显示控制卡有一个固定的buff_print地址,buff_print里有什么,显示器就显式什么
tty1 tty2 tty3 代表几个不同的设备驱动程序,每个驱动程序分别w维护一个内存中buff,姑且叫做buff01,buff02,buff03
任意时刻,有且只有一个tty的buff会被拷贝到显式卡buff_print当中,意味着显示器只能选择一个tty输出
但是用户可以通过Alt + [F1~F6]切换 显示器输出哪一个tty
2.2 图形终端(伪终端)
现代计算机的图形用户界面使用了一种叫做窗口系统的技术,窗口系统之上,设计了一款叫做终端模拟器的软件
- 窗口系统和终端模拟器
- 终端模拟器和虚拟终端设备
3、网络终端(伪终端)
网络登录支持很多种协议,telnet协议,ssh协议等等…OSI协议栈中的应用层协议
- 客户机和服务器 通过协议进行数据交换
- 客户机模拟一个终端窗口:解析从服务器得到的网络报文并把字符显示到图形窗口中;另一方面把图形窗口的输入封装成网络报文发送给服务器
- 服务器端:解析接收到的报文,并把数据写入主虚拟终端;另一方面,获取来自虚拟终端的输入,封装成网络报文发送给客户端
说明:
inetd进程,top服务进程
telnetd进程,负责读写伪终端以及网络报文转换(telnet进程同时会fork一个子进程login)