前言:
为什么想到写这个话题,其实源于客户在排查用户登录,问到与用户登录相关的tty格式?有哪些,有什么区别?原以为10多年小机系统管理经验,回答应该so easy,突然发现解释起来有点乱,所以梳理了一下,分享给大家,也帮忙多指正一二。
console、tty、pts、pty、Terminal、Physical console、Virtual console、Pseudo Terminal
列出这些一堆乱七八糟的东西,其实都是一个东西(与终端相关),连接多任务多用户系统的连接方式。为什么会觉得乱?对于解释不清楚的东西,习惯会说是历史原因.....
A console's story
Console,或许是上面一堆名词里面认知度最高的了,那我们就从最熟悉的说起:
参照 Wikipedia 的定义, a system console is "a physical device to operate a computer".
Console是一个物理设备,什么样的物理设备?
几经更迭,现在部分已经不使用单独的硬件了(利用软件模拟),直接解释当前的console,朋友们会听起来莫名其妙。其实,主要是本人文字功底有限,解释不清楚,那就从long time ago的硬件说起:
TTY
不是说计算机的console吗?怎么把传统打字机、《永不消逝的电波》弄出来了......
A typewriter
从打字机(typewriter)说起,其实打字机就是计算机console的最早的原型,打字机的作用可以记录输入和接收输出。后来发明了Morse码和电报机,伴随升级,解决信号传输和文字传输问题;由于二战期间需要破译电报,所以电传打字机(Teletype)也就顺势诞生了。
Computer
计算机基本分类普及:
- Computer:泛指超级计算机,比如中国的银河计算机(房子那么大)
- Mainframe Computer:大型机,一般银行或事金融行业会用到的专属设备(车床那么大)
- Mini-computer:小型机,用于企业级计算,是UNIX系统的硬件平台。(冰箱那么大)
- Workstation:工作站,其实也就是比我们PC配置稍高的低端服务器。
- Micro-computer:微机,也就是我们日常使用PC或laptop
从计算机时间发展先后,从宏观体积,从单机处理能力,都是从上往下顺序依次排列。
第一代计算机的发明---(那要追溯到1946年,二战刚结束,中国也结束了耻辱的抗日战争,又再次拖入国内战争;人民还在水深火热中挣扎时,欧帝已经研制出可能影响百年的电子怪兽了,咱们还处于没有“人民解放“时期)。那时,计算机已经具备处理能力,需要解决与计算机的交互问题,二战时期发明的电传打字机自然就解决了这个问题。使用类似发电报的打字机来连接这个庞然大物,用来吩咐这个怪兽帮人类干活。它就是 Teletype(或者TeletypeWriter)的缩写,中文翻译:电传打字机。简称tty
tty作用:不执行计算的任务,负责将用户的输入发送到主计算机去处理,然后再把计算结果返回给用户。
tty,名副其实的成为最早的控制台(console)
Terminal
随着计算机的发展,从电子管提升到晶体管,处理能力也有了提升,这个时期的计算机特点就是体积大,超级运算能力(根人工比),价格昂贵。为了充分使用计算机提供的计算资源,希望更多的用户能够同时驱使这个怪兽。那么怎么能让计算机支持多任务和多用户呢?
软件方面:
1965年,Multics系统出现了,她----告别了批处理时代,真正的多任务多用户管理系统。有了软件系统,使其能够支持管理多个用户的访问。
硬件方面:
与此同时,连接计算机的console也需要进行提升,monitor和键盘替代了原