Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2642499
  • 博文数量: 333
  • 博客积分: 4817
  • 博客等级: 上校
  • 技术积分: 4413
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-28 10:51
文章分类

全部博文(333)

文章存档

2017年(20)

2016年(57)

2015年(27)

2014年(20)

2013年(21)

2012年(164)

2011年(24)

分类: LINUX

2012-01-15 17:22:32

本文参考了如下两篇文章:

http://wangcong.org/blog/?p=423
http://blog.chinaunix.net/u/6436/showart_1003495.html

 

这两个术语从中文意思上很容易混在一起,但他们确实是两个不同的概念。

 

传统上讲,terminal(终端),其实是处于用户使用系统的角度来说的,相对于提供服务的系统终端是用户使用这个系统的入口。而console(控制台)更强调是控制系统的地方,其使用者主要是管理员。从概念上讲terminal的范围比console要广。

 

tty(终端设备的统称)
tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后 来这东西被键盘与显示器取代,所以现在叫终端比较合适。终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。

 

终端分为很多种

1)串行端口终端,对应windows上的COM1,COM2...的概念。在Linux中,他们对应的设备为/dev/ttySn(像我的机器上四个串口,就对应/dev/ttyS0~/dev/ttyS3).

2)控制台终端

   真实的硬件设备,对应的设备是/dev/console,除了实际的Console,Linux还定义了Virtual Console,分别对应与/dev/tty1~tty63.其中ctrl+alt+Fn(n:1~6)可以分别切换到tty1~tty6六个 Virtual Console.

  /dev/tty0比较特殊,他对应当前的console.

3)伪终端(pseudo-tty)

  伪终端是一对虚拟设备,提供端到端双向通信的通路,一端 称为master,另一端称为slave。在slave那端看到的和在真实终端看到的效果一样。所以伪终端一般被ssh等网络登录程序使用。历史上,有两 套伪终端接口,一个是Unix 98伪终端,另一个是BSD伪终端。

  BSD伪终端对应的设备为:/dev/pty[p-za-e][0-9a-f] 是master; /dev/tty[p-za-e][0-9a-f] 是slave,它们都是配好对的。

  Unix 98伪终端则完全不同,它始终使用/dev/ptmx作为master复制设备,然后在每次打开它的时候才得到一个master设备的fd,同时在 /dev/pts/目录下得到一个slave设备。

  不同发行版采用的伪终端接口不同,不过BSD伪终端方式逐渐被舍弃,而倾向于Unix98伪终端接口。

  我使用的的Ubuntu9.04就是Unix98伪终端。在X window模式下,每开一个Gnome-Termial,就会在/dev/pts/目录下多一个文件(通过telnet登录也是如此),可以echo "hello,xxx" >/dev/pts/1,则在对应第一个伪终端的命令行行上出现“hello,xxx"输入。

4)其他
阅读(1612) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~