Chinaunix首页 | 论坛 | 博客
  • 博客访问: 671954
  • 博文数量: 160
  • 博客积分: 2384
  • 博客等级: 大尉
  • 技术积分: 1366
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-01 11:35
文章分类
文章存档

2015年(45)

2014年(36)

2012年(28)

2011年(37)

2010年(2)

2009年(10)

2008年(2)

分类: LINUX

2011-04-11 14:19:23

Linux下的Terminal、Console两个概念辨析 关键字: terminal vs console

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

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)其他。

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